Criando um Access Point

Filed Under (Software Livre | ) by Thiago on 21-09-2007

Adquiri recentemente, uma placa Wireless 108G PCI Adapter - DWL-G520 da Dlink, pra por no micro que já faz o roteamento da rede cabeada aqui de casa e poder utilizar o wireless do meu notebook. Imaginei que fosse uma tarefa simples, afinal, “é só mais uma placa de rede”.

Eu penei pra conseguir configurar, foram dois dias fuçando manuais e buscas no Google, para enfim, chegar a essa receita de bolo.

A DWL-G520 vem com chipset Atheros, que é suportado nativamente pelo Linux com o madwifi, não necessitando então do ndiswrapper, que é uma espécia de Wine para drivers wireless se entendi bem.

A intenção é mesclar as redes ethernet e wireless, atribuindo IP aos clientes via dhcp, autenticando os usuários da rede wi-fi com a chave WEP.

Com as três placas de rede fisicamente instaladas na máquina que irá fazer o roteamento, aqui um K6-2 366MHz com 386Mb de RAM e Debian 4.0.

Dando um “lspci” obtenho a seguinte saída:

# lspci

00:09.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

00:0a.0 Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 8b)

00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Vamos então a instalação dos pacotes via apt-get:

# apt-get install bridge-utils dhcp3-client dhcp3-common dhcp3-server wireless-tools

# apt-get install ifupdown iptables madwifi-tools madwifi-source module-assistant

Com a placa de rede reconhecida, e os drivers instalados, agora vamos configurar as placas de rede, no Debian, as configurações ficam no diretório “/etc/network/interfaces”.

# /etc/network/interfaces

# Interface de Local/Loopback

auto lo

iface lo inet loopback

# Primeira placa de rede, ligada ao switch

auto eth0

allow-hotplug eth0

iface eth0 inet static

address 192.168.1.1

netmask 255.255.255.0

# Segunda placa de rede, ligada ao modem

auto eth1

allow-hotplug eth1

iface eth1 inet dhcp

# Terceira placa de rede, wireless, habilitada via wlanconfig para trabalhar como Access Point (AP)

auto ath0

iface ath0 inet static

address 192.168.1.2

netmask 255.255.255.0

pre-up wlanconfig ath0 destroy

pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap

pre-up iwconfig ath0 essid “Casa” rate auto

pre-up iwconfig ath0 txpower auto

pre-up iwconfig ath0 channel 5

pre-up iwconfig ath0 key restricted xxxxxxxxxxxxxxxxxxxxxxxxxxxx

wireless-mode master
Para a chave WEP, você deve utilizar uma sequencia em hexadecimal de 26 caracteres.

Reinicie o micro, ou levante as placas de rede manualmente:

# ifconfig eth0 up

# ifconfig eth1 up

# ifconfig ath0 up

Agora, todas as placas de rede possuem um IP interno e já se comunicam, se em algum outro micro - no meu caso, a partir do notebook - eu rodar o iwlist, já será possível encontrar a rede wireless.

# iwlist scan

lo Interface doesn't support scanning.

eth0 Interface doesn’t support scanning.

eth1 Scan completed :

Cell 01 - Address: 00:19:5B:3C:CF:29

ESSID:”BobMarley”

Protocol:IEEE 802.11bg

Mode:Master

Channel:5

Frequency:2.432 GHz (Channel 5)

Encryption key:on

Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s

9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s

48 Mb/s; 54 Mb/s

Quality=99/100 Signal level=-23 dBm Noise level=-23 dBm

Extra: Last beacon: 92ms ago
Agora vamos habilitar o DHCP para a rede. Edite o /etc/default/dhcp3-server para podermos informar ao servidor daemon do DHCP, quais interfaces ele irá

ouvir.

# /etc/default/dhcp3-server

INTERFACES="eth0 ath0"

Configuramos agora, o daemon propriamente dito, uma configuração básica é sugerida abaixo, e deve ser salva no arquivo /etc/dhcp3/dhcpd.conf.

# /etc/dhcp3/dhcpd.conf

ddns-update-style none;

default-lease-time 600;

max-lease-time 7200;

authoritative;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.3 192.168.1.30;

option domain-name-servers 192.168.1.1,200.247.141.11,200.247.141.12;

option domain-name “fln.virtua.com.br”;

option routers 192.168.1.1;

default-lease-time 600;

max-lease-time 7200;

}
Reinicie o servidor DHCP e pronto

# /etc/init.d/dhcp3-server restart

Pronto, com isso, os micros conectados ao switch/hub já recebem um IP automaticamente, para os clientes da rede Wireless também receberem um IP e conseguir navegar, precisamos criar uma ponte, entre a placa de rede interna (eth0) e a placa wireless (ath0):

# ifconfig eth0 0.0.0.0 up

# ifconfig ath0 0.0.0.0 up

# brctl addbr br0

# brctl setfd br0 0

# brctl addif br0 eth0

# brctl addif br0 ath0

# ifconfig br0 192.168.1.1

A rede agora está quase pronta, faltando apenas habilitar o NAT no servidor, para que todos os micros possam utilizar a internet, para isso, vamos utilizar o iptables.

Primeiro carregamos o módulo iptable_nat

# modprobe iptable_nat

Limpamos quaisquer regras que existam na tabela do iptables

# iptables -F

# iptables -t nat -F

# iptables -t mangle -F

# iptables -X

Ativamos o ip forward

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

Habilitando o NAT, lembrando que a eth1 é a placa de rede que está ligada ao modem

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

Você também pode pegar os comandos que criam a interface de ponte (bridge) e do iptables, e inserir no seu rc.local, no diretório etc, para poder rodar sempre que o micro for iniciado.

How To corrido, escrito em menos de 20min, mas ao menos tá documentado pra galera não ficar dois dias quebrando cabeça como eu ;)

Comments:

Post a comment

ads
ads
ads
ads