Marcio Cunha

Como configurar NAT e redirecionamento de portas no iptables

Aprenda a manipular pacotes de rede e mapear portas no Linux usando o iptables para expor serviços locais ou mascarar endereços IP com segurança.

Marcio Cunha•5 min
Também disponível em:EnglishEspañol
Resumo
  • O iptables atua como o porteiro de tráfego do Linux, decidindo o destino exato de cada pacote de dados.
  • A tabela nat modifica endereços de origem e destino, viabilizando o compartilhamento de conexões.
  • O mascaramento de IP permite que múltiplos computadores internos acessem a internet por um único endereço público.
  • O redirecionamento de portas direciona acessos externos para serviços isolados em redes privadas.
  • A persistência das regras exige salvamento manual para evitar a perda das configurações após o reinício.

O que é o iptables e como ele gerencia o tráfego de rede

Gerenciar o tráfego de rede em sistemas Linux exige compreender ferramentas fundamentais que controlam a entrada e saída de dados. O iptables funciona como uma ferramenta de controle de pacotes do núcleo do sistema, permitindo que administradores definam regras rígidas sobre o fluxo de informações que atravessam a máquina. Na prática, ele age como um guarda de trânsito digital, inspecionando cada pedaço de dado que chega ou sai para decidir se ele deve passar, ser bloqueado ou ter seu destino alterado.

Para entender o seu funcionamento, é preciso saber que o núcleo do Linux organiza o fluxo em tabelas especializadas. A tabela de filtragem cuida da segurança bloqueando conexões indesejadas, enquanto a tabela de manipulação de endereços cuida da tradução de IPs e portas. Antes de aplicar qualquer comando complexo, é altamente recomendável garantir que a base do sistema esteja protegida, conceitos que você pode aprimorar ao aprender como configurar regras de firewall com UFW no Ubuntu, uma alternativa mais amigável para o dia a dia.

Como funciona a tradução de endereços de rede no Linux

A tradução de endereços de rede, conhecida como NAT, resolve um problema clássico de escassez de endereços IP na internet. Na prática, ela pega um pacote de dados vindo de uma rede interna com endereços privados e substitui o endereço de origem pelo IP público do roteador antes de enviá-lo para a internet. Quando a resposta retorna, o sistema faz o caminho inverso, garantindo que o dado chegue exatamente ao computador que fez a solicitação original.

Esse mecanismo opera principalmente em duas frentes dentro do iptables: o mascaramento de saída e o redirecionamento de entrada. O mascaramento esconde os IPs dos computadores de uma rede local atrás de uma única interface pública. Já o redirecionamento permite que um servidor receba uma conexão em uma porta específica e a envie para outro equipamento interno, o que é indispensável para hospedar serviços atrás de barreiras de segurança ou balanceadores de carga.

Como configurar o mascaramento de IP para redes locais

Compartilhar uma conexão de internet entre várias máquinas usando um servidor Linux central é um cenário clássico de infraestrutura. Para fazer isso, o primeiro passo é habilitar o repasse de pacotes no núcleo do sistema, permitindo que o servidor funcione efetivamente como um roteador. Isso é feito alterando uma configuração temporária no sistema de arquivos virtual do kernel, que diz ao Linux que ele deve aceitar e repassar pacotes destinados a outras redes.

Com o repasse ativado, aplicamos a regra de mascaramento na tabela nat do iptables. Na prática, dizemos ao sistema que qualquer pacote saindo pela interface de rede externa deve ter sua origem mascarada. Você pode executar os comandos abaixo no terminal do seu servidor Linux:

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Neste exemplo, a interface eth0 representa a placa conectada à internet. Essa configuração garante que dispositivos locais conversem perfeitamente com servidores externos sem precisar de IPs públicos individuais.

Como redirecionar portas para servidores internos

Expor um serviço interno para a internet usando uma porta específica exige o uso da técnica de redirecionamento, tecnicamente chamada de DNAT. Imagine que você roda um servidor web em uma máquina isolada na sua rede interna com o IP 192.168.1.50 na porta 8080, mas quer que ele responda na porta padrão 80 do seu roteador de borda. O iptables intercepta o tráfego que chega na porta 80 e altera o destino do pacote antes que ele continue sua jornada.

Para implementar esse redirecionamento na prática, utilizamos a cadeia de pré-roteamento da tabela nat. Veja o comando necessário para realizar essa operação no seu firewall:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.50:8080
sudo iptables -A FORWARD -p tcp -d 192.168.1.50 --dport 8080 -j ACCEPT

Além de alterar o destino do pacote, é fundamental liberar a passagem desse tráfego na cadeia de encaminhamento para que o núcleo não descarte a conexão por motivos de segurança. Para investigar falhas de conectividade ou verificar se os pacotes estão realmente chegando ao destino esperado, vale a pena consultar guias complementares sobre como rastrear pacotes IP e rotas no Linux com o traceroute.

Como salvar e persistir as regras do iptables após reiniciar

Uma grande armadilha para administradores iniciantes é configurar todo o conjunto de regras de NAT e perceber que tudo desapareceu após reiniciar o servidor. Por padrão, o iptables mantém suas configurações apenas na memória RAM volátil. Para garantir que o trabalho não seja perdido, é necessário utilizar pacotes específicos que salvam o estado atual das tabelas em arquivos estáticos no disco rígido.

Em distribuições baseadas em Debian e Ubuntu, o pacote iptables-persistent automatiza esse salvamento durante o processo de boot do sistema operacional. Você pode instalar e salvar suas configurações atuais executando os comandos a seguir no terminal:

sudo apt update && sudo apt install iptables-persistent
sudo netfilter-persistent save

Durante a instalação, o sistema perguntará se você deseja salvar as regras IPv4 e IPv6 atuais. Confirmar essa etapa garante que suas regras de redirecionamento e mascaramento sobrevivam a reinicializações inesperadas de energia ou manutenções programadas. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como testar o circuito integrado de rede com multímetro.

Considerações finais sobre segurança e manutenção de redes

Dominar a manipulação de pacotes e o mapeamento de portas com o iptables amplia drasticamente o controle sobre ambientes de infraestrutura Linux. Embora ferramentas mais modernas baseadas em nftables ou gerenciadores simplificados existam, compreender a lógica por trás das tabelas nat e filter continua sendo um diferencial técnico indispensável para diagnosticar problemas complexos de conectividade. Planeje sempre suas regras com cuidado, valide o comportamento do tráfego e mantenha cópias de segurança das suas configurações de rede para garantir estabilidade operacional contínua.