钧言极客钧言极客

钧言极客

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次访问,拉入黑名单,目标选择拒绝。
kangle

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Kangle配合ipset打造黑名单系统、自动封禁IP》
文章链接:https://www.jinjun.top/429.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 1

  1. 硬核黑科技

    陶小桃Blog 2022年12月18日    回复