LINUX封杀大量IP的方法

2021/2/1 20:55:28      点击:

在LINUX下,封杀IP使用IPTABLES是没错,但是如果要封杀成千上万的IP地址,使用默认的规则iptables -I INPUT -s xx.xx.xx.xx -j DROP去封杀,你的机器性能将会受到很大的影响。要解决封杀大量IP地址的情况,最佳实践就是使用IPSET方式,做一个IP集合,既达到封杀的目的,又不影响机器的性能。下面就介绍一下IPSET的安装和使用的方法:

yum -y install ipset  ##CENTOS下安装IPSET,DEBIAN,UBUNTU等使用apt-get install ipset
ipset create blacklist hash:net  ##创建一个blacklist的集合,默认可存储65536个IP地址,永久屏蔽方式,hash:net支持单个IP也支持掩码形式IP段
ipset create blacklist hash:net hashsize 4096 maxelem 100000 timeout 86400  ##创建一个blacklist的集合,可存储10万IP地址,默认24小时(86400秒)后自动解封,可根据自己的需要看创建自动解封还是永久级别。
iptables -I INPUT -m set --match-set blacklist src -j DROP  ##将IPSET规则,插入到IPTABLES中去
ipset add blacklist 112.27.74.226 ##将IP地址112.27.74.226加入黑名单中
ipset list blacklist  ##查看IPSET集合blacklist中屏蔽的所有IP地址
ipset del blacklist 112.27.74.226  ##将IP地址112.27.74.226从黑名单中删除
ipset save blacklist  ##保存blacklist集合
ipset save  ##保存所有集合
ipset flush blacklist  ##清空blacklist集合所有IP
ipset flush  ##清空所有集合
iptables -D INPUT -m set --match-set blacklist src -j DROP  ##将IPSET拦截规则从IPTABLES中移除
ipset destroy blacklist  ##销毁blacklist集合列表