Questo è un articolo abbastanza buono (se un po 'datato [se il 2006 è obsoleto]) che delinea come farlo dalla riga di comando.
http://www.linux.com/archive/feed/55617
Supponendo che il tuo dispositivo wireless funzioni correttamente, puoi probabilmente immergerti nella sezione ponte a metà circa.
Wi-Fi Protected Access versione 2 ( WPA2 ) sta diventando di fatto lo standard per la protezione delle reti wireless e una funzione obbligatoria per tutti i nuovi prodotti Wi-Fi certificati da Wi-Fi Alliance . Conosciamo tutti i punti deboli di sicurezza del suo predecessore, WEP; questa volta hanno capito bene. Ecco come implementare il protocollo WPA2 su un host Linux e creare un punto di accesso wireless sicuro (WAP) per la tua rete.
La maggior parte dei WAP commerciali di livello consumer funzionano nella stessa semplice maniera: creano un ponte tra un'interfaccia di rete cablata (Ethernet) e una wireless. Questo è esattamente ciò che faremo anche noi. La parte WAP sarà gestita da hostapddemone, quindi devi scegliere un'interfaccia wireless che supporti. Tra le schede di rete supportate ci sono quelle con chipset Prism 2 / 2.5 / 3, Atheros ar521x e Prism GT / Duette / Indigo; un elenco è disponibile sulla homepage di hostapd, insieme ai collegamenti per i driver Linux per ogni chipset. Ho una scheda PCI basata su Atheros AR5212 installata sul mio WAP, che è supportata da hostapd. Sebbene qualsiasi sistema Pentium (o più recente) funzionerà, alcune schede wireless PCI richiedono PCI 2.2 per funzionare, quindi assicurati di controllare le specifiche della scheda madre del tuo sistema prima di acquistare. Avrai anche bisogno di un'interfaccia Ethernet supportata da Linux per connettere il tuo WAP alla LAN; la maggior parte delle interfacce di bordo funzionerà perfettamente.
La mia installazione si basa su Debian Testing (Etch), ma qualsiasi distribuzione GNU / Linux con un kernel 2.6 recente funzionerà. Il kernel deve supportare Ethernet Bridging 802.1d (CONFIG_BRIDGE) e Wireless LAN (CONFIG_NET_RADIO). La maggior parte dei kernel predefiniti ha queste funzionalità abilitate, ma se si preferisce compilare il proprio kernel, assicurarsi di includere queste opzioni. Gli unici altri pacchetti che devi installare, oltre a hostapd, sono bridge-utils e wireless-tools . Le principali distribuzioni GNU / Linux offrono pacchetti binari per tutti questi programmi, ma se si preferisce costruirli dal sorgente, è possibile trovare maggiori informazioni nelle loro home page.
Prima di unire le due interfacce dobbiamo mettere l'interfaccia wireless (nel mio caso ath0; regolarla in modo che corrisponda all'impostazione) in modalità hostap o Master. Di solito è semplice come eseguire iwconfig ath0 mode Master, ma poiché il supporto wlan in Linux non è ancora standardizzato, alcuni driver potrebbero aver bisogno di una configurazione aggiuntiva. Se si dispone di un'interfaccia basata su Atheros, è necessario eseguire anche quanto segue: wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
prima del iwconfig
comando. Dopodiché, la corsa iwconfig ath0
tornerà mode:Master
, tra gli altri.
Ora creiamo il ponte. Supponiamo che l'interfaccia Ethernet sia eth0:
ifconfig eth0 0.0.0.0 up
ifconfig ath0 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
E per fermare il ponte, dovresti eseguire:
ifconfig br0 down
ifconfig eth0 0.0.0.0 down
ifconfig ath0 0.0.0.0 down
brctl delif br0 eth0
brctl delif br0 ath0
brctl delbr br0
Se lo si desidera, è possibile fornire un indirizzo IP all'interfaccia br0 se si desidera accedere all'host WAP dalla rete, usando ad esempio SSH. Ogni distribuzione offre il proprio modo di configurare la rete; se usi Debian (o qualsiasi distribuzione basata su Debian, come Ubuntu) puoi concludere tutti i comandi precedenti semplicemente aggiungendo quanto segue al tuo /etc/network/interfaces
file:
auto ath0 br0
iface ath0 inet manual
pre-up wlanconfig ath0 destroy
pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
post-down wlanconfig ath0 destroy
wireless-mode master
iface br0 inet manual
bridge_ports eth0 ath0
Si noti che ifupdown
gestisce automaticamente eth0, quindi non è necessaria una stanza separata per esso /etc/network/interfaces
. Per verificare che il bridge sia configurato correttamente, eseguire brctl show
. Dovresti ottenere qualcosa del genere in cambio:
bridge name bridge id STP enabled interfaces
br0 8000.00032f2481f0 no ath0
eth0
Prima di iniziare a scherzare con hostapd abbiamo bisogno di una passphrase per WPA2. Come per tutte le password, dovrebbe essere casuale e quindi difficile da indovinare. Un buon modo per ottenere una passphrase casuale è visitare il generatore di password ultra alta sicurezza di Gibson Research Corp. e utilizzare la terza password che crea, quella denominata 63 caratteri alfanumerici casuali (az, AZ, 0-9). Avere una passphrase che include caratteri ASCII non alfanumerici (es.!, @, Ecc.) Potrebbe essere allettante, ma alcuni client - vale a dire Windows XP - non sembrano gradirli.
Ora crea un nuovo file di testo chiamato /etc/hostapd/wpa_psk
e incolla la tua passphrase come:
00:00:00:00:00:00 PASSPHRASE
La prima parte con gli zeri significa "abbina tutti gli indirizzi MAC" e fa esattamente questo. È inoltre possibile utilizzare passphrase diverse per ciascun client aggiungendo una nuova riga al file con l'indirizzo MAC di ciascun client e la relativa passphrase. Assicurati che solo root abbia accesso a quel file eseguendolo chmod 600 /etc/hostapd/wpa_psk
.
Ora crea un backup del file di configurazione principale di hostapd /etc/hostapd/hostapd.conf
e mantienilo come riferimento eseguendolo mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
. Crea un nuovo file hostapd.conf e incolla le seguenti righe:
interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=My_Secure_WLAN
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
stakey=0
Sostituisci le parti in corsivo con informazioni che corrispondono alla tua configurazione. Se si desidera consentire la connessione solo a client specifici, rimuovere il carattere # dalle due righe sopra e copiare gli indirizzi MAC di tali client /etc/hostapd/accept
e rendere questo file accessibile solo da root (chmod 600). Per ulteriori informazioni sulle opzioni utilizzate, leggere i commenti nel file di backup creato in precedenza (hostapd.conf.orig).
Avviare il demone hostapd ( /etc/init.d/hostapd start
) e /var/log/daemon.log
verificare che funzioni. Se il demone non viene visualizzato, aumentare il livello di debug ( option debug=
in hostapd.conf) a 4 e riprovare.
Ora se cerchi reti wireless disponibili da un client, dovresti vedere il tuo ESSID. Per connettersi al WAP da un client Linux, è necessario installare wpa_supplicant e creare un file di configurazione, wpa_supplicant.conf (in Debian, installato in /etc/wpa_supplicant/
) come il seguente:
update_config=1
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="My_Secure_WLAN"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk="PASSPHRASE"
priority=5
}
Sostituisci di nuovo le parti in corsivo per adattarle alla tua configurazione ed esegui wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
(sostituendo eth1
con il nome dell'interfaccia wlan e il wext con il driver appropriato per la tua scheda; esegui wpa_supplicant senza alcuna opzione per ulteriori informazioni). Questo comando avvia wpa_supplicant in primo piano e tenta di connettersi al WAP. Se l'output è simile al seguente, sei pronto:
Trying to associate with 00:11:22:33:44:55 (SSID='My_Secure_WLAN' freq=0 MHz)
Associated with 00:11:22:33:44:55
WPA: Key negotiation completed with 00:11:22:33:44:55 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed (auth) [id=0 id_str=]
Assegna un indirizzo IP statico all'interfaccia wireless (o esegui un client DHCP) e prova a eseguire il ping di un host all'interno della LAN per verificare che la connessione funzioni.
Congratulazioni, ti sei appena costruito un punto di accesso wireless altamente personalizzabile. Sebbene questa configurazione sia ideale per l'uso domestico o di piccoli uffici, è necessario qualcosa di più solido nell'azienda, con autenticazione con un server RADIUS o, ancora meglio, una VPN.