Firewall iptables no Linux – Parte 06: Encaminhamento de Portas

Encaminhamento de Portas com o Firewall iptables no Linux

Em nossa sexta lição sobre o Firewall Iptables no Linux, vamos aprender a realizar Encaminhamento de Portas (Port Forwarding), o que permitirá o acesso a serviços em servidores da rede interna a partir da rede externa, atravessando nosso gateway Linux.

O que vamos precisar:

Máquinas:

  • 1 gateway com iptables configurado
  • 1 servidor interno (para o qual as portas serão redirecionadas)
  • 1 estação para testes, na mesma rede da interface WAN do gateway.

Essas máquinas podem ser virtualizadas caso você não tenha acesso a servidores físicos.

Vamos usar como exemplo para teste um servidor Web Apache rodando numa máquina da rede interna. Veja na figura a seguir o diagrama de nossa rede:

Encaminhamento de Portas com o Firewall iptables no Linux

Configurações:

  • Gateway Linux iptables: IP dinâmico na interface WAN; IP 192168.10.1 na interface LAN
  • Servidor Web Apache: IP 192.168.10.10

Procedimentos

Vamos aos procedimentos para realizar o encaminhamento de portas do nosso gateway Linux para o servidor Web, que usa a porta 80 (padrão):

1. Efetuar compartilhamento de Internet no gateway, conforme descrito no artigo Compartilhamento de Internet com iptables.

2. No servidor interno, configure a rede com IP estático (rede local), teste o acesso à Internet (por exemplo, com um ping 8.8.8.8) e então, atualize a lista de repositórios com:

# apt-get update

3. Ainda no servidor interno, instalar o serviço do apache (caso ainda não esteja instalado):

# apt-get install apache2

4. Altere a página padrão do servidor para facilitar nosso teste de encaminhamento de portas:

# vi /var/www/index.html

Escreva qualquer coisa no arquivo, como por exemplo “Bóson Treinamentos”

O servidor web HTTP está então configurado com o IP 192.168.10.10, com o serviço de Web acessível na porta 80

5. Agora, no gateway, vamos criar as regras a seguir para redirecionar as requisições ao servidor web que chegam no gateway para a porta 80 do servidor interno:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.10:80
# iptables -A FORWARD -p tcp -d 192.168.10.10 --dport 80 -j ACCEPT

Estas duas regras são simples. A primeira especifica que todas as conexões TCP que chegam a interface WAN do gateway com destino à porta 80 devem ser enviada à porta 80 da máquina interna (192.168.10.10). Porém, essa regra apenas não é suficiente para realizar o encaminhamento de portas como desejamos. Precisamos também criar uma regra na cadeia FORWARD para permitir o encaminhamento dos pacotes para a porta 80 da máquina 192.168.10.10.

Para verificar se a regra de NAT foi criada, execute o seguinte comando no terminal:

# iptables -t nat -L

6. Testando: Acesse o IP externo do gateway a partir de um navegador em uma máquina cliente qualquer, digitando em um navegador o endereço http://ip_wan_gateway, e verifique se a página web com a mensagem “Bóson Treinamentos” (ou qualquer outra criada no servidor Web) é carregada.

Obs.: Note que ip_wan_gateway é o endereço IP externo de seu gateway (endereço da interface de rede exposta à rede externa).

Para o acesso remoto via Internet talvez seja necessário configurar um serviço de DNS dinâmico em seu roteador de internet, caso sua rede não possua IP externo fixo. Veremos como fazer isso em um outro artigo.

7. Podemos verificar as conexões sendo encaminhadas executando no gateway o comando:

# cat /proc/net/nf_conntrack

Os módulos do kernel “nf_conntrack_*” habilitam o iptables a examinar o status das conexões armazenando em cache informações relacionadas a essas conexões. Ler o conteúdo do arquivo /proc/net/nf_conntrack nos permite examinar uma lista de todas as entradas atuais no banco de dados do conntrack.

É isso aí! Para encaminhar portas de outros serviços para servidores da rede local, repita os comandos acima tomando o cuidado de configurar as portas e protocolos corretos para casa serviço.

 

Sobre Fábio dos Reis (1325 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em Firewall iptables no Linux – Parte 06: Encaminhamento de Portas

Escreva um comentário

Seu e-mail não será divulgado


*