Lag en sikker Linux-basert trådløs tilgang point


Wi-Fi Protected Access versjon 2 (WPA2) blir de facto standard for sikring av trådløse nettverk, og en obligatorisk funksjon for alle nye Wi-Fi-produkter sertifisert av Wi-Fi Alliance. Vi kjenner alle sikkerhetssvakheter av sin forgjenger, WEP; denne gangen har de fått det riktig. Her er hvordan å implementere WPA2 protokoll på Linux vert og opprette et sikkert trådløst tilgangspunkt (WAP) for nettverket.



De fleste forbruker-grade kommersielle WAPs operere i samme enkle måte: de skaper en bro mellom en kablet (Ethernet) nettverksgrensesnitt og en trådløs en. Det er akkurat hva vi skal gjøre også. WAP-delen vil bli håndtert av hostapd daemon, så du må velge et trådløst grensesnitt den støtter. Blant de støttede nettverkskort er de med Prism 2 /2,5 /3, Atheros ar521x, og Prism GT /Duette /Indigo brikkesett; en liste er tilgjengelig på hostapd hjemmeside, sammen med linker for Linux-drivere for hver brikkesett. Jeg har en Atheros AR5212-basert PCI-kort installert på min WAP, som fungerer bra med den siste stabile versjonen av MADWifi sjåfører og støttes av hostapd. Selv om noen Pentium (eller nyere) system vil fungere, noen PCI trådløse kort krever PCI 2.2 til å operere, så sørg for å sjekke systemets hovedkort spesifikasjoner før du kjøper. Du vil også trenge en Ethernet-grensesnitt som støttes av Linux for å koble WAP til LAN; de fleste om bord grensesnitt vil fungere helt fint.

Mitt oppsett er basert på Debian Testing (Etch), men noen GNU /Linux-distribusjon med en fersk 2.6 kernel vil fungere. Kjernen må ha støtte 802.1d Ethernet Bridging (CONFIG_BRIDGE) og trådløs LAN (CONFIG_NET_RADIO). De fleste standard lager kjerner har disse funksjonene aktivert, men hvis du foretrekker å bygge din egen kjerne, sørg for å inkludere disse alternativene. De eneste andre pakker du trenger å installere, foruten hostapd, er bridge-utils og wireless-tools. Store GNU /Linux-distribusjoner tilbyr binære pakker for alle disse programmene, men hvis du foretrekker å bygge dem fra kilde, kan du finne mer informasjon på sine hjemmesider.

Før bygge bro sammen de to grensesnittene må vi sette det trådløse grensesnittet (i mitt tilfelle ath0, justere den til å matche din setup) i hostap eller Master-modus. Vanligvis er dette så enkelt som å kjøre iwconfig ath0 modus Master, men siden wlan-støtte i Linux er foreløpig ikke standardisert, kan enkelte sjåfører trenger mer konfigurasjon. Hvis du har en Atheros-basert grensesnitt må du også kjøre følgende: wlanconfig ath0 ødelegge; wlanconfig ath0 skape wlandev wifi0 wlanmode ap før iwconfig kommandoen. Etter det, vil kjøre iwconfig ath0 tilbake modus. Master, blant andre

Nå la oss lage broen. Vi vil anta at Ethernet-grensesnitt er eth0 Bilde:


 ifconfig eth0 0.0.0.0 upifconfig ath0 0.0.0.0 upbrctl addbr br0brctl addif Br0 eth0brctl addif Br0 ath0 

Og for å stoppe brua, bør du kjøre:


 ifconfig Br0 downifconfig eth0 0.0.0.0 downifconfig ath0 0.0.0.0 downbrctl delif Br0 eth0brctl delif Br0 ath0brctl delbr Br0 

Du kan eventuelt gi en IP-adresse til Br0 grensesnittet hvis du vil ha tilgang til WAP verten fra nettverket, ved hjelp av for eksempel SSH. Hver distribusjon har sin egen måte å konfigurere nettverket; hvis du bruker Debian (eller en Debian-basert distribusjon, slik som Ubuntu) kan du pakke opp alle tidligere kommandoer ved å legge til følgende i /etc /network /inter file:


 auto ath0 br0iface ath0 inet manuell pre-up wlanconfig ath0 ødelegge pre-up wlanconfig ath0 skape wlandev wifi0 wlanmode ap post-down wlanconfig ath0 ødelegge trådløs-modus masteriface Br0 inet manuelle bridge_ports eth0 ath0 

Merk at ifupdown håndtak eth0 automatisk, så du trenger ikke en egen strofe for det i /etc /network /interfaces. For å verifisere at brua er konfigurert riktig, kjøre brctl showet. Du bør få noe som dette i retur:


 bridge navn bro id STP aktivert interfacesbr0 8000.00032f2481f0 ingen ath0 eth0 

Før du begynner å rote med hostapd vi trenger et passord for WPA2. Som med alle passord, bør det være tilfeldig og dermed vanskelig å gjette. En fin måte å få en tilfeldig passfrase er å besøke Gibson Research Corp Ultra High Security Password Generator og bruke den tredje passord det skaper - den som heter 63 tilfeldige alfanumeriske tegn (az, AZ, 0 -9)
. Å ha et passord som inneholder ikke-alfanumeriske ASCII-tegn (f.eks
, @
, osv!) Kan være fristende, men noen kunder - nemlig Windows XP - ikke synes å like dem

Nå opprette en ny tekstfil kalt /etc /hostapd /wpa_psk og lim inn passfrase som:.


 00: 00: 00: 00 : 00: 00  PASSORDET 

Den første delen med nuller betyr 'svarer alle MAC-adresser,' og gjør akkurat det. Du kan også bruke ulike passfraser for hver klient ved å føye til en ny linje til filen med hver klient MAC-adresse og dens passphrase. Pass på at bare root har tilgang til denne filen ved å kjøre chmod 600 /etc /hostapd /wpa_psk.

Nå oppretter en sikkerhetskopi av hostapd hovedkonfigurasjonsfilen, /etc/hostapd/hostapd.conf, og beholde det som en referanse ved å kjøre mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig. Opprett en ny hostapd.conf fil og lim følgende linjer i det:


interface=ath0
bridge=br0driver=madwifi
logger_syslog=-1logger_syslog_level=2logger_stdout=-1logger_stdout_level=2debug=0dump_file=/tmp/hostapd.dumpctrl_interface=/var/run/hostapdctrl_interface_group=0ssid=My_Secure_WLAN
#macaddr_acl=1#accept_mac_file=/etc/hostapd/acceptauth_algs=3eapol_key_index_workaround=0eap_server=0wpa=3wpa_psk_file=/etc/hostapd/wpa_pskwpa_key_mgmt=WPA-PSKwpa_pairwise=CCMPstakey=0

Bytt ut deler i kursiv med informasjon som passer ditt oppsett. Hvis du ønsker å tillate bare bestemte klienter å koble til, fjerne #
karakter fra de to linjene over og kopiere MAC-adressene til de kundene til /etc /hostapd /akseptere, og gjør denne filen tilgjengelig bare ved roten (chmod 600). For mer informasjon om de alternativene som brukes, lese kommentarene i backup-filen du opprettet tidligere (hostapd.conf.orig).

Start hostapd daemon (/etc/init.d/hostapd start) og sjekk /var /log /daemon.log å kontrollere at den fungerer. Dersom nissen ikke kommer opp, øke debug nivå (alternativ debug = i hostapd.conf) til 4 og prøv igjen.

Hvis du nå søke etter tilgjengelige trådløse nettverk fra en klient, bør du se din ESSID . For å koble til WAP fra en Windows XP SP2-klient, må du installere Microsofts KB893357 patch først, som legger WPA2-støtte. På en Linux-klient, installere wpa_supplicant og lage en konfigurasjonsfil, wpa_supplicant.conf (i Debian, installert i /etc /wpa_supplicant /) som følgende:


update_config=1ctrl_interface=/var/run/wpa_supplicantctrl_interface_group=0eapol_version=1ap_scan=1fast_reauth=1network={ ssid = "  My_Secure_WLAN 
" proto = RSN key_mgmt = WPA-PSK parvise = CCMP gruppe = CCMP PSK = " PASSORDET
" prioritet = 5}

Igjen erstatte delene i kursiv for å matche ditt oppsett og kjøre wpa_supplicant -i eth1
-D wext
-c /etc/wpa_supplicant/wpa_supplicant.conf (erstatte eth1
med wlan-grensesnitt navn og wext
med riktig driver for kortet ditt, kjøre wpa_supplicant uten noen alternativer for mer informasjon). Denne kommandoen starter wpa_supplicant i forgrunnen og prøver å koble til WAP. Hvis resultatet ser ut som følgende, er du klar:


 Prøver å assosiere med 00: 11: 22: 33: 44: 55 (SSID = 'My_Secure_WLAN' freq = 0 MHz) Associated med 00: 11: 22: 33: 44: 55WPA: Key forhandlinger avsluttet med 00: 11: 22: 33: 44: 55 [PTK = CCMP GTK = CCMP] CTRL-EVENT-KOBLET - Tilkobling til 00:11 : 22: 33: 44: 55 fullført (aut) [id = 0 id_str =] 

Gi en statisk IP-adresse til det trådløse grensesnittet (eller kjøre en DHCP-klient) og prøve å pinge en vert inne LAN for å kontrollere at tilkoblingen fungerer.

Gratulerer, du har nettopp bygget selv en svært tilpasses trådløst aksesspunkt. Selv om dette oppsettet er ideelt for hjem eller små kontorbruk, trenger du noe mer robust i bedriften, med godkjenning med en RADIUS-server, eller enda bedre, en VPN. Sjekk ut min forrige artikkel om hvordan du kan lage et slikt oppsett med OpenBSD og OpenVPN.