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


17

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

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规则是否会“赢得”上次总体拒绝


1
您不应该--source 127.0.0.1用来确定数据包是否可以安全接收。请参阅serverfault.com/a/825231/4131
Bruno Bronosky

Answers:


20

你是对的。

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.