Pergunta

É possível alterar a porta de destino de um pacote UDP usando iptables?

Eu estou tentando obter um agente SNMP para enviar armadilhas em 1620 em vez de 162. Infelizmente, até agora eu só conseguiu mudar a porta de origem:

iptables -t nat -A POSTROUTING -p udp --dport 162 -j SNAT --para: 1620

Foi útil?

Solução

Esse uso é, aparentemente, não suportado. Tomado de http://www.netfilter.org/documentation/HOWTO/NAT- HOWTO.txt :

6.3.7. Alterando destino de pacotes gerados localmente

O código de NAT permite que você insira regras DNAT na cadeia de produção, mas
isso não é totalmente suportado no 2.4 (-lo Pode ser, mas requer um novo
opção de configuração, alguns testes, e uma feira pouco de codificação, a menos que contratos alguém Rusty para escrevê-lo, eu Não seria de esperar que em breve).

A limitação atual é que você Só é possível alterar o destino para
a máquina local (por exemplo `--to j DNAT 127.0.0.1' ), e não a qualquer outra máquina, caso contrário, as respostas não irá ser traduzido corretamente.

Outras dicas

Assumindo que você sabe qual máquina que você está enviando para:

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620

Você pode redirecionar 162-1620

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620

@PiedPiper estava certo. Com DNAT você deve especificar um endereço IP, mas só quer fazer o redirecionamento de porta, redirecionamento para -j pode trabalhar neste caso.

http: //www.netfilter .org / documentação / HOWTO // NAT-HOWTO-6.html # ss6.2

Em vez de fazer SNAT, tente com DNAT. A porta de origem é alterado porque SNAT significa SourceNAT, de modo DNAT irá trabalhar para você.

Você pode criar uma regra de transferência e, em seguida, re-injetar o pacote com a porta modificado.

Eu fiz isso um tempo atrás no Mac OS X, mas é o mesmo princípio no Linux: http: //blog.dv8. ro / 2006/08 / utilizando-desvio-sockets-on-mac-os-x.html

Você precisa basicamente para criar um proxy transparente muito simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top