前言
在 Linux 内核上, netfilter 是负责数据包过滤, 网络地址转换 (NAT) 和基于协议类型的连接跟踪等功能的一个子系统, 这个子系统包含一些信息包过滤表组成, 这些表包含内核用来控制信息包过滤处理的规则集. iptables 是一个管理 netfilter 的工具.
多个连续 IP 操作
1, 拆分成多条命令运行
- iptables -A INPUT 192.168.122.2 -j ACCEPT
- iptables -A INPUT 192.168.122.3 -j ACCEPT
- iptables -A INPUT 192.168.122.4 -j ACCEPT
- iptables -A INPUT 192.168.122.5 -j ACCEPT
- ....
这种方式需要写很多条命令, 而且会导致 iptables 的表很长不好管理, 而且量多了也会很小很小地影响性能(可以忽略不计).
2, 对一个 IP 段的 IP 进行访问控制, 可以根据 IP/MASK 的形式进行控制
iptables -A INPUT 192.168.122.0/24 -j ACCEPT
这种方式需要针对 IP 范围, 计算出指定的源码, 不灵活.(虽然很多使用为了方便都是使用这种方法, 但是过多地授权会存在安全隐患)
3,iptables 有很多个模块, 其中 iprange 就是用来专门处理连续 IP 段的访问控制的
- iptables -A INPUT -m iprange --src-range 192.168.122.2-192.168.122.34 -j ACCEPT #匹配源 IP
- iptables -A INPUT -m iprange --dest-range 8.8.8.2-8.8.8.22 -j DROP #匹配目标 IP
这种方式比较灵活, 不需要去计算掩码是多少, 直接给出范围就可以了.
总结
目前官方好像没有支持不连续的 IP, 也有人添加了模块来支持不连续 IP.
个人觉得如果要管理好 iptables 列表, 还是要先进行整理一下, 再进行限制, 需要用到连续的 IP 就用上面的方式, 不连续的还是老老实实写多条命令; 而且机器多了还要安装模块, 有可能影响系统的稳定性.
来源: http://server.51cto.com/sOS-584686.htm