Eu preciso desta linha na minha configuração do iptables para redirecionamentos?

3

Eu tenho um aplicativo ouvindo na porta 7162 para traps SNMP. As armadilhas estão chegando na porta 162 então eu tenho esse redirecionamento no meu iptables:

-A PREROUTING -p udp -m udp --dport 162 -j REDIRECT --to-ports 7162

Também preciso permitir explicitamente conexões de entrada para a porta 162 com

-A INPUT -p udp -m state --state NEW -m udp --dport 162 -j ACCEPT

Às vezes, funciona apenas com a primeira linha, às vezes não, então estou tentando descobrir por que isso pode acontecer.

    
por Darren 17.03.2017 / 16:41

1 resposta

1

A primeira regra deve ser suficiente - a menos que você esteja limitando o acesso à porta 7162 em INPUT chain de alguma forma.

Na verdade, seu pacote UDP não deve passar pela cadeia INPUT com porta de destino definida como 162, pelo menos de acordo com o seguinte diagrama: link

Além disso, sua regra INPUT parece muito complicada. O UDP é um protocolo sem estado, então você está lidando com algum tipo de estado dentro do netfilter. Ainda não encontrei documentação adequada sobre o que esses estados significam quando usados com o UDP.

Tente monitorar as duas portas com tcpdump programa para dicas (nota: se você soltar qualquer pacote em PREROUTING chain, tcpdump não os verá ele pode ver apenas o pacote de entrada na porta 162, mesmo ouvindo em loop back não revelará o redirecionamento).

Edit: Você não está experimentando a regra com conexões dentro de uma única máquina, certo? PREROUTING não é percorrido em conexões somente locais.

    
por 17.03.2017 / 17:46