2

Мой iptables -nvL выглядит так:

bash# iptables -nvL
Chain INPUT (policy ACCEPT 1031 packets, 81085 bytes)
pkts bytes target     prot opt in     out     source               destination         
11111  951K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpts:135:139 
    0     0 DROP       udp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           udp dpts:135:139 
    0     0 DROP       all  --  ppp0   *       0.0.0.0              0.0.0.0/0           
    0     0 DROP       udp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           udp dpts:67:68 
    0     0 DROP       all  --  ppp0   *       255.255.255.255      0.0.0.0/0           
    0     0 DROP       tcp  --  !eth0  *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 
    0     0 ACCEPT     all  --  ppp0   *       10.0.0.0/8           0.0.0.0/0           state NEW,ESTABLISHED 

Почему он говорит DROP all ppp0, прежде чем ACCEPT all ppp0 [ip]?

Разве цепочка INPUT не останавливается перед переходом ко второму правилу (то есть остановка att DROP all ppp0)?

Может быть, кто-то хотел бы соблюдать правила, но временно заблокировать? Или сопоставление правил продолжается по цепочке даже после совпадения? Насколько я понимаю, обход цепи прекращается непосредственно при выполнении критерия, или я неправильно понял это?

2 ответа2

3

Оказывается, 0.0.0.0 обозначает «неверный IP-адрес» (примечание /0 отсутствует!)
а не «каждый IP-адрес», таким образом, правило ACCEPT может быть применено к матчу!

0     0 DROP       all  --  ppp0   *       0.0.0.0              0.0.0.0/0
1

Насколько я понимаю, вы правы - последнее правило никогда не будет нарушено. Вы можете проверить это, выполнив еще один iptables -vnL после некоторого запуска и просмотра байтов и пакетов, перехваченных правилами - я думаю, что это всегда будет 0 и 0.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .