Este tutorial mostra como configurar um network-address-translation (NAT) em um sistema
Linux com regras iptables onde o sistema pode ativar o gateway e fornecer acesso à internet para vários usuários em uma rede local utilizando apenas um endereço de IP público. Isso é feito reescrevendo a fonte e/ou endereço de destino dos pacotes que passam pelo NAT.
Para tal configuração é preciso ter duas interfaces de rede:
- WAN = eth0 com IP público xx.xx.xx.xx
- LAN = eth1 com IP privado yy.yy.yy.yy/ 255.255.0.0
1. Configure eth0 para a internet com o IP público:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=xx.xx.xx.255 #entrada opcional
HWADDR=00:50:BA:88:72:D4 #entrada opcional
IPADDR=xx.xx.xx.xx
NETMASK=255.255.255.0 #fornecido por ISP
NETWORK=xx.xx.xx.0 #opcional
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=xx.xx.xx.1 #fornecido por ISP
2. Configure eth1 para a LAN com o IP privado:
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=none
PEERDNS=yes
HWADDR=00:50:8B:CF:9C:05 #opcional
TYPE=Ethernet
IPV6INIT=no
DEVICE=eth1
NETMASK=255.255.0.0
BROADCAST=""
IPADDR=192.168.2.1 #gateway da LAN
NETWORK=192.168.0.0 #opcional
USERCTL=no
ONBOOT=yes
3. Configuração do host:
# cat /etc/hosts
127.0.0.1 nat localhost.localdomain localhost
4. Configuração do gateway:
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=nat
GATEWAY=xx.xx.xx.1 #gateway fornecido por ISP
5. Configuração DNS:
# cat /etc/resolv.conf
nameserver 203.145.184.13 #DNS primário fornecido por ISP
nameserver 202.56.250.5 #DNS secundário fornecido por ISP
6. Configuração do NAT com iptables
6.1. Retirar configurações não default:
# iptables --flush (retira todas as regras no filtro de pacotes)
# iptables --table nat --flush (retira a tabela NAT)
# iptables --delete-chain
# iptables --table nat --delete-chain (deleta todas as chains que não estão no filtro default)
6.2. Ajustar o IP FORWARDing e Masquerading:
# iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
# iptables --append FORWARD --in-interface eth1 -j ACCEPT
6.3. Permitir a transmissão de pacote pelo kernel:
# echo 1 > /proc/sys/net/ipv4/ip_forward
6.4. Aplicar a configuração:
# service iptables restart
7. Teste:
# ping 192.168.2.1 (ping o gateway a partir de um cliente da rede)
# ping www.vivaolinux.com.br (tente isso em um sistema cliente)
Considerações finais da configuração
Todos os clientes da rede privada deverão ajustar seu gateway para ser o endereço IP local da LAN que passa pelo computador onde foi configurado o NAT. O DNS deve ser ajustado de acordo com o ISP da internet.