抱歉。我对服务器一无所知。我已经厌倦了一个人的攻击。
基本上,我问的是怎样制作一个 cron 作业来执行以下操作:
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
如果一个IP有超过100个连接。
做:
iptables -A INPUT -s *ipaddress here* -j DROP
进而
/etc/init.d/apache2 restart
我怎样才能在 debian 中执行此操作并每分钟执行一次此 cron 15. 我的第一个问题是,我怎样才能读取第一个命令的结果然后制作 if 语句?
提前致谢。
答案1
我不得不说,我认为沃姆布尔的建议非常好。通常情况下,人们会学习前承担生产资源的责任,如果还没有,那么当你遇到麻烦时,请准备好付费寻求专业帮助。在职学习是系统管理员生活中很好且正常的一部分,但不是完全从头开始。这里的大多数人都乐于帮助那些已经走到这一步但需要学习他们无法完全掌握的下一步的人,但他们不太愿意花费宝贵的时间来指导那些似乎无法自学(或不愿意自学)的人。
话虽如此,你想做的事情不一定是愚蠢的。我不会通过动态修改防火墙规则集来做到这一点,因为自己遭受 DOS 攻击的可能性很高。我可能会研究connlimit
iptables 模块,它允许你匹配每个客户端 IP 地址的并行连接数。也许像
iptables -I INPUT 1 -m connlimit --connlimit-above 99 -p tcp --dport 80 -j REJECT
会按照您的意愿执行。您一定会意识到iptables
规则中的顺序很重要(第一个处置正匹配获胜),并且在更改 iptables 规则集后重新启动 apache 几乎完全没有意义。