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:
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.
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.
olá, queria saber o que mudou e qual o comando que eu teria que usar para habilitar o roteamento de pacotes no Ubuntu 14.04, quando faço a ligação de mais de uma rede, não consigo pingar em uma maquina de outra rede.
ex.
rede 1 recebe pacote da rede 2 mas não recebe pacote da rede 3, ou vise versa