Как iptables политики работают?

Я добавил некоторые основные правила:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Затем команда для закрытия всех других портов с:

iptables -A INPUT -j DROP

И это работает отлично, я протестировал его с:

% telnet x.x.x.x 81                                
Trying x.x.x.x...
telnet: connect to address x.x.x.x: Operation timed out
telnet: Unable to connect to remote host

Но когда я перечисляю правила, я вижу policy ACCEPT:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Я знаю, как изменить его, с iptables -P INPUT DROP, затем это становится:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Но я не понимаю различия, потому что оно работает как прежде. Я прочитал эту статью, которая предлагает изменить политику ОТБРОСИТЬ, но почему я должен сделать это? Каково различие в моем iptables выше?

1
задан 4 January 2015 в 18:19
1 ответ

Политика iptables DROP эквивалентна iptables -A INPUT -j DROP (правило DROP) в конце цепочки. Но это правило должно оставаться в конце цепочки , любое правило после него никогда не будет затронуто никакими пакетами.

Если вы используете правило DROP, вы больше не можете использовать iptables -A (добавить), вы можете использовать только iptables -I nr (вставить, номер - номер последнего правила) и вставлять правила перед последним. И для того, чтобы эта вставка работала, вы должны знать номер вашего последнего правила, которое, конечно, изменится, поэтому становится сложнее писать скрипт. Вы можете избавить вас от некоторых трудностей, используя политику DROP.

И, наконец, imho, она делает все намного более читабельным, если я с самого начала знаю, как будут обрабатываться пакеты, не соответствующие какому-либо правилу.

Любые другие мысли об этом?

4
ответ дан 3 December 2019 в 17:40

Теги

Похожие вопросы