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

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
Nessun oggetto della modifica
(26 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Jessie}}
{{Versioni compatibili|Jessie}}{{Gateway-Router}}


== Introduzione ==
== Introduzione ==
Riga 14: Riga 14:
<pre># apt-get install iw hostapd wireless-tools</pre>
<pre># apt-get install iw hostapd wireless-tools</pre>


I ''wireless-tools'' forniscono diversi strumenti, tra cui ''iwconfig'', utile per configurare dispositivi wireless molto vecchi, basati ad esempio sui driver '''HostAP, Madwifi, Prism54'''. ''iw'' risulta invece utile per manipolare i dispositivi recenti, come ad esempio quelli basati sul driver '''nl80211'''.
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 ==
== Configurazione ==
Riga 47: Riga 53:


Se nell'elenco compare la voce '''AP''', allora il dispositivo di rete può essere usato in modalità master e quindi come access point.
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:
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>
<pre>
Riga 53: Riga 63:


</pre>
</pre>
anche se il dispositivo supportasse effettivamente tale modalità.
anche se il dispositivo in questione supportasse effettivamente tale modalità.
 
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.


=== hostapd ===
=== hostapd ===
Riga 73: Riga 81:
<pre># hostapd /etc/hostapd/hostapd.conf</pre>
<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 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].
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). Prima di far ciò è però necessario individuare quali funzionalità aggiuntive supporta il dispositivo senza fili in uso 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 è:
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>
<pre>
[...]
[...]
Riga 88: Riga 96:
[...]
[...]
</pre>
</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]]
3 155

contributi

Menu di navigazione