Compartilhar Internet
From LinuxWiki
Conteúdo |
Interfaces de rede
Este tutorial supõe as seguintes interfaces configuradas
eth0: Link Internet, com IP público eth1: Rede interna, com ip 192.168.0.1
Caso utilize outra interface ligada a internet (wlan0, ppp0, etc) ou rede interna, modifique as regras de acordo.
Script para compartilhamento com o iptables
#!/bin/sh # Limpar todas as regras do iptables /sbin/iptables -F /sbin/iptables -t nat -F # Mascarar (NAT) tráfego que vem de eth1 e sai por eth0 /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE # Permitir ip_forward no kernel echo 1 > /proc/sys/net/ipv4/ip_forward
# Para acesso ftp dos micros internos, habilitar o módulo nat_ftp /sbin/modprobe ip_nat_ftp
Aonde colocar o script ?
- Este script deve ser executado como usuário root
Os scripts de inicialização variam conforme a distribuição, e devem ser inicializados depois que as interfaces de rede estejam configuradas. A seguir, algumas sugestões de onde colocar este script:
- Centos, RHEL (e provavelmente outros derivados de Red Hat): Adicionar as instruções ou chamar o script do iptables em /etc/rc.local
- Ubuntu: Criar o script em /etc/network/if-up.d/ (por exemplo /etc/network/if-up.d/firewall) e dar permissões de execução a ele (chmod +x /etc/network/if-up.d/firewall)
Configuração do micro cliente
Os micros clientes devem ser configurados com qualquer da classe 192.168.0.0/24 (192.168.0.2, 192.168.0.30, ..., 192.168.0.254) , excluindo o 192.168.0.1, que foi reservado para o servidor. As configurações de Gateway Padrão, Netmask e DNS são as seguintes
IP: 192.168.0.x Netmask: 255.255.255.0 Gateway: 192.168.0.1 DNS: Use o do seu provedor, por exemplo 200.176.2.10 para utilizar o DNS do Terra
Testando a configuração
Após executar o script do iptables no servidor e configurar o micro cliente com um ip da classe escolhida para a interface interna, ele deve navegar normalmente em qualquer site, caso ocorra algum problema o seguinte procedimento deve ser seguido (no micro cliente). Para cancelar o comando ping, basta apertar CTRL-C no teclado.
- ping 192.168.0.1
Isto vai testar a conexão do micro cliente ao servidor de compartilhamento, e deve retornar uma saída do tipo
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.065 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.051 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.054 ms
Caso isto não ocorra, verifique a configuração da interface eth1 no servidor, e a configuração de rede no cliente. Lembre-se que você não pode utilizar o mesmo ip em mais de um micro da mesma rede. Se funcionou, siga para o próximo passo.
- ping www.uol.com.br
Isto vai testar o roteamento no micro servidor, enviando um ping ao servidor da UOL (o teste pode ser feito com qualquer endereço válido da Internet). A saída deve ser similar ao ítem anterior:
PING www.uol.com.br (200.221.2.45) 56(84) bytes of data. 64 bytes from home.uol.com.br (200.221.2.45): icmp_seq=1 ttl=57 time=33.6 ms 64 bytes from home.uol.com.br (200.221.2.45): icmp_seq=2 ttl=57 time=36.7 ms 64 bytes from home.uol.com.br (200.221.2.45): icmp_seq=3 ttl=57 time=36.7 ms
Se a saída apresentar um erro do tipo
ping: unknown host www.uol.com.br
Você deve verificar a configuração do DNS do cliente (ele está apresentando problemas para resolver o nome). Para testar o roteamento, excluindo a configuração DNS, execute o ping diretamente a um ip válido da internet, como por exemplo ping 200.221.2.45.
Quando tudo der errado
Caso o cliente consiga acessar o servidor sem problemas (no primeiro passo, ping 192.168.0.1) mas não os sites da internet (e não é um problema de DNS, como no segundo passo), verifique as configurações de roteamento no servidor. A saída da execução dos seguintes comandos deve ser similar (adapte às suas interfaces de rede e rede interna)
iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
iptables -t nat -L
Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.0.0/24 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination
cat /proc/sys/net/ipv4/ip_forward
1
