Autor: Gustavo Sverzut Barbieri < gustavo[em]linuxdicas.com.br>
Baseado em: HOWTO: One NIC NAT, postado em 3 de Outubro de 2003 por Lon Jones, http://www.linuxjournal.com/article.php?sid=7175
Este texto é praticamente uma tradução do documento postado no Linux Journal, em 3 de Outubro de 2003 por Lon Jones, mas sem embromação.
Se você quer economizar uma placa de rede, seja por dinheiro, espaço (PCI/ISA) ou qualquer outro motivo, anime-se, pois é muito fácil compartilhar internet usando somente uma placa de rede!
Esta técnica foi testada com um HUB, não sei se funciona com switcher, provavelmente sim.
Caso seu HUB tenha uma porta "uplink", conecte um cabo (par trançado convencional) entre o modem e esta porta.
Caso seu HUB não tenha tal porta, ligue o cabo invertido ao HUB.
Ligue todos os outros computadores ao HUB normalmente.
Configure a máquina Linux para iniciar a conexão DSL normalmente (consulte como sua distribuição de linux faz isso, senão procure no Google e sites especializados para saber como).
Depois execute este script como usuário root (fazendo as alterações necessárias):
#!/bin/sh # Iniciar apelido da placa de rede eth0 com IP Interno ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up # Adicione uma regra "Masquerade" ao iptables, para que assim # compartilhe a conexão (fazendo a transcrição dos cabeçalhos TCP/IP) iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE # Habilite repassar pacotes IP: echo 1 > /proc/sys/net/ipv4/ip_forward # Libere no seu firewall conexões da rede interna, # Caso possua alguma regra de firewall que impossibilite iptables -I INPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
Coloque este script em algum lugar que inicie após sua conexão DSL ter iniciado, pode ser no /etc/rc.d/rc.local ou outro lugar que você saiba que inicie depois. Você pode até colocar isso em /etc/init.d/ e colocar para iniciar depois de iniciar a rede. Isso fica por sua conta!
Com isso é só dar um IP para as outras máquinas entre 192.168.0.2 e 192.168.0.254, configurar o gateway delas para ser 192.168.0.1 e o DNS como o do provedor (você pode rodar o named (bind) na sua máquina linux se quiser... isso aumenta a performance).
Pronto, tudo deve funcionar como esperado!