Usare la nostra Slackware come Access Point WiFi

Wireless-Router.png

Introduzione

Questa guida intende fornire una (quasi) semplice esperienza come base per realizzare un access point usando un PC equipaggiato con una scheda wireless 802.11a o 802.11b/g e, naturalmente, Slackware-Linux.

Avvertenze
Le informazioni e le procedure descritte in questo articolo si intendono fornite "as is" e senza garanzia alcuna. Gli autori dell'articolo e slacky.eu non possono essere ritenuti in alcun modo responsabili per eventuali danni, perdite di informazioni, ecc. che si possono verificare a seguito dell'utilizzo delle informazioni qui contenute. Use at own risk!
Network-wireless-tango.png


Elenco dei componenti (in questa prova ;) )

Notebook
HP Pavilion dv5000
CPU AMD Sempron(tm) Processor 3300+
RAM 1GiB
WLAN BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
Software
Linux 2.6.33.4-smp
Slackware 13.1.0
hostapd v0.7.3
Network configuration
eth0 192.168.0.1/24, con collegamento a Internet
wlan0 192.168.1.123/24 come Access Point wireless


Testare le caratteristiche della scheda wireless

iw list

Wiphy phy0
        Band 1:
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        ...
                Bitrates:
                        * 1.0 Mbps
                        ...
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
        max # scan SSIDs: 4
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point

In Supported interface modes: * AP ... ok!

Installare e configurare hostapd

Per impostare la nostra scheda wireless come AP useremo hostapd, un servizio "user space" di gestione access point e server di autenticazione. Le release di hostapd e altri tool sono disponibili qui: hostap.epitest.fi.

Io ho installato hostapd v.0.7.3, ma lo slackbuild di SBo è datato. Potete usare questo: File:Hostapd.slackbuild.tar.gz. Scompattare e poi:

su
cd hostapd.slackbuild
./hostapd.SlackBuild
installpkg /tmp/hostapd-0.7.3-i486-1_SBo.tgz

Questi i parametri modificati in /etc/hostapd/hostapd.conf:

 interface=wlan0
 ssid=myAP
 hw_mode=g
 channel=6
 driver=nl80211
 wpa=1
 wpa_passphrase=mypassword

Installare e configurare il server DHCP

Molti client wireless necessitano di DHCP per ottenere la configurazione di rete, così è meglio installare il servizio DHCP (disponibile solo per la rete 192.168.1.0/24 wlan0, in questo esempio). Questa la configurazione funzionante /etc/dhcpd.conf

ddns-update-style none;
default-lease-time -1;
max-lease-time 7200;
not-authoritative;
#
# default gateway
option routers 192.168.1.123;
#
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-servers 208.67.222.222;
 
#
subnet 192.168.1.0 netmask 255.255.255.0
{
 next-server 192.168.1.1;
 
 range dynamic-bootp 192.168.1.128 192.168.1.248;
 option host-name "Wifi";
 
 group customIP
 {
  host pc-01  { hardware ethernet 00:11:22:33:44:55 ; fixed-address 192.168.1.11 ; }
 }
}

Se manca lo script del servizio sulla vostra Slackware, usate questo /etc/rc.d/rc.dhcpd:

#!/bin/sh
#
# /etc/rc.d/rc.dhcpd
#
# Start/stop/restart the DHCP server.
#
# To make DHCP daemon start automatically at boot, make this
# file executable:  chmod 755 /etc/rc.d/rc.dhcpd
#
 
case "$1" in
   'start')
      /usr/sbin/dhcpd ;;
   'stop')
      killall -s 9 dhcpd ;;
   'restart')
      killall -s 9 dhcpd
      /usr/sbin/dhcpd  ;;
   *)
      echo "usage $0 start|stop|restart" ;;
esac

Lo script per attivare l'Access Point

wlan_startAP.sh

#!/bin/sh
 
WLAN_DEV="wlan0"
WLAN_IP="192.168.1.123"
 
modprobe b43 qos=0
 
ifconfig $WLAN_DEV $WLAN_IP
iwconfig $WLAN_DEV txpower 20dBm
 
echo 1 > /proc/sys/net/ipv4/ip_forward
touch /var/lock/subsys/local
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -t nat -A POSTROUTING -s $WLAN_IP/24 -d 0/0 -o eth0 -j MASQUERADE
 
/etc/rc.d/rc.hostapd start
 
/etc/rc.d/rc.dhcpd restart 2> /dev/null

Se la card ha bisogno del firmware per lavorare come AP

output of dmesg all'avvio di hostapd:

b43 ssb0:0: firmware: requesting b43/ucode5.fw
b43 ssb0:0: firmware: requesting b43/pcm5.fw
b43 ssb0:0: firmware: requesting b43/b0g0initvals5.fw
b43 ssb0:0: firmware: requesting b43/b0g0bsinitvals5.fw
b43-phy0: Loading firmware version 508.154 (2009-08-18 00:58:22)

Installazione del firmware

Per scaricare ed installare il firmware la guida di riferimento è questa: linuxwireless.org

Come evidenziato in sul sito linuxwireless.org, spesso il firmware estratto dal driver binario è protetto da copyright da parte del produttore e non può essere ridistribuito in questo formato. Dobbiamo scaricare il driver specifico per la nostra scheda e usare tool tipo b43-fwcutter (b43-tools). Ecco l'esempio funzionante per il chipset BCM4318 :

tar -xjf broadcom-wl-5.10.144.3.tar.bz2
b43-fwcutter --unsupported broadcom-wl-5.10.144.3/linux/wl_apsta.o
cp -Rv b43 /lib/firmware/

Osservazioni e risultati

Wireless-Router.png


Questa realizzazione ha evidenziato risultati eccezionali: la portata radio è simile a quella di un vero access point, il sistema è molto stabile con alte prestazioni anche con diversi clienti wireless collegati.



Copyright - License

Autore: Zoros 00:03, 4 feb 2012 (CET)

GNU Free Documentation Licence
This article is released under the GNU Free Documentation Licence. You are welcome to copy and redistribute it (subject to certain conditions).