ordem de processamento de regras em cadeias de iptables [fechadas]

1

A ordem de processamento das regras no iptables é de cima para baixo? Dado o seguinte exemplo:

Chain DOCKER (2 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            
DNAT       tcp  --  anywhere             anywhere             tcp dpt:5000 to:172.19.0.2:5000

A segunda regra (DNAT) nunca deve ser processada, pois a primeira regra (RETURN) corresponderá a cada pacote e, como essa regra tem um destino, que é uma ação de finalização (RETURN), as regras subseqüentes serão ignoradas, levando-o a pular para a próxima regra da cadeia anterior.

Mas isso está funcionando. Eu sou capaz de se conectar ao host na porta 5000, que então DNATs para o recipiente 172.19.0.2:5000. Como? Pelo que entendi, isso não deve funcionar, já que a regra DNAT nunca deve ser invocada, pois todos os pacotes corresponderão à primeira regra.

Aqui está a% completa da saídaiptables-save -c:

# Generated by iptables-save v1.6.1 on Tue Sep  4 07:46:28 2018
*mangle
:PREROUTING ACCEPT [223887:255226234]
:INPUT ACCEPT [222119:254095862]
:FORWARD ACCEPT [1246:1112414]
:OUTPUT ACCEPT [146355:28000095]
:POSTROUTING ACCEPT [149233:29175672]
COMMIT
# Completed on Tue Sep  4 07:46:28 2018
# Generated by iptables-save v1.6.1 on Tue Sep  4 07:46:28 2018
*nat
:PREROUTING ACCEPT [98:6639]
:INPUT ACCEPT [19:3259]
:OUTPUT ACCEPT [1784:495831]
:POSTROUTING ACCEPT [1784:495887]
:DOCKER - [0:0]
[3:687] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[11:660] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[12:684] -A POSTROUTING -s 172.19.0.0/24 ! -o docker0 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.19.0.2/32 -d 172.19.0.2/32 -p tcp -m tcp --dport 5000 -j MASQUERADE
[0:0] -A DOCKER -i docker0 -j RETURN
[0:0] -A DOCKER ! -i docker0 -p tcp -m tcp --dport 5000 -j DNAT --to-destination 172.19.0.2:5000
[2:120] -A DOCKER ! -i docker0 -p tcp -m tcp --dport 5001 -j DNAT --to-destination 172.19.0.2:5001
COMMIT
# Completed on Tue Sep  4 07:46:28 2018
# Generated by iptables-save v1.6.1 on Tue Sep  4 07:46:28 2018
*filter
:INPUT ACCEPT [222119:254095862]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [146355:28000095]
:DOCKER - [0:0]
:DOCKER-ISOLATION - [0:0]
:DOCKER-USER - [0:0]
[1246:1112414] -A FORWARD -j DOCKER-USER
[1246:1112414] -A FORWARD -j DOCKER-ISOLATION
[618:1075408] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o docker0 -j DOCKER
[628:37006] -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
[0:0] -A FORWARD -i docker0 -o docker0 -j ACCEPT
[0:0] -A DOCKER -d 172.19.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 5000 -j ACCEPT
[1246:1112414] -A DOCKER-ISOLATION -j RETURN
[1246:1112414] -A DOCKER-USER -j RETURN
COMMIT
# Completed on Tue Sep  4 07:46:28 2018
    
por soupybionics 03.09.2018 / 20:15

0 respostas