--dport 选项用来指定目标端口,比如:
[Plain Text] 纯文本查看 复制代码 iptables -A INPUT -p tcp -s 192.168.1.100 --dport 80 -j REJEC
上面命令表示,不希望 192.168.1.100 这台主机访问自己的 WEB 服务器,其中 --dport 所指定的端口是相对于源 IP 192.168.1.100 这个方向来说。
--sport 选项用来指定源端口
在设定规则之前,先来下载 www.groad.net 上的一个文件看看:正常下载。那么在如果我们不希望这台主机访问 www.groad.net 这个网站,那么可以如下设置规则:
[Plain Text] 纯文本查看 复制代码 iptables -A INPUT -p tcp -s www.groad.net --sport 80 -j REJECT
若再尝试下载上面的 logo.png 文件时会发现失败。上面的规则意思是:对于源主机(www.groad.net) 的端口(80) 所发过来的数据包(INPUT 到本台客户机)采取的处理办法是 REJECT (拒绝进入)。
需要注意的是,当指定 --dport 和 --sport 参数时,一定要指出用的是 tcp 还是 udp 协议,如不能直接写成:
[Plain Text] 纯文本查看 复制代码 iptables -A INPUT -s www.groad.net --sport 80 -j REJECT
原因是,如果不指定协议,那么相当于不管是什么协议都会符合,如 tcp, udp 或 icmp,也就是相当于添加 3 条以下的规则:
[Plain Text] 纯文本查看 复制代码 iptables -A INPUT -p tcp -s www.groad.net --sport 80 -j REJECT
iptables -A INPUT -p udp -s www.groad.net --sport 80 -j REJECT
iptables -A INPUT -p icmp -s www.groad.net --sport 80 -j REJECT
上面,对于 tcp 和 udp 是没什么问题的,但是对于 icmp 协议来说,就不存在什么 80 端口了,因此该语法错误,可以在实际中故意执行此操作查看下:# iptables -A INPUT -p icmp -s www.groad.net --sport 80 -j REJECT
iptables v1.4.10: unknown option `--sport'
Try `iptables -h' or 'iptables --help' for more information.
关于 ICMP 协议可以参考:《ping 结果浅析 》 |