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

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

我不完全确定 ACCEPT 规则是否会“战胜”最后的整体 REJECT

答案1

你是对的。

规则将按照文件的行顺序进行处理。如果某条规则匹配,则不会针对该 IP 数据包处理其他规则。

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

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

相关内容