iptables如何指定一个范围内的IP地址或端口
最近有人问我一个问题:
我使用iptables怎样才能节省时间和脚本大小通过指定范围的IP地址或端口?
在旧版本的iptables的IP地址范围唯一有效是nat表(见下面的例子)。但是较新的版本不支持选项,使您可以指定一个范围内的IP地址或端口的常规表输入。
iptables设置IP地址范围
您需要使用下列选项与匹配扩展(-m Ex)。
iprange :这符匹配一个给定的任意范围的IPv4地址。
[!]--src-range ip-ip: 匹配指定范围内的源IP。
[!]--dst-range ip-ip: 匹配指定范围内目标IP。
语法:
-m iprange --src-range IP-IP -j ACTION
-m iprange --dst-range IP-IP -j ACTION
例如,
允许端口22上的传入请求中只有192.168.1.100-192.168.1.200范围内的源IP。您需要添加如下的东西给你的iptables的脚本:
iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
端口范围
如果支持--protocol tcp (-p tcp),您可以使用下面的语法指定源端口范围:
--source-port port:port
--sport port:port
目标端口范围规范使用以下选项:
--destination-port port:port
--dport port:port
例如块锁定所有传入的SSH访问的端口22,源端口范围513:65535:
iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d 195.55.55.78 --dport 22 -m state --state NEW,ESTABLISHED -j DROP
在另一方面,只允许传入以下端口范围的SSH请求:
iptables -A INPUT -p tcp -s 0/0 -d 195.55.55.78 --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 195.55.55.78 -d 0/0 --sport 22 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT
NAT表 - 范围选项
如果您使用的是NAT表的选项 --to-source 和 --to-destination。IP地址范围的实例:
iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.100-192.168.1.200
或者,尝试端口范围:
iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.100:2000-3000
近期文章
- python:object()函数
- mongodb数据备份用mongorestore恢复后没有数据
- mongodb roles
- windows2003远程桌面连接蓝屏,不显示桌面图标的解决办法。
- centos下apache gb2312页面中文乱码解决办法
- 设置mongodb做为windows服务自动运行
- windows2008中IIS7配置fastcgi+php
- 服务器连接远程桌面后无法看到桌面的解决办法
- iis日志导入sql server数据库
- 7-zip命令行参数详解
- iptables如何指定一个范围内的IP地址或端口
- mongod2.6服务无法启动,权限问题
- CentOS下编译安装mysql 5.1,支持中文(GBK)
- ERROR 1045 (28000): Access denied for user root@localhost(using password: YES)
- CentOs删除文件夹下所有文件及文件夹并保留该文件夹
- CentOS 6.4: Make Command not Found
- CentOS下安装成功mysql的提示信息
- mysql configure编译完成后的提示信息
- CentOS上安装gcc的方法
- MongoDB创建root角色用户(超级管理员)