iptables,规则顺序 - 我理解对吗?

Xpe*_*tor 22 iptables

我想配置我的 VPS,使其只接受来自外部端口 22(sshd 侦听)和 ICMP 请求的连接。外界的一切都应该被拒绝。在服务器内部,一切都应该被允许。以下规则是否会创建所需的行为?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all
Run Code Online (Sandbox Code Playgroud)

我不完全确定 ACCEPT 规则是否会“赢得”上次整体 REJECT

NGR*_*des 27

你是对的。

规则将按照文件的行顺序进行处理。如果与规则匹配,则在您的情况下,不会为该 IP 数据包处理其他规则。

http://en.wikipedia.org/wiki/Iptables

链中的每个规则都包含它匹配哪些数据包的规范。它还可能包含目标(用于扩展)或判定(内置决策之一)。当数据包遍历一条链时,依次检查每个规则。如果规则与数据包不匹配,则数据包将传递到下一个规则。如果规则确实与数据包匹配,则该规则采取目标/判定指示的操作,这可能导致数据包被允许沿链继续运行,或者可能不会