Introdução
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)
Instalando
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 ;)