我正在尝试了解以下 iptables 配置文件:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Allow WiFi AP traffic over 80 & 8080
-A INPUT -i p2p0 -p tcp --dport 80 -j ACCEPT
-A INPUT -i p2p0 -p tcp --dport 8080 -j ACCEPT
# Drop any traffic to port 80 & 8080
-A INPUT -p tcp -m tcp --dport 80 -j DROP
-A INPUT -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -i wlan0 -p tcp --dport 1502 -j DROP
COMMIT
我的问题是,如果默认的 INPUT 链是接受的,那么为什么我需要这两个其他规则来接受 WIFI 连接?
另外关于这一行:
-A INPUT -p tcp -m tcp --dport 80 -j DROP
'-m tcp' 的用途是什么?如果我这样做会有什么不同:
-A INPUT -p tcp --dport 80 -j DROP
先感谢您。
答案1
规则按顺序处理。如果没有相关ACCEPT
规则,p2p0
则无论链的默认设置如何,数据包都会与后续规则匹配并被丢弃INPUT
。
-m tcp
加载 TCP 模块;iptables
否则不知道 TCP 端口号和其他此类协议详细信息。如果您添加规则而不添加,-m tcp
则 iptables 将为-p tcp
规则添加该规则:
[root@localhost]~# iptables -A INPUT -p tcp --dport 12345 -j DROP
[root@localhost]~# iptables-save | grep 12345
-A INPUT -p tcp -m tcp --dport 12345 -j DROP
^^^^^^
顺便说一句,您可能希望允许环回接口上的流量。