kangle配合iptables实现黑名单系统,频率检测自动封禁IP,打造防火墙拦截系统
顺便一说,毕竟防护CC默认只是阻断访问,肯定没黑名单封禁不接收数据来的强,省流量是肯定的。需kangle 3.1以上商业版支持,可配合iptables自动封,解封ip,防止攻击。使用得当,效果非常好。
初始化iptables,输入以下命令(root): 必须添加,否者都提示No chain/target/match by that name.报错
/sbin/iptables -N kangle
/sbin/iptables -I INPUT -p tcp -j kangle
/etc/init.d/iptables save
增加配置文件
/vhs/kangle/ext目录新建一个xml文件,如:iptables.xml,内容如下:(目录不存在可以用mkdir -p /vhs/kangle/ext创建)
<?xml version="1.0" encoding="utf-8"?>
<config>
<block_ip_cmd>/sbin/iptables -I kangle -s ${ip} -j DROP</block_ip_cmd>
<unblock_ip_cmd>/sbin/iptables -D kangle -s ${ip} -j DROP</unblock_ip_cmd>
<flush_ip_cmd>/sbin/iptables -F kangle</flush_ip_cmd>
<bl_time>600</bl_time>
</config>
bl_time是黑名单时间,单位秒,请修改为你的设置。这里设置的是10分钟。
如果不想添加初始化iptables命令的话,可以放在系统默认的INPUT表中,把kangle替换INPUT就可以了。比如说用下面这个,就可以不进去ssh进行初始化,方便做cdnbest多节点分发之类,注意默认封禁all,包括ping也会进行拦截10分钟,期间无法登陆ssh,至于命令加不加tcp看你自己了,个人建议全封了。
<!--#start 800 -->
<?xml version="1.0" encoding="utf-8"?>
<config>
<block_ip_cmd>/sbin/iptables -I INPUT -s ${ip} -j DROP</block_ip_cmd>
<unblock_ip_cmd>/sbin/iptables -D INPUT -s ${ip} -j DROP</unblock_ip_cmd>
<flush_ip_cmd>/sbin/iptables -F INPUT</flush_ip_cmd>
<bl_time>600</bl_time>
</config>
重载kangle配置文件
/vhs/kangle/bin/kangle -r
使用黑名单
进kangle管理后台 http://ip:3311/
black_list标记模块。在请求控制中可以使用这个模块,这个可以和其它模块配合,如ip_rate用来检测某个ip的访问频率。仅在全局请求控制中才会同步到防火墙上。
per_ip_deny,在配置==>资源限制,勾上per_ip_deny,kangle会对超过每ip连接数限制的加入黑名单。
具体设置可以参考:http://bbs.itzmx.com/thread-9270-1-1.html
使用iptables -L -n --line-numbers
查看封禁效果
效果图,个人建议使用频率,2秒80次封禁10分钟是不错的设置。目标设置拒绝
补充,现在http2的话,资源并发占用很大,建议调大数值,比如说10秒内200次。
我想问那个kangle已生效的黑名单列表 在哪看,Windows下面的 hhmx 发表于 2017/7/9 05:47
我想问那个kangle已生效的黑名单列表 在哪看,Windows下面的
这个在前台上看不到。。有api可以获取当前黑名单列表 然后具体的api是啥我不知道← 小樱 发表于 2017/7/9 15:23
然后具体的api是啥我不知道←
小樱现在知道api是啥了吗{:130:} hhmx 发表于 2019/11/19 15:19
小樱现在知道api是啥了吗
没关注,你问问官方 用一种方法部署了,谢谢分享。第二种方法应该是旧本来教程了吧,系统默认的INPUT表中,这个没找到,只有BEGIN表 天子 发表于 2020/5/27 06:17
用一种方法部署了,谢谢分享。第二种方法应该是旧本来教程了吧,系统默认的INPUT表中,这个没找到,只有BEG ...
INPUT是系统防火墙,,不是请求控制 昨天刚看的,用IP黑名单防范攻击,感觉比这个好用多了,还有现在对于大部分做反代的小鸡,大都是centos7以上系统,一般不自动安装ipta防火墙了,
https://bbs.itzmx.com/forum.php?mod=viewthread&tid=9270&pid=406286&page=1&extra=#pid406286 uddd 发表于 2020/8/10 23:12
昨天刚看的,用IP黑名单防范攻击,感觉比这个好用多了,还有现在对于大部分做反代的小鸡,大都是centos7以 ...
嗯,防火墙yum一下就能安装啦,一般阿里云腾讯云的centos7模板都自带 所谓初始化iptables,是指需要将iptables所有默认规则和自定义规还有计数器归0清空吗,还是什么意思{:1324:} uddd 发表于 2020/8/14 23:05
所谓初始化iptables,是指需要将iptables所有默认规则和自定义规还有计数器归0清空吗,还是什么意思{:1324: ...
意思就是在iptables中创建一个表,并且给表设置好规则并且保存的意思。操作完成后,kangle就可以操作这个表进行添加ip地址拦截 小樱 发表于 2020/8/15 00:53
意思就是在iptables中创建一个表,并且给表设置好规则并且保存的意思。操作完成后,kangle就可以操作这个 ...
这样就可以了吗,第3条命令对centos7不适用了,自己找的规则保存命令
uddd 发表于 2020/8/15 12:52
这样就可以了吗,第3条命令对centos7不适用了,自己找的规则保存命令
嗯,centos7的保存规则你可以发帖分享 小樱 发表于 2020/8/15 19:03
嗯,centos7的保存规则你可以发帖分享
好的,我先整理完全套,发在哪个区呢,各类教程里面吗 uddd 发表于 2020/8/15 21:28
好的,我先整理完全套,发在哪个区呢,各类教程里面吗
嗯,可以 这个能设置多个规则吗?目前遇到了恶意刷静态,设置了300s 1000次 封锁一天,封锁了3k多的ip,流量明显下降。想额外弄一个600s 1500次封锁一月的 天子 发表于 2020/10/19 14:59
这个能设置多个规则吗?目前遇到了恶意刷静态,设置了300s 1000次 封锁一天,封锁了3k多的ip,流量明显下降 ...
可以,互不冲突不影响 小樱 发表于 2020/10/19 17:39
可以,互不冲突不影响
监控频率可以在请求控制写多条,黑名单时间我只知道有一个填写框;
请教下如何对不同频率封锁不同的时间
天子 发表于 2020/10/20 11:07
监控频率可以在请求控制写多条,黑名单时间我只知道有一个填写框;
请教下如何对不同频率封锁不同的时间 ...
看了下新版已经取消封禁时间选项了,只能设置一个全局的封禁时间 服务器重启后得初始化下命令,然后kangle也重启下先生效 “ 如果不想添加初始化iptables命令的话,可以放在系统默认的INPUT表中,把kangle替换INPUT就可以了。”这个是指/vhs/kangle/ext/中的任意一个表格? 天子 发表于 2020/10/31 00:49
“ 如果不想添加初始化iptables命令的话,可以放在系统默认的INPUT表中,把kangle替换INPUT就可以了。”这 ...
是iptables的表 小樱 发表于 2020/10/31 02:28
是iptables的表
去折腾了一番,用了第三条代码,以后重启服务器再也不用担心去ssh做初始化命令;
<block_ip_cmd>/sbin/iptables -I INPUT -s ${ip} -j DROP</block_ip_cmd>同步kangle黑名单添加至防火墙
<unblock_ip_cmd>/sbin/iptables -D INPUT -s ${ip} -j DROP</unblock_ip_cmd>同步kangle要删除的黑名单到防火墙
<flush_ip_cmd>/sbin/iptables -F INPUT</flush_ip_cmd>清除所有防火墙IP,应该是kangle重启的时候会触发这个
<bl_time>600</bl_time>这个好像可以直接删除,我在全局的配置设置了500秒,优先启用封禁时间500秒 天子 发表于 2020/10/31 18:47
去折腾了一番,用了第三条代码,以后重启服务器再也不用担心去ssh做初始化命令;
/sbin/iptables -I INP ...
是的,非常棒,完美的理解,就是这个意思 本帖最后由 platnumcn 于 2020/11/14 14:30 编辑
大佬 出来的是这样的对不
就是 我用命令 systemctl is-enabled iptables 回答 IPTABLES是DISABLED 这需要给他关闭默认防火墙 开启不 看YOUTUBE说是要用命令
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld 然后再用
systemctl enable iptables
systemctl start iptables
platnumcn 发表于 2020/11/14 14:28
大佬 出来的是这样的对不
就是 我用命令 systemctl is-enabled iptables 回答 IPTABLES是DISABLED 这需要 ...
是,使用iptables,而不是firewalld 本帖最后由 hackaq 于 2022/6/16 14:30 编辑
@小樱 这个只能全局在节点的ip吗?cdn反向代理的域名不命中
昨天我本地做了测试 如果直接CC节点ip的话 会命中这封禁,然后我又测试了下域名,直接cc域名的话就不会命中check_black_listip_rateblack_list per_ip 这几个模块 也不会在iptables封禁, 难道是我配置请求控制的排序导致的吗?我都是插入在 0 1 2
因为cc攻击都是直接c域名的多 ,有什么办法攻击者c域名也拦截封禁吗? hackaq 发表于 2022/6/16 14:23
@小樱 这个只能全局在节点的ip吗?cdn反向代理的域名不命中
昨天我本地做了测试 如果直接CC节点ip的话...
没有你这种说法,根据你的描述,你CC节点ip时已经被封禁了。
你先检查下是否拦截封禁了,有没有先重启来释放封禁的ip名单,不然此时在去CC域名,依旧已经在封禁名单中了,自然无需二次进行封禁。
页:
[1]
2