terça-feira, 23 de abril de 2013

Habilitar 'forward' entre interfaces no Ubuntu Server 12.04

Para criarmos um gateway utilizando um Linux Ubuntu Server 12.10, precisamos de dois adaptadores de rede. Após a configuração adequada dos dois adaptadores de rede, precisamos autorizar o Linux a repassar os pacotes entre as interfaces (forward).
Na pasta /proc/sys/net/ipv4/, encontramos o arquivo ip_forward. Este arquivo possui como conteúdo, uma flag indicando a autorização de forward. Por padrão, o conteúdo deste arquivo é um 0(zero), ou seja, este sistema não está autorizado a repassar datagramas entre as iterfaces. Para autorizar, altere o conteúdo do arquivo para 1(um). Utilize um editor de textos ou estando autenticado como root execute o comando abaixo:
# echo "1" > /proc/sys/net/ipv4/ip_forward

Após a autorização, podemos utilizar o iptables em modo nat para ensinar qual será a interface de saída deste gateway. Assim realizamos um 'masquerade' nesta interface com o camando abaixo:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Neste ponto, já está em funcionamento a atividade de repasse(forward) entre as interfaces. Mas, se reiniciarmos o sistema, estas configurações irão retornar ao padrão. Para manter as configurações permanentes, precisamos alterar alguns scripts executados na inicialização do sistema. Faremos isto realizando as seguintes ações:
 - Editar o arquivo /etc/sysctl.conf: sudo nano /etc/sysctl.conf
 - Encontrar e descomentar a linha com o conteudo: net.ipv4.ip_forward=1
 - Editar o arquivo /etc/rc.d/rc.local: sudo nano /etc/rc.d/rc.local
 - Colocar o comando: sudo iptables -t nat -a POSTROUTING -o eth0 -j MASQUERADE