<分区>
我有很多从数据中心到 FreeBSD 上的网络服务器的请求,有时我的网络项目有很多性能问题。将所有 IP 的数据中心添加到 IPFW 列表是不可能的。
我不想使用大型 Anti-DDoS 系统,而是想创建 bash 脚本来连接到我的服务器,按 IP 过滤并添加到 IPFW 表 IP 地址,这些 IP 地址现在连接超过 5 个线程。或者可能在 IPFW 上创建多个表,并按表添加:
- 0 < 5: - 没有
- 5 < 10:- 表 1(禁赛 15 分钟)
- 10 < 15: - 表 2(禁赛 30 分钟)
- 15 < 20:- 表 3(禁赛 60 分钟)
- 更多 20:- 表 4(禁赛 1 天)
按 IP 过滤应该跳过 Google IP 和其他搜索引擎按主机名的 ip。
这是我的 grep 连接和排序脚本:
netstat -nptcp | egrep -v 'Active|Address' | awk '{print $5}' | cut -d. -f 1-4 | sort | uniq -c | sort -n | tail -n 30
解析日志文件是个糟糕的主意,因为日志文件有时很大,我必须到额外的资源 web 服务器来解析和排序。
所以,我想过,也许可以在 PHP 上创建这个脚本?但如果 PHP 崩溃,服务器将不 protected 。
我还需要注意其他注意事项吗?