centos iptable

2015-09-17 23:12:08 +08:00
 piero66

centos iptable 有没有办法限制一个端口最多只能有 10 个 ip 访问,第 11 个 ip 会被直接 drop 。

看到 iptable 有 connlimit 模块,但这个是限制连接数的,好像实现不了我上面的功能。因为我对每个 ip 的连接数没有要求。

2101 次点击
所在节点    问与答
5 条回复
ShadowStar
2015-09-18 01:41:57 +08:00
好像没有现成的模块,你可以自己写一个,很简单的。
adrianzhang
2015-09-18 02:20:15 +08:00
必须自己写。很久以前曾经写过一个小脚本,谁扫描我的 vps 的 ssh 端口就把谁的 ip 用 iptables 干掉。实现起来比较简单的。你这个需求,思路可以是:把前 10 个加入到允许,然后 deny all 就好了。
piero66
2015-09-19 20:55:45 +08:00
@ShadowStar 望提供思路。。。
ShadowStar
2015-09-20 02:39:01 +08:00
@piero66 基本结构可以参照 recent 的模式,输入几个参数: src/dst , ttl , num 。
然后对于进入此条规则的报文取 dst/src ,查找 IP 表,如果找到刷新 TTL ,否则添加并刷新 TTL ,返回 true ;如果添加失败(超过限定 num 值),返回 false 。
TTL 到期删除对应表项。
IP 表可以采用链表、 hash 表,甚至数组,取决于限定的 IP 数量大小。
ShadowStar
2015-09-20 02:42:31 +08:00
@piero66 如果需要支持多 IP 的限定(例如在转发的时候),只需要把 IP 表改为二维的即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/221609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX