关于iptables封禁国外ip的方法

下载安装包

yum -y install iptables
yum -y install ipset //iptables的扩展

添加集合

ipset create china hash:net maxelem 65536
//添加一个名叫china的Ip集合,老铁们可以按照自己的意念定义。

编写脚本

#!/usr/bin/env bash
##下载国内Ip网段并输入到~/cn.zone文件里面,可自定义。
wget --no-check-certificate -O- ‘http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest’ | awk -F| ‘/CN|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }’ > ~/cn.zone
##清空china集合
ipset flush china

ip=$(cat ~/cn.zone)
for i in $ip
do

##批量将国内Ip网段添加进china集合。
ipset add china $i
done

##写完执行!!!
##计划任务要做好定时更新ip集合。

检查是否将国内ip网段添加进china集合当中

ipset list china

最后一步!!!添加iptables规则

iptables -A INPUT -m set --match-set china src -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

此文章背景,必看!必看!必看!

作者当时所负责的一台转发服务器,因端口暴露在公网上,可算是吃尽了各种苦头,巨量的国外Ip外部端口在疯狂的扫描我们内部的转发端口,结果会是什么,大家猜猜看?是的,导致我们正式用的转发端口,无限被挤。当然,当时的作者可没少挨喷。相对于哪些自己写脚本做判断自动封禁ip的手段,作者用亲身经历说一说看法,脚本写的多,写的六,但是做不到干净利落,还是有大量的外国肉鸡ip在疯狂试探。最后找遍了百度,各种方法,总算完美的解决了问题,做到了干净利落!最后做出来的总结,综上所述。
希望能对有相同遭遇的好兄弟有所帮助!谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_48293988/article/details/115213868