7.4. Regras FORWARD e NAT

A maioria das empresas designam um número limitado de endereços IP publicamente roteáveis de seus ISPs. Devido essa permissão limitada, os administradores devem encontrar maneiras criativas de compartilhar o acesso aos serviços de Internet sem dar poucos endereços IP para cada nódulo da LAN. Usar um endereço IP privado é a maneira comum de permitir que todos os nódulos de uma LAN acessem apropriadamente serviços de rede internamente e externamente. Roteadores de borda (como firewalls) podem receber transmissões de entrada da Internet e rotear os pacotes para o nódulo pretendido na LAN. Ao mesmo tempo, firewall/portasde comunicação (gateways) também podem rotear pedidos de saída de um nódulo da LAN para o serviço remoto da Internet. Esse encaminhamento de tráfego de rede pode se tornar perigoso às vezes, especialmente com a disponibilidade de ferramentas de cracking modernas que podem espionar endereços IP internos e fazer com que a máquina remota do atacante atue como um nódulo em sua LAN. Para evitar isso, o iptables oferece normas de roteamento e encaminhamento que podem ser implementadas para evitar o uso indevido dos recursos de rede.

A norma FORWARD permite a um administrador controlar onde os pacotes podem ser roteados em uma LAN. Por exemplo: para permitir o encaminhamento da LAN inteira (assumindo que o firewall/porta de comunicação (gateway) tenha um endereço IP interno na eth 1), as seguintes regras podem ser definidas:

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT

NotaNota
 

Por default, a norma IPV4 nos kernels do Red Hat Enterprise Linux desabilita o suporte para encaminhamento do IP, o que evita que caixas rodando o Red Hat Enterprise Linux funcionem como roteadores de borda dedicados. Para habilitar o encaminhamento do IP, execute o seguinte comando:

sysctl -w net.ipv4.ip_forward=1

Se este comando for submetido em uma janela shell, a configuração não é lembrada após uma reinicialização da máquina. Você pode definir o encaminhamento permanentemente, editando o arquivo /etc/sysctl.conf. Encontre e edite a linha a seguir, substituindo 0 por 1:

net.ipv4.ip_forward = 0

Execute o seguinte comando para ativar a alteração do arquivo sysctl.conf:

sysctl -p /etc/sysctl.conf

isto permite que os nódulos da LAN se comuniquem entre si; mas não permite que se comuniquem externamente (por exemplo: com a Internet). Para permitir que nódulos da LAN com endereços IP privados se comuniquem com redes públicas externas, configure o firewall com o mascaramento do IP, que mascara pedidos de nódulos da LAN com endereços IP do dispositivo externo do firewall (neste caso, eth0):

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE