Wireless Access Point (WAP) personalizzato: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
(Creata pagina con '{{Versioni compatibili|Squeeze|Wheezy|Jessie}} == Introduzione == Sebbene in commercio esistano numerosi prodotti economici dedicati al ruolo di access point (AP d'ora in avant...')
 
Nessun oggetto della modifica
(43 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
{{Versioni compatibili|Jessie}}{{Gateway-Router}}


== Introduzione ==
== Introduzione ==
Riga 7: Riga 7:
* 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 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.
* si è interessati ad una soluzione semi-professionale o addirittura professionale che sia completamente personalizzabile e che non obblighi a dipendere da software proprietario.
{{Box|Nota|Non tutti i dispositivi wireless supportano la modalità master, necessario per far funzionare tale dispositivo come AP. Verificare quindi tale aspetto come descritto nella sezione "Configurazione" prima di comprare un dispositivo.}}
== Installazione ==
<pre># apt-get install iw hostapd wireless-tools</pre>
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'''.<br/>
In questa guida si farà dunque solo riferimento al solo ''iw'', il nuovo strumento che sostituisce ''iwconfig'' e che supporta il già citato '''nl80211''' ([http://linuxwireless.org/en/users/Documentation/iw/#About_iw riferimento]).
Si tenga comunque presente che per impostare un dispositivo wireless in modalità master, cioè access point, è sufficiente l'utilizzo di <code>hostapd</code>, in quanto questo supporta tutti e quattro i driver d'interfaccia possibili, ovvero:
* HostAP
* madwifi
* prism54
* nl80211 (cfg80211/mac80211)
== 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:
<pre># iw list</pre>
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''):
<pre>
[...]
Supported interface modes:
    * IBSS
    * managed
    * AP
    * AP/VLAN
    * monitor
    * P2P-client
    * P2P-GO
    * P2P-device
[...]
</pre>
Se nell'elenco compare la voce '''AP''', allora il dispositivo di rete può essere usato in modalità master e quindi come access point.
Una volta acclarato che il dispositivo wireless da usare supporta la modalità master è possibile passare alla configurazione di <code>hostapd</code> e quindi delle interfacce di rete.
==== Nota su ''iwconfig'' e ''nl80211'' ====
Si noti che qualora si tentasse di impostare un dispositivo wireless basato su nl80211 in modalità master impartendo il comando <code>iwconfig wlan0 mode master</code>, si otterrebbe il seguente messaggio d'errore:
<pre>
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Invalid argument.
</pre>
anche se il dispositivo in questione supportasse effettivamente tale modalità.
=== hostapd ===
Questo strumento offre letteralmente una miriade di parametri su cui agire, basta dare uno sguardo al file di configurazione d'esempio <code>/usr/share/doc/hostapd/examples/hostapd.conf.gz</code>, 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 <code>hostapd</code>, 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 <code>/etc/hostapd/hostapd.conf</code>, e si specifichino le seguenti direttive:
<pre>
# Wireless interface
interface=wlan0
driver=nl80211
ssid=test
channel=1
</pre>
Questa costituisce una configurazione assolutamente minimale, ma più che sufficiente per eseguire un primo test di funzionamento. Si digiti dunque da terminale:
<pre># hostapd /etc/hostapd/hostapd.conf</pre>
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 [http://linuxwireless.org/en/users/Documentation/hostapd/ questa pagina].
Una volta testato <code>hostapd</code> con una configurazione minimale è possibile scrivere una configurazione un po' più elaborata (e definitiva). Se il proprio dispositivo supporta la modalità '''802.11n''' è però necessario individuare prima quali funzionalità aggiuntive sono disponibili attraverso il solito <code>iw list</code>. Questa volta la sezione di interesse è <code>Capabilities</code>. Ad esempio per il chipset ''Intel(R) Dual Band Wireless AC 3160'' l'output di interesse è:
<pre>
[...]
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
[...]
</pre>
che si tradurrà nella seguente riga di configurazione:
<pre>ht_capab=[HT40+][RX-STBC1][SMPS-STATIC][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]</pre>
È ora possibile specificare un file di configurazione semi-definitivo, che nel caso del chipset ''Intel(R) Dual Band Wireless AC 3160'' potrebbe essere simile a quanto segue:
<pre>
# Wireless interface
interface=wlan0
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
</pre>
dove:
* '''interface''' specifica il nome dell'interfaccia wireless da usare, chiaramente da modificare rispetto al valore indicato se diverso dal classico ''wlan0'';
* '''driver''' specifica il driver interfaccia da usare, valore che ragionevolmente non sarà da modificare a meno di non usare kernel molto vecchi;
* '''country_code''' è un valore non strettamente necessario e indica il codice paese in cui è attivo l'access point (si veda [https://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1]);
* '''ssid''' specifica la stringa da usare appunto come SSID di rete.
* '''hw_mode''' specifica la modalità di funzionamento (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g). Si noti che la modalità '''n''' viene indicata attraverso un altro parametro che in ogni caso richiede di definire prima questo;
* '''channel''' specifica il numero di canale da usare, si veda <code>/usr/share/doc/hostapd/examples/hostapd.conf.gz</code> su come scegliere un valore ottimale;
* '''ieee80211n''' è usato per abilitare (1) o disabilitare (0) la modalità 802.11n;
* '''ht_capab''' permette di definire le capacità aggiuntive del dispositivo wireless (inutile dichiarare questo parametro se <code>ieee80211n=0</code>);
* '''macaddr_acl''' abilita (1) o disabilita (0) il filtro sul mac address dei dispositivi che si connettono all'access point.
* '''auth_algs''' imposta l'algoritmo di autenticazione;
* '''ignore_broadcast_ssid''' abilita (1) o disabilita (0) la trasmissione dell'SSID di rete (ogni cliente deve già conoscerne il valore);
* '''wpa''' indica la versione di wpa ammessa, cioè solo wpa2 in questo caso;
* '''wpa_passphrase''' la password che ogni client dovrà immettere per connettersi all'access point;
* '''wpa_key_mgmt''', '''wpa_pairwise''', '''rsn_pairwise''' si veda <code>/usr/share/doc/hostapd/examples/hostapd.conf.gz</code>.
A questo punto non rimane che testare un'ultima volta il file di configurazione col solito:
<pre># hostapd /etc/hostapd/hostapd.conf</pre>
Se tutto va bene editare il file <code>/default/hostapd/hostapd</code> indicando il percorso del proprio file di configurazione, che per questa guida significa:
<pre>DAEMON_CONF="/etc/hostapd/hostapd.conf"</pre>
Avviare quindi il demone <code>hostapd</code>:
<pre># /etc/init.d/hostapd start</pre>
=== Interfacce di rete ===
La procedura è quella standard, attraverso la definizione di <code>/etc/network/interfaces</code> o manualmente attraverso l'uso di <code>ifconfig</code>. Si ricordi che nel primo caso è necessario riavviare il demone <code>networking</code> (ma non prima di aver riavviato anche <code>hostapd</code> nel caso di bridge di rete), oppure riavviare la macchina.
==== Configurazione statica o dinamica ====
Configurare la propria interfaccia senza fili come di norma. Si noti che usando <code>hostapd</code> è del tutto inutile specificare il parametro <code>wireless-mode Master</code>, anche nel caso di vecchi kernel, visto che provvede già quest'ultimo ad attivare la modalità master.
Con questa configurazione sarà naturalmente accessibile la sola macchina su cui è fisicamente presente il dispositivo di rete wireless. Eventuali altri dispostivi presenti nella stessa LAN, ovvero sulla stessa subnet (ad esempio 192.168.1.0/24), continueranno a non essere raggiungibili (compreso un eventuale gateway per collegarsi a internet).
==== Configurazione in bridge di rete ====
Configurare un bridge di rete che includa l'interfaccia senza fili e l'interfaccia a filo (o le interfacce a filo) come di norma, quindi aggiungere a <code>/etc/hostapd/hostapd.conf</code> la seguente direttiva:
<pre>bridge=br0</pre>
dove '''br0''' è il nome del ponte di rete da usare. Riavviare il demone di <code>hostapd</code>:
<pre># /etc/init.d/hostapd restart</pre>
e quindi quello di <code>networking</code>.
Per maggiori dettagli sul bridging si veda [[Ethernet Bridging | questa guida]].
==== Configurazione con routing delle connessioni ====
Se l'interfaccia senza fili necessita di un indirizzo ip appartenente ad una subnet differente da quella dell interfaccia a filo, per esempio 10.0.0.0/8 invece di 192.168.1.0/24, allora si deve semplicemente configurare la scheda wireless in modalità statica o dinamica e quindi implementare le necessarie regole di iptables (o strumento equivalente) per effettuare il routing dei pacchetti dall'interfaccia senza fili a quella (o quelle) a filo.<br/>
Per maggiori informazioni sull'uso di iptables si veda [[Debian e iptables | questa guida]].
== Considerazioni finali ==
In questa guida non si è mai accennato a server DHCP semplicemente perché si è dato per scontato che nella LAN in cui andrà ad operare l'access point sia già presente un server DHCP. Qualora così non fosse l'utente dovrà naturalmente provvedere ad installarne e configurarne uno, per esempio seguendo [[Un server DNS e DHCP su Debian#Installazione e configurazione del server DHCP | questa guida]].
== Approfondimenti ==
=== Manpages ===
* <code>man iw</code>
* <code>man hostapd</code>
=== Sitografia ===
* [https://wireless.wiki.kernel.org/en/users/documentation/hostapd Hostapd] su wireless.wiki.kernel.org
* [https://wireless.wiki.kernel.org/en/users/documentation/iw iw] su wireless.wiki.kernel.org
* [https://wireless.wiki.kernel.org/en/users/documentation/modes wireless modes] su wireless.wiki.kernel.org
* [https://help.ubuntu.com/community/WifiDocs/WirelessAccessPoint WAP] su help.ubuntu.com
* [https://help.ubuntu.com/community/WifiDocs/MasterMode Master mode] su help.ubuntu.com
* [http://www.cyberciti.biz/faq/debian-ubuntu-linux-setting-wireless-access-point/ Debian/Ubuntu WAP] su nixcraft
{{Autori
|Autore = [[Utente:Wtf|Wtf]] 23:52, 12 set 2015 (CEST)
}}
[[Categoria:Configurazione ethernet]][[Categoria:Configurazione wireless]]
2 853

contributi

Menu di navigazione