Я создал следующие правила (только для FORWARD):

iptables -P FORWARD DROP
iptables -A FORWARD -o lo -j ACCEPT
iptables -A FORWARD -s ##MYIPHERE## -j ACCEPT

И тогда я запускаю iptables -L и получаю это:

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  ##MYREVERSEDNS##     anywhere
ACCEPT     all  --  localhost            anywhere

Итак, я вижу, что политика по умолчанию отбрасывается, но почему первая строка такая:

ACCEPT     all  --  anywhere             anywhere

Означает ли это, что политика по умолчанию перезаписывается и что весь трафик из любой точки разрешается пересылать? Нужно ли добавить еще одно правило? Спасибо

1 ответ1

0

Это потому, что iptables -L не включает в себя все детали. Это только дает приблизительный обзор. Чтобы получить более подробный список, используйте ключ verbose: iptables -vL . Это будет выглядеть так:

Chain FORWARD (policy ACCEPT 363K packets, 256M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER     all  --  any    docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  any    docker0  anywhere             anywhere             ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  docker0 !docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  docker0 docker0  anywhere             anywhere            

Как видите, имена интерфейсов (в данном примере только docker0 ) видны.

Если вы хотите, чтобы «код» точно воссоздал правила, используйте команду iptables-save :

-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT

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