Kangle配合ipset打造黑名单系统、自动封禁IP

需kangle 3.1以上商业版支持,搭配ipset或iptables自动封禁IP,解禁IP。

安装软件包

# centos
yum install ipset iptables

# Debian
apt install ipset iptables

创建kangle的防火墙集合

ipset create kangle hash:ip hashsize 4096 maxelem 1000000
# 加入系统自启动
echo "/usr/sbin/ipset create kangle hash:ip hashsize 4096 maxelem 1000000" >> /etc/rc.d/rc.local

ipset的集合丢入Iptables的链,使与iptables和ipset进行联动。

iptables -I INPUT -m set --match-set kangle src -p tcp -m multiport --destination-port 80,81,443,3312,3313 -j DROP
service iptables save
service iptables restart

增加kangle配置文件/vhs/kangle/ext目录新建一个xml文件

touch /vhs/kangle/ext/ipset.xml;
cat >>/vhs/kangle/ext/ipset.xml<<EOF
<!--#start 800 -->
<?xml version="1.0" encoding="utf-8"?>
<config>
<block_ip_cmd>/usr/sbin/ipset add kangle ${ip}</block_ip_cmd>
<unblock_ip_cmd>/usr/sbin/ipset del kangle ${ip}</unblock_ip_cmd>
<flush_ip_cmd>/usr/sbin/ipset flush kangle</flush_ip_cmd>
</config>
EOF

重载kangle配置文件

/vhs/kangle/bin/kangle -r

屏蔽的IP查看

ipset list kangle

卸载kangle ipset防御

rm -f /vhs/kangle/ext/ipset.xml
/vhs/kangle/bin/kangle --r
ipset flush

使用kangle黑名单

进入kangle的管理后台:ip:3312

black_list标记模块。在请求控制中可以使用这个模块,这个可以和其它模块配合,如ip_rate用来检测某个ip的访问频率。仅在全局请求控制中才会同步到防火墙上。per_ip_deny,在配置==>资源限制,勾上per_ip_deny,kangle会对超过每ip连接数限制的加入黑名单。

设置2秒80次访问,拉入黑名单,目标选择拒绝


网站教程,网站源码,日常生活,美化教程 2024-06-05 10:32:46 通过 网页 浏览(44)

共有0条评论!

发表评论

富强民主文明和谐自由平等公正法制丨爱国敬业诚信友善