Após um tempo utilizando o serviço 3G da BrasilTelecom precisei compartilhar a conexão à internet do meu computador. Na verdade é incrivelmente fácil, pois em síntese é só configurar o modem via wvdial, fixar o IP da máquina para o servidor DHCP, e ativar o iptables.
Para configurar o wvdial existem vários artigos que ensinam a editar o arquivo wvdial.conf ou mesmo a usar frontends como o gnome-ppp para conexões via bluetooth ou USB. É só procurar os dados certos para a sua operadora.
Aqui consideraremos:
Sistema Operacional Debian Linux.
Endereço de Rede “192.168.1.0″.
Interface do cabo de rede eth1.
Interface do modem 3g ppp0.
Usuário root para todos os comandos e configurações.
É necessário fixar o IP da sua máquina para que o servidor DHCP encontre um canal de conexão externa. Edite o arquivo /etc/network/interfaces:
iface eth1 inet static
address 192.168.1.1
broadcast 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
Configure o servidor DHCP pelo arquivo /etc/dhcp3/dhcpd.conf:
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name “localhost”;
option domain-name-servers 201.10.120.2,201.10.128.2; # (1)
option time-offset -10800;
option ip-forwarding on; # (2)
range dynamic-bootp 192.168.1.100 192.168.1.110;
default-lease-time 21600;
max-lease-time 43200;
}
Observações desta configuração:
1. Coloque o DNS fornecido pelo seu provedor, o exemplo tem o da BrasilTelecom;
2. Informação necessária para que o servidor DHCP repasse IPs para seus clientes;
Todas as outras variáveis dos arquivos acima podem ser modificadas de acordo com a sua rede, desde que as duas opções acima sejam usadas coerentemente.
Ative a interface e rode o servidor DHCP:
ifdown eth1; ifup eth1
/etc/init.d/dhcpd restart
Depois disso aplique a regra de redirecionamento no kernel e no iptables:
sysctl -w net.ipv4.ip_forward=1
iptables –append FORWARD –in-interface ppp0 -j ACCEPT
iptables –table nat –append POSTROUTING –out-interface eth1 -j MASQUERADE
Pronto, agora é só ligar o cabo de eth1 em outro computador ou em um router para ter a conexão compartilhada. Se quiser fazer um servidor só para este fim crie um pequeno script com as duas últimas seções de código acima e coloque para ser executado no arquivo /etc/rc.local para não ter de refazer estes passos toda vez.