Este documento explica como configurar o compartilhamento de internet entre um servidor Linux e estações Windows via rádio. Ele descreve como configurar a conexão wireless no servidor Linux, estabelecer a conexão com a internet, configurar o roteamento e mascaramento de pacotes usando iptables para permitir que os clientes acessem a internet, e opções para configurar um servidor DHCP para atribuir IPs de forma automática aos clientes.
1. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
Compartilhando internet via rádio entre um servidor Linux e
clientes Windows
Autor: Junior Assis Barreto Bernardes <junior.assis at gmail.com>
Data: 19/11/2009
Introdução
O compartilhamento de internet entre um servidor Linux e estações Windows
não é uma coisa trivial, principalmente quando se trata de conexões pppoe.
Uma das complicações é que conexões pppoe domésticas normalmente possuem
IP dinâmico. Assim o mascaramento de pacotes vindos da rede interna para a
internet deve ser feito através de interfaces de conexão, e não por endereços
IP.
Durante o texto alguns dos conceitos supracitados serão explicados mais
detalhadamente para facilitar a compreensão do leitor, especialmente daqueles
iniciantes.
Gostaria de salientar que a distribuição utilizada para o desenvolvimento desse
artigo foi Ubuntu 8.10 (codenamed Hardy Heron).
Preparando o servidor
Primeiramente, deve-se estabelecer a conexão com a internet. No caso de
conexões via rádio (wireless) isso é feito com o comando pppoeconf. Porém,
antes de iniciar a conexão, certifique-se de que sua placa wireless está
reconhecida e funcionando, utilizando o comando:
$ iwconfig
Caso apareça uma interface com o nome de wlanX, onde X é um número inteiro
e positivo, então estamos prontos para continuar. Caso não apareça nenhuma
interface com este nome, procure ajuda em como instalar o modelo da sua placa
wireless no Linux, especialmente na distribuição que você está utilizando.
1 de 6 06-12-2009 12:52
2. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
Posteriormente devemos configurar a interface wireless com o nome (ESSID) da
rede sem fio que será utilizada para navegar na internet. Para isso, execute:
# iwconfig wlanX ESSID "nome da rede"
Onde X é o número que apareceu anteriormente quando executamos o comando
iwconfig.
Feito isso estamos aptos para estabelecer a conexão com a internet. Para isso
rode o comando:
# pppoeconf
Durante o processo serão requisitados alguns dados, como nome de usuário e
senha e serão feitas algumas perguntas. Quanto as perguntas, se você ficar em
dúvida, o próprio texto indicará a opção mais recomendada.
Após a configuração da conexão da internet devemos configurar a placa de
rede que será utilizada para compartilhar a conexão. Para descobrir as placas
que estão reconhecidas e em pleno funcionamento, execute:
$ ifconfig
As interfaces de interesses são as do tipo ethX, onde X é um número inteiro e
positivo. Caso nenhuma interface com este nome apareça, execute:
$ ifconfig -a
para mostrar todas as interfaces existentes, levantadas ou não.
Se alguma interface de interesse aparecer, faça:
# ifconfig ethX up
para levantar e colocar a interface em funcionamento.
Com a interface de rede ethernet pronta, basta adicionar um ip para ela do
seguinte modo:
# ifconfig ethX 192.168.0.1 netmask 255.255.255.0
Com X sendo o número da interface que está funcionando. O endereço ip
2 de 6 06-12-2009 12:52
3. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
(192.168.0.1) e máscara de rede (255.255.255.0) são apenas ilustrativos. Vou
continuar admitindo esses valores, mas o leitor pode configurar a rede de
acordo com as suas necessidades.
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
3 de 6 06-12-2009 12:52
4. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
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.
4 de 6 06-12-2009 12:52
5. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
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.
Configurando o servidor DHCP
Se os passos anteriores foram executados corretamente e nenhum erro
aconteceu, basta configurar as estações clientes com endereços IP de acordo
com o endereço e a máscara de rede utilizada no servidor, informar os
servidores de nomes e adicionar a rota de saída e as estações já estarão prontas
para navegar na internet.
Porém os procedimentos citados não são elementares para um usuário iniciante
e leigo em assuntos relacionados a redes de computadores.
Podemos facilitar a vida desses usuários configurando um servidor DHCP
(Dynamic Host Configuration Protocol) . Este servidor se encarregará de
atribuir um endereço IP para cada estação ativa na rede, além de informar os
servidores de nomes e a rota padrão de saída para Internet (gateway).
Existem vários servidores DHCP disponíveis. No Ubuntu, por exemplo, você
pode instalar facilmente o dhcp3-server digitando no terminal:
# apt-get install dhcp3-server
Para configurar o servidor, bastar editar o arquivo dhcpd.conf, que se encontra
no diretório raiz onde está o servidor DHCP que, normalmente é o /etc. No meu
caso o arquivo dhcpd.conf está localizado no diretório /etc/dhcp3-server/.
Uma configuração básica e funcional para o servidor pode ser feita da seguinte
maneira:
#-----------Arquivo dhcpd.conf-----------
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0; #Mascara de rede utilizada na rede
5 de 6 06-12-2009 12:52
6. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....
option broadcast-address 192.168.1.255;
option routers 192.168.0.1; #Roteador: no nosso caso é o ip do servidor Linux
option domain-name-servers 10.100.100.2, 10.100.100.4; #Servidores DNS
#Intervalo de IPs válidos a serem atribuídos às estações.
subnet 192.168.0.1 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.254;
}
Lembrando que os valores dos endereços IP, tando da própria rede quanto dos
servidores DNS são apenas ilustrativos. O leitor deve substituí-los por valores
condizentes com suas necessidades.
Uma vez editado o arquivo, basta iniciar (reiniciar) o servidor DHCP:
# /etc/init.d/dhcp3-server restart
Agora basta colocar as estações Windows para obter endereço IP e DNS
automaticamente. Estações Linux também podem obter endereços
automaticamente: basta utilizar um cliente DHCP para isso.
http://www.vivaolinux.com.br/artigo/Compartilhando-internet-via-radio-entre-
um-servidor-Linux-e-clientes-Windows
Voltar para o site
6 de 6 06-12-2009 12:52