曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4730|回复: 0
打印 上一主题 下一主题

--src-range/--dst-range --- IP 地址范围的匹配

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-5-23 13:53:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般情况下,封闭一个 IP 范围会使用 IP 的 CIDR 记法,比如:
[Plain Text] 纯文本查看 复制代码
iptables -A INPUT -p all -s 192.168.1.0/26 -j DROP

上面这条规则中指示的子网范围为 192.168.1.1 ~ 192.168.1.61 。假如,我们要封锁的 IP 范围是 192.168.1.10~192.168.1.13 那么应该怎么办呢?一个做法是将 192.168.1.0/24 这个网段划分为 32 个子网,每个子网中有 6 台主机(主机 IP 地址范围为 “子网地址+1” 到 “广播地址-1”),而该子网子的网掩码为 255.255.255.248 ,  因此要适应 192.168.1.10~192.168.1.13 这个地址范围,用 CIDR 记法就为 192.168.1.8/29 (此时子网范围为:192.168.1.8~192.168.1.15)。那么,上面的防火墙规则就改为:
[Plain Text] 纯文本查看 复制代码
iptables -A INPUT -p all -s 192.168.1.8/29 -j DROP

但是上面的规则已经包含了 192.168.1.9 和 192.168.1.14 这两个“无辜”的 IP,因此还要添加规则将其去掉:
[Plain Text] 纯文本查看 复制代码
iptables -A INPUT -p all 192.168.1.9 -j ACCEPT
iptables -A INPUT -p all 192.168.14 -j ACCEPT


从上面可以看到,划分着么多个子网有点不现实。如果不细化这个子网,那么要排除掉“无辜”的 IP 就会很多,因此使用 CIDR 记法来表示 IP 范围就显得笨拙许多。

还好,有一个 xt_iprange.ko 模块,它可以为我们提供 --src-range 和 --dst-range 这两个选项,这样就省事多了,比如只要如下添加规则:
[Plain Text] 纯文本查看 复制代码
iptables -A INPUT -m iprange --src-range 192.168.1.10~192.168.1.13 -j DROP

这样就不用再辛苦计算子网或者是辛苦排除“无辜” IP 了。同样的 --dst-range 也一样道理的使用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-7 04:06 , Processed in 0.115164 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表