compartilhando internet via rádio entre m servidor linux e clientes windows

6
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. Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora.... 1 de 6 06-12-2009 12:52

Upload: felipe-santos

Post on 04-Jul-2015

2.622 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

Compartilhando internet via rádio entre um servidor Linux eclientes 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 Windowsnão é uma coisa trivial, principalmente quando se trata de conexões pppoe.Uma das complicações é que conexões pppoe domésticas normalmente possuemIP dinâmico. Assim o mascaramento de pacotes vindos da rede interna para ainternet deve ser feito através de interfaces de conexão, e não por endereçosIP.

Durante o texto alguns dos conceitos supracitados serão explicados maisdetalhadamente para facilitar a compreensão do leitor, especialmente daquelesiniciantes.

Gostaria de salientar que a distribuição utilizada para o desenvolvimento desseartigo foi Ubuntu 8.10 (codenamed Hardy Heron).

Preparando o servidorPrimeiramente, deve-se estabelecer a conexão com a internet. No caso deconexõ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 inteiroe positivo, então estamos prontos para continuar. Caso não apareça nenhumainterface com este nome, procure ajuda em como instalar o modelo da sua placawireless no Linux, especialmente na distribuição que você está utilizando.

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

1 de 6 06-12-2009 12:52

Page 2: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

Posteriormente devemos configurar a interface wireless com o nome (ESSID) darede 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 comandoiwconfig.

Feito isso estamos aptos para estabelecer a conexão com a internet. Para issorode o comando:

# pppoeconf

Durante o processo serão requisitados alguns dados, como nome de usuário esenha e serão feitas algumas perguntas. Quanto as perguntas, se você ficar emdú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 derede que será utilizada para compartilhar a conexão. Para descobrir as placasque 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 epositivo. 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 doseguinte 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

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

2 de 6 06-12-2009 12:52

Page 3: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

(192.168.0.1) e máscara de rede (255.255.255.0) são apenas ilustrativos. Voucontinuar admitindo esses valores, mas o leitor pode configurar a rede deacordo 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 roteamentode pacotes, ou seja, devemos permitir que o servidor possa descobrir o caminhoe entregar os pacotes que não sejam destinados a ele. Isso é fundamental paraque as máquinas da rede interna consigam enviar pacotes para máquinasexternas. Essa informação, sobre roteamento de pacotes está armazenada emum arquivo chamado ip_forward. Este arquivo fica com o número 1 armazenadose o roteamento estiver habilitado ou 0 caso contrário.

A modificação deste arquivo para permitir o roteamento pode ser feita de duasmaneiras: 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 pacotescom SNATPara 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 respectivosendereços ip referentes à rede interna para um endereço real de internet, paraque as máquinas externas também consigam se comunicar com as estações darede interna.

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

Na verdade existem dois tipos de NAT: o SNAT (Source Network Address

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

3 de 6 06-12-2009 12:52

Page 4: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

Translation), em que o endereço de origem do pacote é alterado depois doroteamento, e o DNAT (Destination Network Address Translation), em quealtera-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 internapareçam que têm como origem o nosso servidor com uma conexão PPP.

Quando executamos o comando pppoeconf foram criadas uma ou maisinterfaces 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çosde origem, precisamos descobrir qual é a interface que de fato é responsávelpela conexão com a internet.

Para isso utilizaremos a ferramenta Wireshark, que serve como analisadora detráfego de rede, mostrando os pacotes que estão sendo enviados e recebidospor 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 depacotes que está passando por cada uma delas.

Para descobrir qual interface ppp será utilizada no mascaramento, basta iniciaro 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.

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

4 de 6 06-12-2009 12:52

Page 5: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

O comando acima indica que será adicionada uma regra na chainPOSTROUTING da tabela nat. Tal regra indica que os pacotes saindo de pppXterão o endereço automaticamente escolhidos devido ao parâmetroMASQUERADE. Isso é necessário uma vez que o IP normalmente não é fixo emconexões pppoe.

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

Configurando o servidor DHCP

Se os passos anteriores foram executados corretamente e nenhum erroaconteceu, basta configurar as estações clientes com endereços IP de acordocom o endereço e a máscara de rede utilizada no servidor, informar osservidores de nomes e adicionar a rota de saída e as estações já estarão prontaspara navegar na internet.

Porém os procedimentos citados não são elementares para um usuário iniciantee 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á deatribuir um endereço IP para cada estação ativa na rede, além de informar osservidores 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 encontrano diretório raiz onde está o servidor DHCP que, normalmente é o /etc. No meucaso 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 seguintemaneira:

#-----------Arquivo dhcpd.conf-----------default-lease-time 600;max-lease-time 7200;option subnet-mask 255.255.255.0; #Mascara de rede utilizada na rede

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

5 de 6 06-12-2009 12:52

Page 6: Compartilhando Internet Via Rádio entre m servidor linux e clientes windows

option broadcast-address 192.168.1.255;option routers 192.168.0.1; #Roteador: no nosso caso é o ip do servidor Linuxoption 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 dosservidores DNS são apenas ilustrativos. O leitor deve substituí-los por valorescondizentes 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 DNSautomaticamente. Estações Linux também podem obter endereçosautomaticamente: 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

Compartilhando internet via rádio entre um servid... http://www.vivaolinux.com.br/artigos/impressora....

6 de 6 06-12-2009 12:52