Wireless Access Point (WAP) personalizzato
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 8 "jessie" |
Introduzione
Sebbene in commercio esistano numerosi prodotti economici dedicati al ruolo di access point (AP d'ora in avanti), ci sono almeno alcune situazioni in cui è conveniente, o semplicemente interessante, usare una macchina completa per tale ruolo:
- grazie alla commercializzazione di computer a basso costo e basso consumo energetico è ormai divenuta molto appetibile la possibilità di crearsi un router/gateway personalizzato sfruttando la propria distribuzione linux preferita (debian nel nostro caso). Poiché inoltre si hanno spesso a disposizione anche delle periferiche per connessioni senza fili, come chiavette usb e chip integrati, risulta allora utile e conveniente aggiungere ai suddetti dispositivi anche la funzionalità di AP;
- si hanno già a disposizione una macchina accesa per molte ore al giorno (quando non in continuo) e un dispositivo wireless inutilizzato (o comunque sostituibile con un cavo), pertanto può risultare economico aggiungere ad tale computer anche la funzionalità di AP;
- si è interessati ad una soluzione semi-professionale o addirittura professionale che sia completamente personalizzabile e che non obblighi a dipendere da software proprietario.
Installazione
# apt-get install iw hostapd wireless-tools
I wireless-tools forniscono diversi strumenti, tra cui iwconfig, un'utilità ormai deprecata e atta a configurare i dispositivi wireless prima dell'introduzione a livello kernel del driver di interfaccia nl80211.
In questa guida si farà dunque solo riferimento al solo iw, il nuovo strumento che sostituisce iwconfig e che supporta anche il già citato nl80211 (riferimento).
Configurazione
Convenzioni
- eth0 è l'interfaccia a filo;
- wlan0 è l'interfaccia senza fili;
- br0 è il nome del ponte di rete che includerà le sopraccitate due interfacce fisiche, nel caso di soluzione con bridge di rete.
Verifica del supporto per la modalità master
Il primo passo è verificare che la propria scheda di rete supporti la modalità master, usando ad esempio il comando:
# iw list
che restituirà un lungo elenco di informazioni. Quello che interessa è la sezione Supported interface modes, che riporterà qualcosa del genere (esempio di output reale per chipset Intel(R) Dual Band Wireless AC 3160):
[...] Supported interface modes: * IBSS * managed * AP * AP/VLAN * monitor * P2P-client * P2P-GO * P2P-device [...]
Se nell'elenco compare la voce AP, allora il dispositivo di rete può essere usato in modalità master e quindi come access point.
Si noti che qualora si tentasse di impostare un dispositivo wireless basato su nl80211 in modalità master impartendo il comando iwconfig wlan0 mode master
, si otterrebbe il seguente messaggio d'errore:
Error for wireless request "Set Mode" (8B06) : SET failed on device wlan0 ; Invalid argument.
anche se il dispositivo supportasse effettivamente tale modalità.
Una volta acclarato che il dispositivo wireless da usare supporta la modalità master è possibile passare alla configurazione di hostapd
e quindi delle interfacce di rete.
hostapd
Questo strumento offre letteralmente una miriade di parametri su cui agire, basta dare uno sguardo al file di configurazione d'esempio /usr/share/doc/hostapd/examples/hostapd.conf.gz
, inoltre è possibile avviare molteplici istanze dello stesso, ognuna con un suo specifico file di configurazione.
In questa guida ci si limiterà a presentare i parametri essenziali ed a considerare l'esecuzione di una singola istanza di hostapd
, scelte più che sufficienti per gestire il semplice caso di una rete domestica e/o di un piccolo ufficio.
Si crei dunque un file di configurazione come utente root, ad esempio /etc/hostapd/hostapd.conf
, e si specifichino le seguenti direttive:
# Wireless interface interface=wlan0 driver=nl80211 ssid=test channel=1
Questa costituisce una configurazione assolutamente minimale, ma più che sufficiente per eseguire un primo test di funzionamento. Si digiti dunque da terminale:
# hostapd /etc/hostapd/hostapd.conf
se non ci sono errori a video compariranno alcune righe informative e il demone rimarrà semplicemente attivo in primo piano. Si prema ctrl + C per terminarne l'esecuzione. Se viceversa l'esecuzione del demone viene terminata automaticamente e compare un messaggio d'errore relativo al driver si veda questa pagina.
Una volta testato hostapd
con una configurazione minimale è possibile scrivere una configurazione un po' più elaborata (e definitiva). Prima di far ciò è però necessario individuare quali funzionalità aggiuntive supporta il dispositivo senza fili in uso attraverso il solito iw list
. Questa volta la sezione di interesse è Capabilities
. Ad esempio per il chipset Intel(R) Dual Band Wireless AC 3160 l'output di interesse è:
[...] Capabilities: 0x1162 HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI RX STBC 1-stream Max AMSDU length: 3839 bytes DSSS/CCK HT40 [...]
che si tradurrà nella seguente riga di configurazione:
ht_capab=[HT40+][RX-STBC1][SMPS-STATIC][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
È ora possibile specificare un file di configurazione definitivo, che nel caso del chipset Intel(R) Dual Band Wireless AC 3160 potrebbe essere:
# Wireless interface interface=wlan0 bridge=br0 driver=nl80211 country_code=IT # Wireless environment ssid=vostro_SSID hw_mode=g channel=4 # 802.11n wme_enabled=1 ieee80211n=1 ht_capab=[HT40+][RX-STBC1][SMPS-STATIC][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40] # Authentication and encryption macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=1 wpa=2 wpa_passphrase=password_personale wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP