• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Roteamento de pacotes e NAT no Linux

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Resolvi escrever essa dica depois de ver muitos posts de usuários com dúvidas em como fazer o compartilhamento de internet no Linux.

O compartilhamento da internet no Linux é feito através do Netfilter/Iptables, que é o firewall nativo das distribuições a partir do kernel 2.4.

Primeiro devemos estar com a placa de rede configurada e com a conexão com a internet funcionando. Para ver como configurar a placa de rede você pode dar uma olhada na minha dica:
Configurando rede no Debian

Partindo do pressuposto que a internet está funcionando, a seguir será descrito os comandos que farão o roteamento e NAT da conexão.

Roteamento de pacotes:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Esse comando escreve o número 1 dentro do arquivo ip_forward, ativando o roteamento de pacote. O padrão é 0. Com isso o Linux passa a rotear os pacotes de uma interface para a outra e vice-versa.

NAT:

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

Esse comando permite que todos os micros da rede possam sair para a internet com apenas um IP público. O "-o eth0" é a interface que está conectada com a internet, se fosse uma conexão Velox seria "-o ppp0".

Pronto... Para compartilhar a internet no Linux é necessário somente esses dois comandos, um ativa o roteamento de pacote, o outro faz o nat. Agora vamos criar um script e colocar para iniciar durante o boot.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Criando script, dentro do /usr/local/bin:

# vim /usr/local/bin/firewall


#!/bin/bash

echo "Ativando compartilhamento "

# Ativando Roteamento de pacote
echo 1 > /proc/sys/net/ipv4/ip_forward

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

echo " Compartilhamento ativado"
Salve e saia do arquivo. Dê permissão de execução no script com o comando:

# chmod +x /usr/local/bin/firewall

Agora vamos colocar esse script para ser iniciado durante o boot. Edite o arquivo /etc/rc.local:

# vim /etc/rc.local

E adicione a seguinte linha em seu final:
/usr/local/bin/firewall


Salve e saia do arquivo.

Pronto... Internet será roteada toda vez que o micro for reinicializado!

Obs.: Existem outras formas de colocar um script para ser inicializado durante o boot, esta é a forma mais simples, em outra dica demonstrarei uma forma mais profissional de colocar um script para ser inicializado.
 
Topo