Compartilhando a Internet - transfome o Linux em um roteador

Publicado por Rômulo de Barros Correia Jales em 12/12/2005

[ Hits: 22.745 ]

 


Compartilhando a Internet - transfome o Linux em um roteador



Olá a todos,

Para o bom uso dessa dica, espero que você saiba determinar o IP, DNS, gateway e sub-net mask na sua placa de rede. O objetivo é apenas compartilhar com sucesso a Internet, por isso não explicarei o que cada comando faz. Fica para a próxima.

Característica da rede

  • Um ponto de internet (IP-fixo na eth0);
  • Um servidor Linux Kernel 2.6.x ( Fedora Core 4)

Clientes:
  • Três PCs - dois Windows Xp, um Windows Xp e um Fedora Core 2;
  • Um laptop - Windows XP.

OBS: Para mostrar que funciona em qualquer distribuição, testei como servidor alguns live-CDs, como Kurumin, Mandrake e SuSE, em um computador de terceiro realizei com sucesso num Slackware 10.1 com kernel 2.6.11 e todas as supracitadas distros funcionaram como cliente.

Por fim:
  • Um hub/switch - apenas para servir de entreposto na estrutura da rede.

Configuração


No servidor:

A placa onde está plugado o cabo da internet você não mexe e na placa onde vai o cabo para a rede interna - conexão com o hub/switch (dois ou mais PCs) ou se é uma rede ponto-a-ponto (dois PCs) - fiz da seguinte forma:
ip      192.168.0.1
subnet  255.255.255.0

Nos PCs clientes:
ip       192.168.0.X
subnet   255.255.255.0
Gateway  192.168.0.1

O "X" fica ao seu critério desde que não seja 0 ou maior do que 199. Enquanto que o gateway é o IP da placa do servidor conectada a rede.

DNS, essa parte é critica, você precisa descobrir qual o DNS do seu provedor de internet, geralmente ele está informado na placa conectada a internet. Para saber basta abrir o arquivo /etc/resolv.conf. O primeiro conjunto de números que você ver no resolv.conf você joga no DNS primário e assim sucessivamente.

Feito isso basta digitar os seguintes comando no shell do servidor Linux como root:

# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -j MASQUERADE
# sysctl -w net.ipv4.ip_forward=1

Está pronto seu compartilhamento!

Observe que na penúltima linha "iptables -t nat -A POSTROUTING -j MASQUERADE" você não tem qualquer alusão a um tipo de conexão, seja ela ppp0 ou eth0, dessa forma a configuração fica o mais possível e genérica. Testei no laptop desse jeito na casa de um vizinho que usa Velox, que é a internet banda larga da Telemar via ADSL e funcionou do mesmo jeito já no caso de discada não testei. Não tinha um modenzinho sequer.... :(

Esse conjunto de comandos que você digitou no servidor você terá que digitar toda vez que o servidor for reiniciado. Eu tentei jogar isso em um script de boot mas não consegui sucesso.

Outras dicas deste autor

Driver BROADCOM WIFI 43XX

Shell, algumas dicas para iniciantes

Leitura recomendada

GNOME 3 - Alterando a função do fechamento de tampa de notebooks

Servidor DHCP automático com limitação por MAC no Debian 2.6

Configurando dispositivo wireless Atheros 5006EG no Ubuntu Gutsy

Criptografando senha do GRUB

Como instalar a distro BunsenLabs (sucessora do CrunchBang)

  

Comentários
[1] Comentário enviado por jochan em 12/12/2005 - 11:57h

Muito bom, realmente parabens, para quem esta começando a trabalhar com Linux como eu, este artigo é dos que vai ficar guardado no meu HDpara sempre =)

Valew.w.w

[2] Comentário enviado por hsantos em 13/12/2005 - 09:27h

Excelente este artigo. Com relacao a ter que digitar os comandos toda vez que o sistema for reiniciado, pq voce nao tem salvar os comandos em um script e fazer a chamada para o mesmo no arquivo /etc/rc.local .

Ou ainda digite os comando no /etc/rc.local, que ao reiniciar o sistema ela ja carrega .

Ate a proxima .

[3] Comentário enviado por PCMasterPB em 25/12/2005 - 01:08h

Cara, no Suse 9.3 basta vc criar um shell script com esses comandos e torná-lo executável em /usr/local/sbin. Ex.:

--- Arquivo Regras ---
#!/bin/bash
IPTABLES=/usr/sbin/iptables
SYSCTL=/sbin/sysctl

echo -e "\n\n Executando Regras.\n"

IPTABLES -F
IPTABLES -F INPUT
IPTABLES -F OUTPUT
IPTABLES -F POSTROUTING -t nat
IPTABLES -F PREROUTING -t nat
IPTABLES -P FORWARD ACCEPT
IPTABLES -t nat -A POSTROUTING -j MASQUERADE
SYSCTL -w net.ipv4.ip_forward=1

echo -e "\n\n Regras Executadas.\n"

--- Fim do arquivo Regras ---

# chmod +x /usr/local/sbin/Regras

Depois é só editar o arquivo /etc/rc.d/boot.local e acrescentar o comando /usr/sbin/Regras. Pronto, ao reiniciar ele vai executar o script automaticamente, sem precisar ficar digitando tudo de novo.

;D

[4] Comentário enviado por W@P em 10/04/2006 - 09:32h

Eu fiz uma copia dos comandos no firewall e funcionou perfeitamente bem, não sendo necessario digitar novamente.

Valeu. Para iniciantes como eu o VOL e vcs são um achado, histórico.

W@P

[5] Comentário enviado por fredwind em 01/05/2006 - 16:16h

Muito joia esse artigo. Mas to tendo um problema aqui. É com relação a seguinte parte do artigo:

Nos PCs clientes:
ip 192.168.0.X
subnet 255.255.255.0
Gateway 192.168.0.1
Tenho instalado numa das estações da minha rede local, uma máquina com o slackware 9.0, mas ainda não consegui fazer com que ela se conecte a net, que é compartilhada aqui. Sempre que entro com esses parâmetros no netconfig algo sai errado e a máquina não conecta a net.


[6] Comentário enviado por romulojales em 01/05/2006 - 17:55h

Vejamos,

Em alguns casos, dependendo da topologia de conexão a internet é necessário por no computador cliente o DNS da conexão com a internet.
Assim:

A placa eth0 do computador que se conecta a internet tem o DNS ele pode mudar, em geral é fixo já que é o endereço do servidor mas é sempre bom ficar olhando os números contidos. Você copia os números e replica no computador cliente. Vejamos:

PC Servidor -> Vá na placa que se conecta e leia o DNS em geral são dois DNS 1 e DNS 2
PC Cliente -> Acrescente ao DNS esses numeros conservando a ordem e pronto isso deve resolver.

Pode ser o firewall se for liere o tráfico na placa.

Dúvida, pode postar.

[7] Comentário enviado por gvcom em 06/01/2007 - 19:55h

Boa noite pessoal,

Estou tendo o mesmo problema, iniciando com Debian. Só conecta se não permitir limite de MTU no pppoeconf e se reinciar o servidor, conecta, até o antivírus atualiza nos clientes, mas ninguem navega.
Só que não tenho nenhuma lan sobrando.
Alguem sabe o que acontece?

Reinaldo

[8] Comentário enviado por linus black em 29/10/2013 - 03:35h

cara bom tuto.
mas eu fasso aqui o seguinte deixo o rotiador linux eth0 dhcp e depois eth1 ip-fixo e o firewall iptables
http://www.vivaolinux.com.br/topico/Debian/Compartilhar-Internet-no-Debian-6-1



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts