Old:Creare un Access Point con Debian: differenze tra le versioni

Tolto il template "Articoli Ezine" e sostituito con "E-zine" + varie
Nessun oggetto della modifica
(Tolto il template "Articoli Ezine" e sostituito con "E-zine" + varie)
Riga 1: Riga 1:
{{
{{Versioni compatibili}}
Template:Articoli ezine
__TOC__
|titolo=Creare un Access Point con Debian<br/>
{{E-zine
|intro=Come trasformare una semplice Debian box in un access point wireless pienamente configurabile e personalizzabile.<br/>
|num=1
|abstract=In questo articolo esploreremo insieme tutti i passaggi necessari a realizzare un access point wireless basato sul nostro sistema operativo preferito: GNU/Linux Debian! Non si copriranno tutti gli aspetti che riguardano il raggiungimento di questo obiettivo (ci vorrebbe un libro intero!) ma si cercherà di fornire delle linee guida da seguire e una panoramica delle difficoltà che ci si troverà a dovere affrontare.<br/>
|articoli=[http://e-zine.debianizzati.org/web-zine/numero_1/?page=8 Creare un Access Point con Debian]
|1= * [http://e-zine.debianizzati.org/web-zine/numero_1/?page=8 Creare un Access Point con Debian]<br/>
}}
}}
<br/>
<br/>
== Introduzione ==
== Introduzione ==
In questo articolo esploreremo insieme tutti i passaggi necessari a realizzare un access point wireless basato sul nostro sistema operativo preferito: GNU/Linux Debian!
In questo articolo esploreremo insieme tutti i passaggi necessari a realizzare un access point wireless basato sul nostro sistema operativo preferito: GNU/Linux Debian!<br/>
Non si copriranno tutti gli aspetti che riguardano il raggiungimento di questo obiettivo (ci vorrebbe un libro intero!) ma si cercherà di fornire delle linee guida da seguire e una panoramica delle difficoltà che ci si troverà a dovere affrontare.<br />
Non si copriranno tutti gli aspetti che riguardano il raggiungimento di questo obiettivo (ci vorrebbe un libro intero!) ma si cercherà di fornire delle linee guida da seguire e una panoramica delle difficoltà che ci si troverà a dovere affrontare.<br />
La domanda potrebbe essere: perchè realizzare un access point software invece di acquistarne uno bello e pronto?<br />
La domanda potrebbe essere: perché realizzare un access point software invece di acquistarne uno bello e pronto?<br />
Risposta: e perchè no?<br />
Risposta: e perchè no?<br />
E' chiaro a tutti che acquistare un prodotto oggi molto comune sul mercato è ben più economico che "costruirsi" una custom-box; non ci sarebbe neanche bisogno di impiegare tempo ad effettuare settaggi e configurazioni.<br />
È chiaro a tutti che acquistare un prodotto oggi molto comune sul mercato è ben più economico che "costruirsi" una custom-box; non ci sarebbe neanche bisogno di impiegare tempo ad effettuare settaggi e configurazioni.<br />
Ci sono però, a mio avviso, due grandi motivazioni che possono spingerci ad affrontare un'avventura del genere.
Ci sono però, a mio avviso, due grandi motivazioni che possono spingerci ad affrontare un'avventura del genere.
La prima è la flessibilità e la possibilità di personalizzazione: si vuole un firewall? Un proxy? Nat? Nessun problema.
La prima è la flessibilità e la possibilità di personalizzazione: si vuole un firewall? Un proxy? Nat? Nessun problema.
Riga 21: Riga 17:
== Requisiti ==
== Requisiti ==
Il computer utilizzato per questo progetto è un notebook (vecchiotto) Acer Travelmate 2300 con 512Mb Ram, CPU Celeron M a 1400MHz, sistema operativo, neanche a dirlo, una installazione minimale di Debian GNU/Linux Lenny (la stabile attuale) con kernel 2.6.26-2-686.<br />
Il computer utilizzato per questo progetto è un notebook (vecchiotto) Acer Travelmate 2300 con 512Mb Ram, CPU Celeron M a 1400MHz, sistema operativo, neanche a dirlo, una installazione minimale di Debian GNU/Linux Lenny (la stabile attuale) con kernel 2.6.26-2-686.<br />
La connettività è garantita da una scheda ethernet, da una scheda wifi pcmcia Netgear Wpn511 gestita dai driver Madwifi (presenti nei repository di Lenny e installati con module-assistant) e da un router adsl Alice Gate 2+.<br /><br />
La connettività è garantita da una scheda ethernet, da una scheda Wi-Fi PCMCIA Netgear Wpn511 gestita dai driver Madwifi (presenti nei repository di Lenny e installati con <code>module-assistant</code>) e da un router ADSL Alice Gate 2+.<br />
Purtroppo non tutte le schede wireless in commercio sono capaci di accettare connessioni ed autenticazioni così come richiede un access point.<br />
Purtroppo non tutte le schede wireless in commercio sono capaci di accettare connessioni ed autenticazioni così come richiede un access point.<br />
Su sistemi GNU/Linux, ad oggi, solo pochi tipi di schede, ad esempio quelle gestite dai drivers ''iwlwifi'' (per chipset Intel) o da quelli ''madwifi'' (per chipset Atheros), sono capaci di assolvere a questo compito perchè riescono a supportare la modalità "'''Master'''".<br />
Su sistemi GNU/Linux, ad oggi, solo pochi tipi di schede, ad esempio quelle gestite dai driver ''iwlwifi'' (per chipset Intel) o da quelli ''madwifi'' (per chipset Atheros), sono capaci di assolvere a questo compito perché riescono a supportare la modalità "'''Master'''".<br />
Considerato che tali schede hanno costi davvero contenuti (che si possono aggirare sui 30-40 €) possiamo sostenere che, con una spesa minima, ci si può dotare di una periferica che può darci davvero grandi soddisfazioni.<br /><br />
Considerato che tali schede hanno costi davvero contenuti (che si possono aggirare sui 30-40 €) possiamo sostenere che, con una spesa minima, ci si può dotare di una periferica che può darci davvero grandi soddisfazioni.<br />
Non è proponibile, in questo contesto, affrontare tutte le problematiche d'installazione e di configurazione delle varie tipologie di schede wifi e relativi driver disponibili.<br />
Non è proponibile, in questo contesto, affrontare tutte le problematiche d'installazione e di configurazione delle varie tipologie di schede Wi-Fi e relativi driver disponibili.<br />
Si assume quindi che il sistema operativo sia stato installato e che la scheda sia stata riconosciuta e configurata correttamente.<br />
Si assume quindi che il sistema operativo sia stato installato e che la scheda sia stata riconosciuta e configurata correttamente.<br />
Tutti i comandi relativi sono propri delle schede funzionanti con driver madwifi.<br /><br />
Tutti i comandi relativi sono propri delle schede funzionanti con driver madwifi.<br />
Per controllare se sul chip della scheda wifi di cui disponiamo è possibile settare il "Master mode" si può impartire il comando:
Per controllare se sul chip della scheda Wi-Fi di cui disponiamo è possibile settare il "Master mode" si può impartire il comando:
<pre>
<pre>
# wlanconfig ath0 create wlandev wifi0 wlanmode master
# wlanconfig ath0 create wlandev wifi0 wlanmode master
</pre>
</pre>
che, in assenza di errori segnalati in ouput, imposterà la scheda ath0 in modalità master.<br />
che, in assenza di errori segnalati in output, imposterà la scheda <code>ath0</code> in modalità master.<br />
Lo stato della scheda è comunque visualizzabile con:
Lo stato della scheda è comunque visualizzabile con:
<pre>
<pre>
Riga 41: Riga 37:
# wlanconfig ath0 destroy
# wlanconfig ath0 destroy
</pre>
</pre>
(a volte, dopo quest'ultimo comando, la scheda "sparisce" dal pc; per riportarla in funzione basterà ricaricare il modulo che la gestisce: '''ath_pci''').
(a volte, dopo quest'ultimo comando, la scheda "sparisce" dal PC; per riportarla in funzione basterà ricaricare il modulo che la gestisce: '''ath_pci''').
<br />
<br />


== Topologia della rete ==
== Topologia della rete ==


Il nostro pc avrà (ovviamente) sistema operativo GNU/Linux Debian installato e, perlomeno, due schede di rete riconosciute e funzionanti, una wireless  
Il nostro PC avrà (ovviamente) sistema operativo GNU/Linux Debian installato e, perlomeno, due schede di rete riconosciute e funzionanti, una wireless (<code>ath0</code>) ed una ethernet (<code>eth0</code>). La prima si incaricherà di accettare o rifiutare le connessioni da parte dei client che provano l'autenticazione e, nel caso di autenticazione avvenuta, di trasmettere i pacchetti alla seconda (<code>eth0</code>) che li instraderà verso la rete esterna.<br />
(ath0) ed una ethernet (eth0). La prima si incaricherà di accettare o rifiutare le connessioni da parte dei clients che provano l'autenticazione e, nel caso di autenticazione avvenuta, di trasmettere i pacchetti alla seconda (eth0) che li instraderà verso la rete esterna.<br />
Per i pacchetti in entrata, ovviamente, sarà la stessa <code>eth0</code> che li "passerà" ad <code>ath0</code> la quale si incaricherà di inoltrarli a sua volta ai client connessi alla rete LAN.
Per i pacchetti in entrata, ovviamente, sarà la stessa eth0 che li "passerà" ad ath0 la quale si incaricherà di inoltrarli a sua volta ai clients connessi alla rete lan.<br />


La topologia della rete che si andrà a "prefigurare" risulterà così simile a questa:
La topologia della rete che si andrà a "prefigurare" risulterà così simile a questa:
<pre>Internet <----> [router] <----> (eth0=192.168.1.4)-Debian Ap-(athn0=10.0.0.1) <----> Lan</pre>
<pre>Internet <----> [router] <----> (eth0=192.168.1.4)-Debian Ap-(athn0=10.0.0.1) <----> Lan</pre>


Come si può notare, le interfacce di rete di Debian Ap, staranno su due classi differenti e per questo (lo vedremo proseguendo) avremo bisogno di
Come si può notare, le interfacce di rete di Debian Ap, staranno su due classi differenti e per questo (lo vedremo proseguendo) avremo bisogno di un "qualcosa" che permetta loro di "dialogare".
un "qualcosa" che permetta loro di "dialogare".<br /><br />


== Software necessario ==
== Software necessario ==


Prima di proseguire con la configurazione della rete, ci soffermeremo giusto un attimo sull'installazione di tutti quei pacchetti che ci permetteranno di affrontare i passaggi successivi di questo articolo:
Prima di proseguire con la configurazione della rete, ci soffermeremo giusto un attimo sull'installazione di tutti quei pacchetti che ci permetteranno di affrontare i passaggi successivi di questo articolo:
<pre># apt-get install wireless-tools hostapd hostap-utils bridge-utils dhcp3-server</pre>
<pre># apt-get install wireless-tools hostapd hostap-utils bridge-utils dhcp3-server</pre>


dove:
dove:
* ''wireless-tools'': set di comandi per la gestione del wifi.
* ''wireless-tools'': set di comandi per la gestione del Wi-Fi.
* ''hostapd''      : demone che si occuperà della crittografia per l'autenticazione.
* ''hostapd''      : [[demone]] che si occuperà della crittografia per l'autenticazione.
* ''bridge-utils''  : tools per configurare il bridging dei pacchetti.
* ''bridge-utils''  : tools per configurare il bridging dei pacchetti.
* ''dhcp3-server''  : server dhcp che si occuperà di assegnare gli ip ai clients autenticati.
* ''dhcp3-server''  : server DHCP che si occuperà di assegnare gli IP ai client autenticati.
<br /><br />
<br /><br />


== Configurazione delle interfacce di rete ==
== Configurazione delle interfacce di rete ==


Prima di iniziare le varie configurazioni è consigliabile "spegnere" le schede di rete e azzerare eventuali regole di iptables:
Prima di iniziare le varie configurazioni è consigliabile "spegnere" le schede di rete e azzerare eventuali regole di <code>iptables</code>:
<pre>
<pre>
# ifconfig eth0 0.0.0.0 down
# ifconfig eth0 0.0.0.0 down
Riga 81: Riga 71:
</pre>
</pre>
   
   
Questo per poter lavorare su un sistema "incontaminato" da configurazioni o settaggi precedenti.<br />
Questo per poter lavorare su un sistema "incontaminato" da configurazioni o settaggi precedenti.
 
Fatto questo, passeremo alla modifica del file /etc/network/interfaces (il "gestore" delle interfacce di rete su sistemi Debian-based):


Fatto questo, passeremo alla modifica del file <code>/etc/network/interfaces</code> (il "gestore" delle interfacce di rete su sistemi Debian-based):
<pre>
<pre>
# ethernet settings
# ethernet settings
Riga 115: Riga 104:
</pre>
</pre>


Le due schede di rete, come già detto, staranno su due network differenti: 192.168.1.0/24 e 10.0.0.0/24.
Le due schede di rete, come già detto, staranno su due network differenti: 192.168.1.0/24 e 10.0.0.0/24.<br/>
La scheda eth0 avrà come gateway e server dns il router adsl (192.168.1.1) che farà "transitare" i pacchetti da e verso internet.<br /><br />
La scheda <code>eth0</code> avrà come gateway e server DNS il router ADSL (192.168.1.1) che farà "transitare" i pacchetti da e verso internet.<br/>
Le righe
Le righe:
<pre>
<pre>
pre-up modprobe -r ath_pci
pre-up modprobe -r ath_pci
Riga 124: Riga 113:
</pre>
</pre>
setteranno la scheda wireless in modalità Master.<br />
setteranno la scheda wireless in modalità Master.<br />
Le prime due sono necessarie per il tipo di chip utilizzato perchè quest'ultimo riesce a settarsi correttamente solo quando il modulo che lo gestisce viene caricato con l'opzione '''autocreate=none'''.<br />
Le prime due sono necessarie per il tipo di chip utilizzato perché quest'ultimo riesce a settarsi correttamente solo quando il modulo che lo gestisce viene caricato con l'opzione '''autocreate=none'''.<br />
E' evidente che questo è un settaggio "particolare" relativo ad un chip ben preciso e che lo stesso non si applicherà ad altri modelli di schede.<br />
È evidente che questo è un settaggio "particolare" relativo ad un chip ben preciso e che lo stesso non si applicherà ad altri modelli di schede.


Il passo successivo consiste nell'impostare il sistema affinchè i pacchetti possano passare da un'interfaccia di rete all'altra.
Il passo successivo consiste nell'impostare il sistema affinchÉ i pacchetti possano passare da un'interfaccia di rete all'altra.<br />
<br />
Questo può essere ottenuto in due modi: con il bridging o con il routing.
Questo può essere ottenuto in due modi: con il bridging o con il routing.<br /><br />


== Modalità bridge ==
== Modalità bridge ==


Per utilizzare il bridging abbiamo bisogno di installare le bridge-utils e di riconfigurare le interfacce di rete:
Per utilizzare il bridging abbiamo bisogno di installare le <code>bridge-utils</code> e di riconfigurare le interfacce di rete:


<pre># apt-get install bridge-utils
<pre># apt-get install bridge-utils
Riga 141: Riga 129:
# ifconfig eth0 0.0.0.0 up</pre>
# ifconfig eth0 0.0.0.0 up</pre>


Creiamo una interfaccia di bridge chiamata br0 e aggiungiamo a questa le due interfacce di rete:
Creiamo una interfaccia di bridge chiamata <code>br0</code> e aggiungiamo a questa le due interfacce di rete:
 
<pre># brctl addbr br0
<pre># brctl addbr br0
# brctl addif br0 ath0
# brctl addif br0 ath0
Riga 148: Riga 135:


infine accertiamoci che le impostazioni siano corrette:
infine accertiamoci che le impostazioni siano corrette:
<pre># brctl show</pre>
<pre># brctl show</pre>
e riavviamo hostapd:
e riavviamo <code>hostapd</code>:
<pre># /etc/init.d/hostapd restart</pre>
<pre># /etc/init.d/hostapd restart</pre>


Da notare che, per poter funzionare correttamente in modalità bridging, l'ip-forwarding deve essere impostato:
Da notare che, per poter funzionare correttamente in modalità bridging, l'ip-forwarding deve essere impostato:
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>


Riga 160: Riga 145:


Se mai questa esistesse, bisognerà rimuoverla:
Se mai questa esistesse, bisognerà rimuoverla:
<pre># iptables -t nat -D POSTROUTING 1</pre>
<pre># iptables -t nat -D POSTROUTING 1</pre>


Una volta configurata, sarà possibile attivare l'interfaccia di bridge virtuale br0 come una normale scheda di rete fisica sia assegnando un
Una volta configurata, sarà possibile attivare l'interfaccia di bridge virtuale <code>br0</code> come una normale scheda di rete fisica sia assegnando un ip statico che dinamico via DHCP.<br />
ip statico che dinamico via dhcp.<br />


A questo punto si potranno collegare pc, hub, switch, etc. alla porta ethernet o a quella wifi e la "comunicazione" sarà garantita.
A questo punto si potranno collegare PC, hub, switch, etc. alla porta ethernet o a quella Wi-Fi e la "comunicazione" sarà garantita.<br/>
Queste periferiche saranno in grado di "vedersi" e comunicare l'una con l'altra senza che ci sia bisogno di impostare gli indirizzi ip su classi
Queste periferiche saranno in grado di "vedersi" e comunicare l'una con l'altra senza che ci sia bisogno di impostare gli indirizzi IP su classi differenti e senza dover impostare le regole di <code>iptables</code>.
differenti e senza dover impostare le regole di iptables.<br /><br />


== Modalità router ==
== Modalità router ==


Per il routing, invece, è necessario avere a che fare con le regole di netfilter per mezzo di iptables.
Per il routing, invece, è necessario avere a che fare con le regole di <code>netfilter</code> per mezzo di <code>iptables</code>.


Autorizziamo l'interfaccia ath0 ad accettare nuove connessioni e istruiamola a forwardarle verso l'esterno attraverso l'interfaccia eth0:
Autorizziamo l'interfaccia <code>ath0</code> ad accettare nuove connessioni e istruiamola a forwardarle verso l'esterno attraverso l'interfaccia <code>eth0</code>:


<pre># iptables -A FORWARD --in-interface ath0 --out-interface eth0 --source 192.168.1.0/255.255.255.0 -m state --state NEW -j ACCEPT
<pre># iptables -A FORWARD --in-interface ath0 --out-interface eth0 --source 192.168.1.0/255.255.255.0 -m state --state NEW -j ACCEPT
Riga 180: Riga 162:
# iptables -A FORWARD -m state --state RELATED -j ACCEPT</pre>
# iptables -A FORWARD -m state --state RELATED -j ACCEPT</pre>


Impostiamo il NAT per "mascherare" gli ip della lan:
Impostiamo il NAT per "mascherare" gli IP della LAN:


<pre># iptables -t nat -A POSTROUTING -j MASQUERADE</pre>
<pre># iptables -t nat -A POSTROUTING -j MASQUERADE</pre>


in questo modo i pacchetti in uscita sembreranno tutti provenienti dalla linux-box che sta eseguendo il routing.
in questo modo i pacchetti in uscita sembreranno tutti provenienti dalla Linux-box che sta eseguendo il routing.


Infine attiviamo il packet forwarding a livello kernel:
Infine attiviamo il packet forwarding a livello kernel:
Riga 190: Riga 172:
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>


Questo setup farà passare il traffico dalla lan ad internet ma non si preoccuperà di configurare i parametri di rete nei computer della lan.
Questo setup farà passare il traffico dalla LAN ad internet ma non si preoccuperà di configurare i parametri di rete nei computer della LAN.
In ognuno di essi sarà necessario impostare indirizzo ip, indirizzo del gateway, indirizzo del dns.
In ognuno di essi sarà necessario impostare indirizzo IP, indirizzo del gateway, indirizzo del DNS.
Se si utilizza il nostro Debian AP come NAT gateway, questo potrà essere facilmente ottenuto usando il dhcp.<br />
Se si utilizza il nostro Debian AP come NAT gateway, questo potrà essere facilmente ottenuto usando il DHCP.<br />


Le impostazioni di iptables e dell'ip_forward fin qui definite si perderebbero in caso di halt o reboot del sistema. E' quindi consigliabile
Le impostazioni di <code>iptables</code> e dell'IP_forward fin qui definite si perderebbero in caso di halt o reboot del sistema. È quindi consigliabile inserirle in uno [[script]] apposito da avviarsi in automatico al boot dell'AP.
inserirle in uno script apposito da avviarsi in automatico al boot dell'ap.<br />


Si sottolinea che queste regole '''non''' si occupano di "proteggere" la rete, ma solo di permettere il routing dei pacchetti. E' utile, quindi, integrarle con regole adatte al "filtraggio" vero e proprio, per garantire la sicurezza all'interno del proprio network.<br />
Si sottolinea che queste regole '''non''' si occupano di "proteggere" la rete, ma solo di permettere il routing dei pacchetti. È utile, quindi, integrarle con regole adatte al "filtraggio" vero e proprio, per garantire la sicurezza all'interno del proprio network.<br />
Come già detto, in questo articolo sarebbe stato impensabile affrontare in maniera approfondita ogni singolo aspetto della gestione di rete. Ritengo corretto però consigliare un approfondimento teorico volto all'implementazione di un firewall robusto e modulare per mezzo di uno strumento eccellente e flessibile come ''iptables''.<br /><br />
Come già detto, in questo articolo sarebbe stato impensabile affrontare in maniera approfondita ogni singolo aspetto della gestione di rete. Ritengo corretto però consigliare un approfondimento teorico volto all'implementazione di un firewall robusto e modulare per mezzo di uno strumento eccellente e flessibile come ''iptables''.


== Crittografia ==
== Crittografia ==


Perchè il nostro access point possa stabilire una politica di sicurezza autorizzando l'autenticazione con chiave crittografica (wep, wpa, wpa2, radius) sarà necessario installare il pacchetto hostapd:
Perché il nostro access point possa stabilire una politica di sicurezza autorizzando l'autenticazione con chiave crittografica (WEP, WPA, WPA2, radius) sarà necessario installare il pacchetto <code>hostapd</code>:


<pre># apt-get install hostapd</pre>
<pre># apt-get install hostapd</pre>
Riga 228: Riga 209:
* ''channel'' = canale sul quale si vuole trasmettere.
* ''channel'' = canale sul quale si vuole trasmettere.
* ''macaddr_acl'' = autenticazione basata sul macaddress (0 accetta se non espressamente negato, 1 nega se non espressamente consentito, 2 utilizza server radius).
* ''macaddr_acl'' = autenticazione basata sul macaddress (0 accetta se non espressamente negato, 1 nega se non espressamente consentito, 2 utilizza server radius).
* ''auth_algs'' = algoritmo di autenticazione (0 open system, 1 wep, 3 entrambi).
* ''auth_algs'' = algoritmo di autenticazione (0 open system, 1 WEP, 3 entrambi).
* ''ignore_broadcast_ssid'' = 0 disabilitato, 1 ssid vuoto, 2 clear ssid.
* ''ignore_broadcast_ssid'' = 0 disabilitato, 1 SSID vuoto, 2 clear SSID.
* ''wpa'' = 1 solo wpa, 2 wpa2, 3 entrambi.
* ''wpa'' = 1 solo WPA, 2 WPA2, 3 entrambi.
<br />


Nello stesso file, inoltre, nel caso avessimo deciso di adottare la modalità di bridging, dovremmo decommentare la riga
Nello stesso file, inoltre, nel caso avessimo deciso di adottare la modalità di bridging, dovremmo decommentare la riga:


<pre>bridge=br0</pre>
<pre>bridge=br0</pre>


Decommentiamo inoltre, nel file ''/etc/default/hostapd'', la riga
Decommentiamo inoltre, nel file ''/etc/default/hostapd'', la riga:


<pre>RUN_DAEMON="yes"</pre>
<pre>RUN_DAEMON="yes"</pre>


<br />
A questo punto possiamo riavviare la rete e di conseguenza, per come abbiamo impostato il file <code>/etc/network/interfaces</code>, anche il demone <code>hostapd</code>:
A questo punto possiamo riavviare la rete e di conseguenza, per come abbiamo impostato il file /etc/network/interfaces, anche il demone hostapd:


<pre># /etc/init.d/networking start</pre>
<pre># /etc/init.d/networking start</pre>


e provare l'autenticazione da un qualsiasi pc munito di scheda wifi:
e provare l'autenticazione da un qualsiasi PC munito di scheda Wi-Fi:


<pre># wpa_passphrase debian-ap wdebianizzati > /etc/wpa_supplicant/wpa_supplicant-custom.conf
<pre># wpa_passphrase debian-ap wdebianizzati > /etc/wpa_supplicant/wpa_supplicant-custom.conf
Riga 253: Riga 232:
ovviamente a ''wlan0'' sostituiremo il nome dell'interfaccia wireless del client.
ovviamente a ''wlan0'' sostituiremo il nome dell'interfaccia wireless del client.


Se non vengono restituiti errori, l'autenticazione è avvenuta con successo.<br /><br />
Se non vengono restituiti errori, l'autenticazione è avvenuta con successo.


== Filtri sulle connessioni ==
== Filtri sulle connessioni ==
Riga 259: Riga 238:
Per rendere più sicuro l'accesso all'acces point imposteremo un filtro sui mac address autorizzati a connettersi (previa autenticazione).<br />
Per rendere più sicuro l'accesso all'acces point imposteremo un filtro sui mac address autorizzati a connettersi (previa autenticazione).<br />
La regola che vogliamo impostare è che il nostro Debian Ap '''neghi''' la connessione a '''tutti''' i mac address che ne fanno richiesta '''meno''' quelli che si vogliono autorizzare.<br />
La regola che vogliamo impostare è che il nostro Debian Ap '''neghi''' la connessione a '''tutti''' i mac address che ne fanno richiesta '''meno''' quelli che si vogliono autorizzare.<br />
In pratica, si stabilirà un insieme di mac address conosciuti ai quali permettere l'eventuale connessione. A tutti gli altri non facenti parte di questo insieme, la possibilità verrà negata.<br />
In pratica, si stabilirà un insieme di mac address conosciuti ai quali permettere l'eventuale connessione. A tutti gli altri non facenti parte di questo insieme, la possibilità verrà negata.
<br />
 
Questo risultato può essere raggiunto percorrendo diverse strade (come d'altronde succede in ambiente linux): si possono impostare apposite regole di iptables, ci si può avvalere nuovamente di iwpriv, etc.<br />
Questo risultato può essere raggiunto percorrendo diverse strade (come d'altronde succede in ambiente Linux): si possono impostare apposite regole di <code>iptables</code>, ci si può avvalere nuovamente di iwpriv, etc.<br />
In questo caso si è scelto di far svolgere il lavoro al demone hostapd.<br />
In questo caso si è scelto di far svolgere il lavoro al demone <code>hostapd</code>.


Creiamo due nuovi files:
Creiamo due nuovi file:
<pre>
<pre>
# touch /etc/hostapd/hostapd.accept
# touch /etc/hostapd/hostapd.accept
Riga 270: Riga 249:
</pre>
</pre>
Il primo conterrà una lista di mac address da "accettare", il secondo da "rifiutare". Il tutto si basa sul tipo di politica da voler adottare. Noi abbiamo scelto quella del: "nega a tutti meno che a quelli appartenenti ad un insieme stabilito".<br />
Il primo conterrà una lista di mac address da "accettare", il secondo da "rifiutare". Il tutto si basa sul tipo di politica da voler adottare. Noi abbiamo scelto quella del: "nega a tutti meno che a quelli appartenenti ad un insieme stabilito".<br />
Editiamo il file /etc/hostapd/hostapd.conf e sostituiamo alla riga:
Editiamo il file <code>/etc/hostapd/hostapd.conf</code> e sostituiamo alla riga:
<pre>
<pre>
macaddr_acl=0
macaddr_acl=0
Riga 282: Riga 261:
accept_mac_file=/etc/hostapd/hostapd.accept
accept_mac_file=/etc/hostapd/hostapd.accept
</pre>
</pre>
In questo modo solo i mac address presenti in /etc/hostapd/hostapd.accept saranno autorizzati ad agganciarsi alla lan.<br />
In questo modo solo i mac address presenti in <code>/etc/hostapd/hostapd.accept</code> saranno autorizzati ad agganciarsi alla LAN.
<br />
 
Ad esempio:
Ad esempio:
<pre>
<pre>
Riga 290: Riga 269:
# /etc/init.d/hostapd restart
# /etc/init.d/hostapd restart
</pre>
</pre>
farà in modo che questi siano gli unici due mac address autorizzati ad entrare in rete.<br /><br />
farà in modo che questi siano gli unici due mac address autorizzati ad entrare in rete.


== Server dhcp ==
== Server DHCP ==


Come dhcp server utilizzeremo ''dhcp3-server'' avviato come demone sull'interfaccia ''wlan0'', dato che sarà questa quella che i vari clients della lan
Come DHCP server utilizzeremo ''dhcp3-server'' avviato come demone sull'interfaccia ''wlan0'', dato che sarà questa quella che i vari clients della LAN interrogheranno per cercare autenticazione ed ottenere indirizzo IP.<br />
interrogheranno per cercare autenticazione ed ottenere indirizzo ip.<br /><br />
Installato il server:
Installato il server:


Riga 304: Riga 282:
<pre>INTERFACES=ath0</pre>
<pre>INTERFACES=ath0</pre>


Nel file di configurazione ''/etc/dhcp3/dhcpd.conf'' setteremo invece le direttive riguardanti il lease time (tempo di attesa) e il range di indirizzi
Nel file di configurazione ''/etc/dhcp3/dhcpd.conf'' setteremo invece le direttive riguardanti il lease time (tempo di attesa) e il range di indirizzi IP da assegnare, nonché le indicazioni riguardanti i DNS:
ip da assegnare, nonchè le indicazioni riguardanti i dns:


<pre>
<pre>
Riga 315: Riga 292:
}</pre>
}</pre>


In questo esempio come server di dominio sono stati impostati gli indirizzi di opendns, ma ovviamente possono essere sostituiti da quelli di eventuali dns interni alla lan.
In questo esempio come server di dominio sono stati impostati gli indirizzi di <code>OpenDNS</code>, ma ovviamente possono essere sostituiti da quelli di eventuali DNS interni alla LAN.


Per applicare le modifiche, come sempre, dovremo riavviare il servizio:
Per applicare le modifiche, come sempre, dovremo riavviare il servizio:


<pre># /etc/init.d/dhcp3-server restart</pre>
<pre># /etc/init.d/dhcp3-server restart</pre>
<br />


== Considerazioni finali ==
== Considerazioni finali ==


La configurazione del nostro Debian-Ap è terminata.
La configurazione del nostro Debian-Ap è terminata.<br/>
Abbiamo visto come sia relativamente semplice, disponendo di hardware comune (anche datato) e di scheda wifi compatibile con la modalità master, realizzare "via software" un access point in piena regola da poter utilizzare nella nostra lan.<br />
Abbiamo visto come sia relativamente semplice, disponendo di hardware comune (anche datato) e di scheda Wi-Fi compatibile con la modalità master, realizzare "via software" un access point in piena regola da poter utilizzare nella nostra LAN.<br />
E' chiaro che il tutto si presta a personalizzazioni e miglioramenti infiniti.<br />
È chiaro che il tutto si presta a personalizzazioni e miglioramenti infiniti.<br />
Dal settare un proxy per le autenticazioni e il filtro dei contenuti, alla definizione di regole firewall ben più articolate e complete, etc. ci si può davvero sbizzarrire e dar fondo alla nostra creatività e capacità tecnica...<br />
Dal settare un proxy per le autenticazioni e il filtro dei contenuti, alla definizione di regole firewall ben più articolate e complete, etc. ci si può davvero sbizzarrire e dar fondo alla nostra creatività e capacità tecnica...<br />
Il tutto, ovviamente, sempre e solo con strumenti liberi ed in pieno spirito open source!<br /><br />
Il tutto, ovviamente, sempre e solo con strumenti liberi ed in pieno spirito open source!


Happy surfing & happy Debian!
Happy surfing & happy Debian!


----
{{Autori
[[Utente:Pmate|pmate]] 12:12, 16 feb 2010 (CET)
|Autore=[[Utente:Pmate|pmate]] 12:12, 16 feb 2010 (CET)
----
}}
<br/>
 
[[Categoria:Configurazione wireless]][[Categoria:E-zine]]
[[Categoria:Configurazione wireless]][[Categoria:E-zine]]
6 999

contributi