Observe que alterações de destino, como porta ou IP, só podem ser realizados no gancho PREROUTING. Infelizmente, porém, existe um problema aí, pois observe que pacotes gerados por processos locais não passam por este gancho.
Para evitar que pacotes gerados localmente fossem condenados a não ter meios de alterar parâmetros de destino, o nat também atua no gancho OUTPUT.
As regras do nat OUTPUT tem o mesmo propósito e a mesma sintaxe das do gancho PREROUTING, com a única diferença de operar pacotes originados por processos locais.
Eu particularmente uso isto para redirecionar alguns tráfegos SSH. Por exemplo, um dos servidores que administro, para diminuir as tentativas de força bruta, está operando o SSH na porta 2215 e não na porta 22 padrão. Para evitar o incômodo de ter que por -p 2215 cada vez que executo o meu cliente:
$ ssh meuServidor -p 2215
Eu optei por inserir a seguinte regra de iptables:
Depois desta regra você pode acessar o VOL também desta forma:
http://www.vivaolinux.com.br:90/
O iptables se encarrega de trocar a porta 90 para a 80 e destrocá-la quando o pacote retornar, sem que precise de uma regra específica para isto (este comportamento de desfazer a troca sozinho não é só da lista OUTPUT, mas em todas. Em algumas ocasiões, porém, quando se estiver realizando nat 1:1 deve-se colocar regras de ida e de retorno).
[4] Comentário enviado por marcelows em 24/07/2007 - 00:50h
Artigo muito bem escrito... Valeu Prof...
Uma dúvida existe uma forma de testar uma regra antes de realmente efetiva-la? Algo do tipo se estiver roteando um pacote a um outro servidor e este nao responder eu pulo para uma outra regra...
Obs.: Desculpe-me se a pergunta for meio tola.... Fui aluno seu na minha graduacao em ciencias da computador.
[5] Comentário enviado por peace em 24/07/2007 - 16:44h
Li seus dois artigos sobre iptables e realmente devo lhe dar os parabéns.
Muito bem escrito e vai nos pontos que realmente importam para começar a entender sobre iptables e construir firewalls (que não é uma tarefa das mais fáceis).
Explicar o conceito é muito mais importante do que apenas listar os comandos, e você fez isto aqui muito bem.
Estou entendendo e me familiarizando muito mais com iptables e suas tabelas, que até pouco tempo faziam alguma confusão na minha cabeça.
[7] Comentário enviado por capitainkurn em 29/07/2007 - 13:08h
Ótimo artigo, muito didático... Eu mesmo que não sou novo toda hora erro meus scripts por trocar o PRE por POST e vice-versa. Tendo que sempre consultar o pai-dos-burros (Guia foca cap. 10 módulo avançado), não sou bom em memorizar coisas repetitivas.
[9] Comentário enviado por kabalido em 04/12/2007 - 19:00h
Sensacional cara. Parabéns!!! Com certeza um dos melhores artigos que já li aqui no VOL.
Esse artigo me tirou muitas dúvidas sobre iptables.
Parabéns mais uma vez.
[10] Comentário enviado por irado em 01/09/2008 - 16:24h
wowwww... só na primeira olhada que dei na figura de estrutura eu compreendi COMO se processa a filtragem de pacotes, que pega quem... caramba, parabéns pra vc é pouco, que tal uma cerva geladinha? eu pago, não se preocupe, afinal tô convidando é pq me fez um grande bem os seus dois artigos (nem vou falar naquêle de mascara de rede - tão simples que ATÉ EU consegui entender - risos).
parabéns grandão, garoto :) quando crescer vou querer saber tanto quanto vc.
[11] Comentário enviado por rogerio_gentil em 10/03/2009 - 11:16h
Parabéns Elgio. Este artigo está sensacional. Gostei muito do primeiro artigo (1ª parte) sobre a tabela filter. Porém, este sobre a tabela nat é o que eu estava buscando para compreênde-la. Gostaria de enfatizar à você e a todos os contribuidores de artigos a importância de descrever as refências. Nada vem da cabeça! Tudo tem um ponto de partida ... e o meu começou aqui!
Abraços.
[13] Comentário enviado por schenkmh em 15/10/2010 - 10:23h
Olá Elgio
Em primeiro lugar parabéns pelos artigos. Li alguns e estão me ajudando muito a ter uma compreensão melhor sobre firewall e iptables. Gostaria de me aprofundar mais sobre as tabelas filter, nat e mangle. Principalmente sobre a tabela mangle que me parece um assunto mais avançado no que diz respeito aos recursos do iptables.
Não encontrei nenhum material que explique a fundo esta tabela, teria alguma dica? Como posso entender melhor suas funções?
[17] Comentário enviado por elgio em 05/11/2013 - 21:46h
Estranhamente a tabela nat passou a atuar no gancho INPUT a partir do kernel 2.6.36.
Ainda não consegui entender qual a necessidade disto. Se alguém souber, fico grato.
O item "Proteção contra Syn Flood" deve ser sumariamente REMOVIDO deste artigo. É um "atentado" ( # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT)