Compartilhando internet via rádio entre um servidor Linux e clientes Windows

Este artigo tem como finalidade apresentar uma configuração básica para compartilhamento de uma conexão pppoe, via rádio, com estações Windows, utilizando, para isso, roteamento de pacotes, SNAT (para mascaramento) e DHCP para facilitar a configuração nas estações clientes.

[ Hits: 24.575 ]

Por: Junior Assis Barreto Bernardes em 19/11/2009


Habilitando o roteamento de pacotes



Depois de estabelecer a conexão com a internet e certificar de que ela está funcionando corretamente devemos habilitar em nosso servidor o roteamento de pacotes, ou seja, devemos permitir que o servidor possa descobrir o caminho e entregar os pacotes que não sejam destinados a ele. Isso é fundamental para que as máquinas da rede interna consigam enviar pacotes para máquinas externas. Essa informação, sobre roteamento de pacotes está armazenada em um arquivo chamado ip_forward. Este arquivo fica com o número 1 armazenado se o roteamento estiver habilitado ou 0 caso contrário.

A modificação deste arquivo para permitir o roteamento pode ser feita de duas maneiras: utilizando o comando sysctl:

# sysctl -w net.ipv4.ip_forward=1

ou através do comando echo:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Fazendo mascaramento de pacotes com SNAT

Para que as estações clientes possam navegar na internet, o servidor tem que, além de rotear os pacotes das mesmas para as máquinas externas (internet), converter o endereço das estações internas, que possuem os respectivos endereços ip referentes à rede interna para um endereço real de internet, para que as máquinas externas também consigam se comunicar com as estações da rede interna.

Esta técnica é conhecida como NAT (Network Address Translation) e, em Linux, isso pode ser feito utilizando iptables, que é uma ferramenta utilizada para fazer filtragem de pacotes e já está presente no kernel do Linux.

Na verdade existem dois tipos de NAT: o SNAT (Source Network Address Translation), em que o endereço de origem do pacote é alterado depois do roteamento, e o DNAT (Destination Network Address Translation), em que altera-se o endereço de destino antes do roteamento. Porém, no nosso caso, basta o SNAT: queremos apenas que todos os pacotes vindos da rede interna pareçam que têm como origem o nosso servidor com uma conexão PPP.

Quando executamos o comando pppoeconf foram criadas uma ou mais interfaces de conexão pppoe com a internet. Podemos ver esse fato executando:

ifconfig

As interfaces de interesse, neste caso, são as do tipo pppX.

Antes de mascarar os pacotes oriundos da rede interna, trocando os endereços de origem, precisamos descobrir qual é a interface que de fato é responsável pela conexão com a internet.

Para isso utilizaremos a ferramenta Wireshark, que serve como analisadora de tráfego de rede, mostrando os pacotes que estão sendo enviados e recebidos por cada interface, sendo ela real (placas de rede) ou virtual.

Para instalar o Wireshark no Ubuntu (ou qualquer distribuição Debian-based), basta digitar no terminal:

# apt-get install wireshark

Depois de instalar o Wireshark, inicie-o como root.

Vá em "Capture", na barra de menus, e selecione "Interfaces".

Aparecerá uma tela com as interfaces presentes no sistema e o número de pacotes que está passando por cada uma delas.

Para descobrir qual interface ppp será utilizada no mascaramento, basta iniciar o navegador, com o wireshark ativo, navegar em algum site e, simultaneamente, verificar por qual interface ppp estão passando os pacotes.

Após descobrir por qual interface ppp está se comunicando com a internet, podemos fazer o mascaramento da seguinte forma:

# iptables -t nat -A POSTROUTING -o pppX -j MASQUERADE

Onde X é o número da interface que foi descoberta no Wireshark.

O comando acima indica que será adicionada uma regra na chain POSTROUTING da tabela nat. Tal regra indica que os pacotes saindo de pppX terão o endereço automaticamente escolhidos devido ao parâmetro MASQUERADE. Isso é necessário uma vez que o IP normalmente não é fixo em conexões pppoe.

Em caso de dúvidas no entendimento do comando acima, recomenda-se a leitura de artigos relacionados à ferramenta iptables.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Habilitando o roteamento de pacotes
   3. Configurando o servidor DHCP
Outros artigos deste autor

Sistemas e volumes criptografados e escondidos utilizando o TrueCrypt

Leitura recomendada

Como montar um proxy reverse no servidor Apache

SSH: Autenticando através de chaves

Google Chrome no Linux Mint

PHP 6.0 - Você está pronto?

Network Mapper - Nmap

  
Comentários
[1] Comentário enviado por cleysinhonv em 19/11/2009 - 13:41h

Parabéns,

Bem explicado, detalhado, assim que gosto, você poderia ter explicado o significado de PPP e pppoe.

Esse vai para a lista.

[2] Comentário enviado por grandmaster em 23/11/2009 - 00:15h

gostei do artigo.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[3] Comentário enviado por leo1973 em 23/04/2010 - 11:26h

queria saber se este tuto e pra ocmpartilhar interent via radio tipo assim tem um micro linux com uma placa de rede sem fio e uma de rede e do outro lado tem uns clientes com placa sem fio tb. tipo aquelas antenas de grade direcvional de 24 dbi e se posso fazer em predios com este script. obrigado.


Contribuir com comentário