Entender as configurações de “roteamento de portas” no Ubuntu usando IPTables pode ser uma tarefa desafiadora para aqueles que estão começando a explorar o mundo da administração de sistemas Linux. Vamos abordar esse assunto com detalhes para proporcionar uma compreensão abrangente.
O roteamento de portas, ou port forwarding em inglês, é uma técnica utilizada para redirecionar o tráfego de rede recebido em uma determinada porta de entrada para outro destino. Isso é comumente usado em situações onde um servidor precisa ser acessado de fora da rede local, como em servidores web, servidores de jogos, ou acesso remoto a uma máquina.
O IPTables é uma ferramenta poderosa de firewall utilizada em sistemas Linux para configurar regras de filtragem de pacotes de rede. Ele permite definir políticas de segurança, redirecionar pacotes, traduzir endereços de rede (NAT) e outras funções relacionadas à segurança e roteamento de rede.
Para entender as configurações de roteamento de portas utilizando o IPTables, é importante compreender alguns conceitos fundamentais:
-
Tabelas do IPTables: O IPTables possui quatro tabelas principais:
filter,nat,mangleeraw. Para configurações de roteamento de portas, nos concentraremos principalmente na tabelanat(Network Address Translation), que é responsável por realizar a tradução de endereços IP e portas. -
Chains (cadeias): As tabelas do IPTables são compostas por cadeias, que são sequências de regras que são aplicadas a pacotes de rede. As cadeias mais relevantes para o roteamento de portas são
PREROUTING,POSTROUTINGeOUTPUTna tabelanat. -
Target (alvo): As regras do IPTables têm um alvo (target) associado, que define o que fazer com os pacotes que correspondem a essa regra. Para o roteamento de portas, o alvo mais comum é o
DNAT(Destination NAT), que é usado para redirecionar o tráfego para um endereço e porta específicos.
A configuração de roteamento de portas usando o IPTables geralmente segue um conjunto de passos:
-
Ativar o IP Forwarding: Antes de redirecionar portas, é necessário garantir que o encaminhamento de IP esteja ativado no sistema. Isso pode ser feito editando o arquivo
/etc/sysctl.confe definindonet.ipv4.ip_forward = 1. Depois, recarregue as configurações do sysctl com o comandosudo sysctl -p. -
Adicionar uma regra de redirecionamento de porta: Para redirecionar uma porta específica para outra máquina na rede, você pode adicionar uma regra de redirecionamento de porta usando o IPTables. Por exemplo, para redirecionar todas as solicitações recebidas na porta 80 para o endereço IP 192.168.1.100 na porta 8080, você pode usar o seguinte comando:
bashsudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
-
Salvar as configurações: Para garantir que as configurações de IPTables persistam através de reinicializações do sistema, é necessário salvar as regras. Isso pode ser feito dependendo da distribuição Linux. No Ubuntu, você pode usar o comando
sudo iptables-save > /etc/iptables/rules.v4. -
Testar o redirecionamento de porta: Após configurar as regras de redirecionamento de porta, é importante testá-las para garantir que estejam funcionando conforme o esperado. Você pode fazer isso tentando acessar o serviço na porta redirecionada de fora da rede local.
É importante ter cuidado ao configurar as regras de IPTables, pois regras incorretas podem resultar em bloqueios de rede ou em problemas de segurança. Sempre faça backup das configurações existentes antes de fazer alterações e teste cuidadosamente as novas configurações antes de aplicá-las em um ambiente de produção. Além disso, considere o uso de ferramentas de gerenciamento de firewall mais avançadas, como o UFW (Uncomplicated Firewall) ou o Firewalld, que oferecem interfaces mais amigáveis para gerenciar as regras de firewall e o roteamento de portas.
“Mais Informações”

Claro, vamos explorar mais detalhes sobre as configurações de roteamento de portas usando IPTables no Ubuntu.
Tabelas do IPTables:
-
Tabela
filter: Esta tabela é responsável pela filtragem de pacotes de rede. Ela é comumente usada para definir regras de firewall para permitir, bloquear ou encaminhar pacotes com base em critérios como endereço IP de origem, destino, porta e protocolo. -
Tabela
nat: Como mencionado anteriormente, esta tabela é usada para realizar tradução de endereços de rede (NAT), incluindo roteamento de portas. É aqui que você adiciona regras para redirecionar o tráfego de rede de uma porta para outra ou de um endereço IP para outro. -
Tabela
mangle: Esta tabela é utilizada para alterar campos de pacotes de rede, como o TTL (Time To Live) ou o TOS (Type of Service). É menos comum no contexto de roteamento de portas, mas é importante mencioná-la para uma compreensão completa das funcionalidades do IPTables. -
Tabela
raw: Esta tabela é usada principalmente para especificar regras que devem ser aplicadas antes de qualquer processamento de rastreamento de conexão. É útil para configurações que exigem um processamento mais bruto de pacotes antes que outras tabelas do IPTables sejam aplicadas.
Cadeias do IPTables:
-
Cadeia
PREROUTING: Esta cadeia é processada antes que o roteamento ocorra. É aqui que você geralmente adiciona regras de redirecionamento de portas para direcionar o tráfego recebido para o destino desejado antes que o sistema determine para onde encaminhar os pacotes. -
Cadeia
POSTROUTING: Esta cadeia é processada após o roteamento. É comumente usada para realizar ações em pacotes que estão deixando o sistema, como a tradução de endereços de origem (SNAT) ou outras manipulações de pacotes antes de serem enviados. -
Cadeia
OUTPUT: Esta cadeia é aplicada ao tráfego gerado localmente pelo sistema. Embora menos relevante para o roteamento de portas, pode ser útil em situações específicas onde é necessário redirecionar tráfego localmente gerado.
Alvos do IPTables:
-
Alvo
DNAT: Este é o alvo mais comumente usado para o roteamento de portas na tabelanat. Ele é usado para alterar o endereço de destino dos pacotes de rede, redirecionando-os para um endereço IP e porta diferentes. -
Alvo
SNAT: Este alvo é usado para alterar o endereço de origem dos pacotes de rede, geralmente usado em conjunto com o roteamento de portas para garantir que as respostas dos servidores remotos sejam roteadas corretamente de volta para o cliente.
Gerenciamento de configurações IPTables:
Além dos comandos iptables para adicionar, remover e listar regras de firewall, existem ferramentas auxiliares para facilitar o gerenciamento de configurações do IPTables:
-
iptables-saveeiptables-restore: Esses comandos são usados para salvar e restaurar as configurações do IPTables. Eles são úteis para persistir as configurações de firewall entre reinicializações do sistema. -
Ferramentas de alto nível: O Ubuntu oferece ferramentas de alto nível como o UFW (Uncomplicated Firewall) que fornecem uma interface simplificada para configurar regras de firewall e roteamento de portas, o que pode ser mais conveniente para usuários menos familiarizados com a sintaxe do IPTables.
Considerações de Segurança:
Ao configurar regras de roteamento de portas usando o IPTables, é importante considerar as implicações de segurança. Abrir portas para o tráfego externo pode expor seu sistema a ataques, portanto, certifique-se de restringir o acesso apenas ao necessário e de implementar outras medidas de segurança, como autenticação e criptografia, sempre que possível.
Em resumo, as configurações de roteamento de portas usando IPTables no Ubuntu envolvem adicionar regras específicas na tabela nat para redirecionar o tráfego de entrada para o destino desejado. Compreender os conceitos de tabelas, cadeias, alvos e ferramentas de gerenciamento do IPTables é essencial para configurar com sucesso o redirecionamento de portas e manter a segurança do sistema.

