RETURN pula em falta no iptables userchain - o que acontece?

4

Eu não consigo descobrir quais são as conseqüências de uma regra RETURN ausente no final das cadeias de iptables definidas pelo usuário. Obviamente, "iptables [missing] return [jump]" são palavras-chave realmente ruins para procurar.

A manpage e qualquer blog ou como eu poderia desenterrar apenas me diga o que o -j RETURN faz (o que é bastante óbvio), mas não o que acontece se estiver faltando. Além disso, não consigo configurar regras experimentais sãs para experimentá-lo ...

iptables -N userchainA
iptables -A INPUT -j userchainA
iptables -N userchainB
iptables -A INPUT -j userchainB
iptables -A INPUT -j ACCEPT

iptables -A userchainA ... # anything here, that DOES NOT MATCH
#### no explicit return from userchainA!

iptables -A userchainB ... # anything here, that DOES NOT MATCH
iptables -A userchainB -j RETURN 

Dadas estas regras, nada funciona bem. Os pacotes percorrem todas as cadeias e finalmente atingem o ACCEPT from INPUT , como se o (em falta) -j RETURN de userchainA fosse feito implicitamente. É este o caso?

Por que isso está funcionando? Eu teria esperado algum tipo de erro ou pelo menos uma mensagem de log sobre a queda de uma cadeia.

    
por Karma Fusebox 18.01.2013 / 02:58

1 resposta

5

Quando o iptables atinge o final de uma cadeia definida pelo usuário, o fluxo retorna para a próxima regra na cadeia de chamada. O RETURN é, portanto, implícito; não precisa ser explicitamente dado.

    
por 18.01.2013 / 03:02

Tags