使用lastb和iptables阻止powershell攻击

使用linux lastb命令,我发现我的服务器受到世界各地许多不同IP的powershell攻击! 我已经开发了一个脚本来检测lastb蛮力攻击者,并通过iptables阻止他们。 这是脚本:

 #!/bin/bash cd /root/ windowSize=100 tresh=10 lastb | head -n $windowSize | awk '{print $3}' | uniq -c > .ips nlines=`wc .ips -l | awk '{print $1}'` END=`expr $nlines - 1 ` for i in `seq 0 $END`; do range=`expr $nlines - $i` count=`tail .ips -n $range | head -n 1 | awk '{print $1}'` if [ $count -gt $tresh ] ; then IP=`tail .ips -n $range | head -n 1 | awk '{print $2}'` if [ ! -z .blips ] ; then touch .blips fi ; blocked=`cat .blips | grep $IP -c` if [ $blocked = '0' ] ; then echo blocking $IP iptables -A INPUT -s $IP -j DROP echo $IP >> .blips fi ; fi; done rm .ips 

如果我每个小时都用crond运行这个脚本,会不会导致任何问题?

是的,您没有采取任何措施来确保您连接到系统的IP地址被排除在外,因此您可以将自己locking在系统外面。

更好的解决scheme是安装fail2ban ,它被广泛用来做你正在做的事情。

build议的解决scheme缺乏(或聪明),因为它不保存IPTABLES,因此在下次启动时对IPTABLES所做的更改将会丢失。

您应该通过提交它们来保存被阻止的IP:/ sbin / service iptables save

CHANGE done / sbin / service iptables save rm .ips

另一方面,因为系统是自动化的,所以在看到.blips中的变化之后手动执行提交可能是明智的

DenyHosts或Fail2ban将比大多数自制的自定义脚本更好地工作。

http://en.wikipedia.org/wiki/DenyHosts

http://en.wikipedia.org/wiki/Fail2ban