iptables和ipset批量限制非法ip源

一、获取非法ip源:

扫描登录失败的日志:
less secure*|grep “Failed password for root from”  >/tmp/gj.list
对扫描日志进行分析,非法尝试失败超过50的ip列出来,保存为gongji.ip
cat /tmp/gj.list|perl -anle  ‘print $F[10]’|sort |uniq -c|sort -n |perl -anle ‘print $F[1] if $F[0]>50 ‘>/tmp/gongji.ip

二、安装ipset进行ip管理(略)

三、在ipset中创建一个ip组用于存放非法ip

ipset -N banip iphash

四、写个脚本本将ip加入banip分组

vim ipsetadd.sh

_input=/tmp/gongji.ip

IPS=/usr/sbin/ipset

egrep -v "^#|^$" $_input | while IFS= read -r ip

do
        $IPS -A banip $ip
done

执行sh ipsetadd.sh

五、iptables 禁止这些ip

iptables -I INPUT -m set –match-set banip  src -p tcp   -j DROP

 

ok,收工