A legtöbb vezeték nélküli hálózat az IEEE(R) 802.11 szabványon nyugszik. Az alapvető vezeték nélküli hálózatokban több olyan állomást találhatunk, amelyek egymással rádiójelek szórásával kommunikálnak a 2,4 GHz vagy 5 GHz frekvenciatartományban (noha ez a helyi viszonyoknak megfelelően változhat, és a 2,3 GHz, illetve a 4,9 GHz tartományokban is lehetséges a kommunikáció).
A 802.11 szabványú hálózatok kétféleképpen szerveződnek. Először is infrastrukturálisan, (infrastructural mode) ahol az egyik állomást kinevezzük a központnak és a többi pedig ehhez fog tartozni. Az ilyen hálózatokat BSS-nek nevezzük és az imént említett központ neve hozzáférési pont (Access Point, AP) lesz. A BSS-ben az összes kommunikáció a hozzáférési pontokon keresztül halad még abban az esetben is, amikor az egyik állomás egy másik vezeték nélküli állomással akarja felvenni a kapcsolatot. Az ilyen jellegű hálózatok másik típusú szerveződési módjában nincsenek kijelölt központok és a kommunikáció az állomások között közvetlenül zajlik. A hálózat ezen formáját IBBS-nek nevezzük, vagy ismeretebb nevén ad-hoc hálózatnak (ad-hoc network).
A 802.11 alapú hálózatok elsőként a 2,4 GHz-es sávot hódították meg, és az IEEE(R) 802.11 valamint 802.11b szabványokban rögzített protokollokat használták. Ezekben a specifikációkban megtalálhatjuk a működési frekvenciát, a közeghozzáférési réteg jellemzőinek leírását, beleértve a keretezést és az átviteli sebességeket (a kommunikáció ugyanis eltérő sebességekkel is történhet). A később kiadott 802.11a szabvány azt specifikálja, hogy az 5 GHz-es tartományban miként működjenek, ahol többek közt megtalálhatjuk a különféle jelkezelési mechanizmusokat és a nagyobb átviteli sebességek használatát. Ezt még a 802.11g szabvány követte, ami a 802.11b hálózatokkal kompatibilis módon lehetővé tette a 802.11a jelkezelésének és átviteli módszereinek használatát a 2,4 GHz-es sávban.
A 802.11 alapú hálózatok mindenféle átviteli technikáitól eltekintve többféle biztonsági megoldással találkozhatunk. Az korai 802.11 dokumentumok egy nagyon egyszerű biztonsági protokollt, a WEP-et említenek. Ez a protokoll a hálózaton mozgó adatokat egy rögzített és ismert osztott kulccsal kódolja le az RC4 titkosítással. A kommunikációhoz az összes állomásnak előre meg kell egyeznie ebben a kulcsban. Erről a sémáról időközben kiderült, hogy könnyen feltörhető és manapság már csak nagyon ritkán alkalmazzák, kivéve talán csak a kóbor felhasználók elijesztésére. A jelenleg érvényes biztonsági előírásokat az IEEE(R) 802.11i specifikáció adja meg, amely új kriptográfiai titkosításokat definiál valamint egy további protokollt az állomások azonosítására és a kulcsok cseréjére. Emellett a titkosításhoz használt kulcsok időszakosan frissülnek és külön eszközök állnak rendelkezésre a betörési kísérletek észlelésére (és azok elhárítására). A vezeték nélküli hálózatok esetében másik elterjedt titkosítási protokoll a WPA. Ez igazából 802.11i elődjének tekinthető, amelyet egy ipari csoport definiált, amíg a 802.11i minősítés alatt állt. A WPA ennek megfelelően teljesíti a 802.11i szabvány elvárásainak egy részét és kifejezetten a régi hardverek számára készült. A WPA működéséhez egyedül a TKIP titkosításra van szükségünk, amely az eredeti WEP titkosításból származik. A 802.11i engedi a TKIP használatát, de az adatok kódolására egy erősebb titkosítás, az AES-CCM ismeretét is igényli. (Az AES a WPA esetében nem kell, mivel a régi eszközök esetében túlságosan költségesnek ítélték meg a használatát.)
A fenti szabványokon kívül a 802.11e a másik fontos szabvány, amire tekintettel kell lennünk. Ez írja le a 802.11 hálózatokon a multimédiás alkalmazások közvetítéséhez, mint például a videók valós idejű lejátszásához vagy a VoIP (voice over IP) megvalósításához tartozó protokollokat. A 802.11i szabványhoz hasonlóan a 802.11e is magában foglal egy előzetes specifikációt, amelyet WME (később pedig már WMM)-nek neveznek. Ezt szintén egy ipari csoport definiálta a 802.11e részeként, amivel a 802.11e végső elfogadásáig tudják a multimédiás igényeket kiszolgálni. Amit a 802.11e és WME/WMM megoldásaival kapcsolatban érdemes tudnunk: a QoS (Quality of Service) protokoll és más egyéb fejlett közeghozzáférési protokollok segítségével a vezeték nélküli hálózatokban lehetővé teszik a forgalom prioritás szerinti ütemezését. Ezen protokollok megfelelő implementációjának segítségével tehát a fontosabb adatok nagy sebességű küldését és áramoltatását vagyunk képesek elérni.
A FreeBSD a 6.0 verzió óta ismeri a 802.11a, 802.11b és 802.11g szabványokon alapján működő hálózatokat. A WPA és 802.11i biztonsági protokollok (a 11a, 11b és 11g szabványok bármelyike esetén) hasonlóképpen támogatottak, valamint a WME/WMM protokollok működéséhez szükséges QoS csak bizonyos vezeték nélküli eszközök esetében.
A vezeték nélküli hálózatok használatához egy vezeték nélküli hálózati kártyára lesz szükségünk, valamint a rendszermagban is be kell állítani ehhez a megfelelő támogatást. Ez utóbbit több különböző modulra szedték szét, és ezek közül csak azokat kell beállítani, amelyeket tényleg használni is fogunk.
Először is tehát kell egy vezeték
nélküli eszköz. Az elterjedtebb
típusaik általában az Atheos által
gyártott alkatrészeket tartalmazzák. Az
ilyen fajtájú eszközöket az
ath(4) meghajtó kezeli, melyet úgy tudunk a
rendszer indításakor betölteni, ha a
/boot/loader.conf
állományba felvesszük a következő
sort:
if_ath_load="YES"
Az Atheos meghajtója három különálló részre oszlik: maga a meghajtó (ath(4)), a hardveres réteg, ami a chipfüggő funkciókat kezeli (ath_hal(4)) és a keretek küldésével kapcsolatban az átviteli sebesség megválasztását lehetővé tevő algoritmus (ez itt most az ath_rate_sample). Amikor ezt a támogatást modulként töltjük be, ezek a függőségek automatikusan feloldódnak. Ha az Atheos eszközök helyett valamelyik másikhoz tartozó modult szeretnénk használni, akkor például az Intersil Prism esetében a wi(4) meghajtót kell megadnunk:
if_wi_load="YES"
A leírás további részeiben az ath(4) eszközt fogjuk használni, minden más esetben ennek a nevét kell csak lecserélünk a példákban. A rendszerben elérhető vezeték nélküli meghajtók és az általuk támogatott kártyák listája a FreeBSD Hardverjegyzetekben található. Ezek a jegyzetek a különböző architektúrákra és kiadásokhoz a FreeBSD holnapjáról, a Kiadási jegyzetek oldalról érhetőek el. Ha a vezeték nélküli eszközünkhöz nem létezik natív FreeBSD-s meghajtó, akkor az NDIS meghajtó segítségével akár közvetlenül a Windows(R)-os meghajtóját is használhatjuk.
FreeBSD 7.X
esetén az
eszközmeghajtó
beállításával együtt a 802.11
hálózatok támogatását is be
kell töltenünk a rendszermagba. Ez az ath(4)
meghajtó esetében a legalább a
wlan(4), wlan_scan_ap
és
wlan_scan_sta
modulok
betöltését jelenti. A wlan(4) modul a
vezetéknélküli eszköz
meghajtóprogramjával együtt
töltődik be, míg a többi modult a
/boot/loader.conf
állomány
használatával kell a
rendszerindítás során
betöltenünk:
wlan_scan_ap_load="YES" wlan_scan_sta_load="YES"
A FreeBSD 8.0 kiadástól kezdődően ezek a modulok részei a wlan(4) meghajtónak, amely a hálózati kártya meghajtójával együtt mindig automatikusan betöltődik.
Emellett még azokra a modulokra is
szükségünk van, amelyek a használni
kívánt biztonsági protokollokhoz
nyújtanak kriptográfiai
támogatást. Ezek hivatalosan a wlan(4)
modul kérésére automatikusan
betöltődnek, azonban itt most manuálisan
állítjuk be. Erre a célra a
következő modulokat találjuk:
wlan_wep(4), wlan_ccmp(4) és
wlan_tkip(4). A wlan_ccmp(4) és
wlan_tkip(4) meghajtók csak akkor fognak kelleni,
ha a WPA és/vagy a 802.11i biztonsági
protokollokat használjuk. Amennyiben a
hálózatunkon nincs titkosítás,
akkor még a wlan_wep(4) támogatás
sem kell. Ezeket a modulok úgy lehet betölteni a
rendszerindításnál, ha felvesszük a
következő sorokat a
/boot/loader.conf
állományba:
wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"
Miután ezt megcsináltuk, egyszerűen csak indítsuk újra a gépünket. Ha még nem akarjuk újraindítani a gépet, akkor a kldload(8) parancs segítségével akár kézzel is betölthetjük az előbb felsorolt modulokat.
Ha nem akarunk modulokat használni, a működéshez szükséges meghajtókat a rendszermagba is be tudjuk építeni a következő sorok megadásával a rendszermag beállításait tartalmazó állományban:
device wlan # a 802.11 támogatása device wlan_wep # 802.11 WEP támogatás device wlan_ccmp # 802.11 CCMP támogatás device wlan_tkip # 802.11 TKIP támogatás device wlan_amrr # AMRR forgalomvezérlési algoritmus device ath # Atheros IEEE 802.11 vezeték nélküli hálózati meghajtó device ath_hal # az Atheros meghajtó hardveres rétege options AH_SUPPORT_AR5416 # az AR5416 tx/rx leírók engedélyezése device ath_rate_sample # SampleRate forgalomvezérlési algoritmus
Hozzátesszük, hogy az alábbi sorok
hozzáadása a FreeBSD 7.X
változatában kötelező, más
verzióknál viszont nem:
device wlan_scan_ap # a 802.11 AP módú keresés device wlan_scan_sta # a 802.11 STA módú keresés
Az előbbiek megadásával fordítsuk újra és telepítsük a rendszermagot, majd indítsuk újra a számítógépünket.
Miután a rendszerünk újra elindult, a rendszer indítás során generált üzenetei között találnunk kell valamennyi információt a felismert vezeték nélküli eszközökről. Például:
ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1 ath0: [ITHREAD] ath0: AR2413 mac 7.9 RF2413 phy 4.5
Általában az infrastrukturális avagy a BBS mód használata a gyakori. Ebben a működési módban adott számú vezeték nélküli hozzáférési pont csatlakozik a hagyományos hálózatra. Mindegyik vezeték nélküli hálózatnak saját neve van, amit a hálózat SSID-jének hívunk. A vezeték nélküli kliensek ezekhez a vezeték nélküli hozzáférési pontokhoz kapcsolódnak.
A hálózatok kereséséhez az
ifconfig
paranccsal tudunk nekifogni.
Egy ilyen kérés kiszolgálása
eltarthat néhány pillanatig, mivel ekkor a
rendszernek végig kell bóklásznia az
összes elérhető frekvenciát
és azokon hozzáférési pontok
után kutatni. Egyedül a
rendszeradminisztrátor kezdeményezheti ezeket
a kereséseket:
#
ifconfig wlan0 create wlandev ath0
#
ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPA
Csak up
jelzésű
felületen tudunk hálózatokat keresni.
További keresésekre már nincs
szükség a felület up
állapotban tartásához.
FreeBSD 7.X
esetén
a wlan0
eszköz helyett közvetlenül az adott
eszköz nevét kell megadnunk,
például
ath0
.
Az iménti sorokat ennek megfelelően
tehát ebben az esetben így kell
értelmezni:
#
ifconfig ath0 up scan
A leírás további
részében a
FreeBSD 7.X
felhasználóknak ezen séma
alapján kell használniuk a parancsokat
és a konfigurációs
beállításokat.
A keresés során keletkező
listában láthatjuk megtalált BBS vagy
IBBS fajtájú hálózatokat. A
hálózatok neve és
SSID
-ja mellett még megjelenik egy
BSSID
oszlop is, ahol a
hozzáférési pontok MAC-címe
szerepel. A CAPS
oszlop az egyes
állomások tulajdonságait adja
meg:
E
Extended Service Set (ESS): az állomás egy infrastrukturális vagyis BBS hálózat része.
I
IBSS/ad-hoc hálózat: az állomás egy ad-hoc hálózat része.
P
Privacy: a BBS-en belül minden keretet titkosítani kell. Tehát a BSS arra kötelezi az állomást, hogy WEP, TKIP vagy AES-CCMP titkosítás használatával kódolja a hálózat tagjai között közlekedő kereteket.
S
Short Preamble: a hálózatban rövid bevezetőjeleket használnak (a 802.11b High Rate/DSSS PHY előírásai szerint), ahol a szokványos 128 bites szinkronizációs mező hossza csak 56 bit.
s
Short Slot Time: a 802.11g hálózat rövid slotidőt használ, mivel nem találhatóak benne régi (802.11b szabványú) állomások.
A jelenleg ismert hálózatok listáját így tudjuk lekérdezni:
#
ifconfig wlan0 list scan
Ezt az információt maga az adapter
automatikusan, vagy a felhasználó tudja
frissíteni a scan
kérés kiadásával. Az elavult
adatok maguktól törlődnek a
gyorsítótárból, így
idővel a lista zsugorodni fog, hacsak nem keresünk
folyamatosan hálózatokat.
Ebben a szakaszban arra mutatunk példákat, hogy miként tudunk FreeBSD alatt titkosítás nélkül használni egy vezeték nélküli hálózati kártyát. Miután elsajátítottuk az itt szereplő ismereteket, határozottan javasoljuk, hogy a vezeték nélküli hálózatunkat WPA használatával állítsuk be.
A vezeték nélküli hálózatok beállítása három elemi lépésből épül fel: a hozzáférési pont kiválasztása, az állomásunk hitelesítése és az IP-cím beállítása. A következőkben ezeket a lépéseket vitatjuk meg.
A legtöbb esetben hagyjuk, hogy a rendszer
válassza ki magának a
különböző heurisztikák
alapján a leginkább megfelelő
hozzáférési pontot. Ez az
alapértelmezett tevékenység, amikor
aktiváljuk a felületet vagy valamilyen
más módon, például
az/etc/rc.conf
állományból hivatkozunk
rá:
wlans_ath0="wlan0" ifconfig_wlan0="DHCP"
A korábban említettek szerint a
FreeBSD 7.X
felhasználóknak csak a
kártyát kell
beállítani:
ifconfig_ath0="DHCP"
Ha viszont több hozzáférési pont közül mi magunk akarunk kiválasztani egyet, akkor ezt az SSID megadásával tehetjük meg:
wlans_ath0="wlan0"
ifconfig_wlan0="ssid saját_ssid
DHCP"
Amikor olyan környezetben vagyunk, ahol több hozzáférési pontnak is megegyezik az SSID-ja (gyakran így próbálják egyszerűsíteni azt, hogy automatikusan váltani lehessen köztük), akkor szükségünk lehet ezt egy adott eszközhöz hozzárendelni. Ebben az esetben a hozzáférési pont BSSID-ját is definiálni kell (és az SSID-t akár el is hagyhatjuk):
wlans_ath0="wlan0" ifconfig_wlan0="ssidsaját_ssid
bssidxx:xx:xx:xx:xx:xx
DHCP"
Más módokon is képesek vagyunk
szabályozni a hozzáférési
pontok megválasztását,
például a rendszerünk által
vizsgált frekvenciasávok
megadásával. Ez olyankor tud hasznos lenni,
ha többsávos vezeték
nélküli kártyánk van, és
az összes tartomány
végigpásztázása
túlságosan sok időt venne el. Ezt a
művelet a mode
paraméter
megadásával lehet egy konkrét
sávra leszűkíteni,
például a
wlans_ath0="wlan0" ifconfig_wlan0="mode11g
ssidsaját_ssid
DHCP"
beállítás hatására
a kártya 802.11g módban fog üzemelni,
ami kizárólag csak 2,4 GHz-es
frekvenciákon használható, így
az 5 GHz-es csatornákat egyszerűen
figyelmen kívül hagyjuk. Ugyanezt a
channel
paraméterrel is meg tudjuk
oldani, mivel így a működést egy
adott frekvenciára korlátozzuk, valamint a
chanlist
paraméterrel, ahol a
pásztázandó csatornákat
sorolhatjuk fel. Ezekről a
paraméterekről részletesebb
leírást az ifconfig(8) man oldalon
találhatunk.
Miután sikeresen kiválasztottuk a számunkra megfelelő hozzáférési pontot, az adatok küldéséhez az állomásunknak valamilyen módon hitelesítenie kell magát. A hitelesítés több módon történhet. Erre a leggyakrabban alkalmazott sémát nyílt hitelesítésnek (open authentication) nevezik, ahol a hálózathoz tetszőleges állomás csatlakozhat és kommunikálhat vele. Ezt a típusú hitelesítést akkor érdemes használni, amikor a vezeték nélküli hálózatunkat teszteljük. Más sémákban az adatfolyam megindításához egy titkosítási kézfogás szükséges, vagy előre megosztott kulcsok esetleg jelszavak segítségével, vagy bonyolultabb sémák esetében itt még olyan különböző háttérszolgáltatások is megjelennek, mint például a RADIUS. A legtöbb felhasználó a nyílt hitelesítést használja, ami egyben az alapértelmezés is. A másik legelterjedtebb beállítás a WPA-PSK, avagy WPA Personal, amelyről lentebb még szólni fogunk.
Ha Apple(R) AirPort(R) Extreme Base Station
típusú hozzáférési
pontunk van, akkor az osztott kulcsú
hitelesítés mellett egy WEP kulcsot is be
állítanunk. Ezt az
/etc/rc.conf
állományban vagy a wpa_supplicant(8)
programban tehetjük meg. Ha egyetlen AirPort(R)
bázisállomásunk van, akkor az
elérést valahogy így tudjuk
beállítani:
wlans_ath0="wlan0" ifconfig_wlan0="authmode shared wepmode on weptxkey1
wepkey01234567
DHCP"
Általánosságban véve
elmondhatjuk, hogy az osztott kulcsú
hitelesítést inkább
kerüljük el, mivel WEP kulcsok
használatára alapszik és
ráadásul olyan módon, hogy nagyon
könnyű feltörni. Ha már
mindenképpen a WEP mellett kell
döntenünk (például a
régebbi eszközökkel így tudunk
csak kompatibilisek maradni), akkor jobban
járunk, ha a nyílt
hitelesítéshez alkalmazzuk. A WEP
használatát érintő
további információkat a 31.3.3.1.4. szakasz - WEPban
találjuk.
Miután kiválasztottunk egy
hozzáférési pontot és
beállítottuk a hitelesítés
paramétereit, egy IP-cím is kelleni fog a
kommunikációhoz. Az esetek
túlnyomó részében DHCP-n
keresztül kapunk IP-címet a vezeték
nélküli kapcsolatunkhoz. Ezt úgy
érhetjük el, ha egyszerűen megnyitjuk az
/etc/rc.conf
állományt
és az alábbihoz hasonló módon
felvesszük a DHCP
paramétert az eszközünk
beállításaihoz:
wlans_ath0="DHCP" ifconfig_wlan0="DHCP"
Így már készen is állunk a vezeték nélküli felület használatára:
#
/etc/rc.d/netif start
Ahogy a felület
működőképessé válik,
az ifconfig
parancs
segítségével ellenőrizni is
tudjuk az ath0
felület
állapotát:
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g status: associated ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76 country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst
A status: associated
azt jelenti,
hogy sikeresen csatlakoztunk egy vezeték
nélküli hálózathoz (jelen
esetben ez a dlinkap
). A
bssid 00:13:46:49:41:76
rész a
hozzáférési pont
MAC-címét tartalmazza. Az
authmode OPEN
pedig arról
számol be, hogy a kommunikáció nem
titkosított.
Ha valami okból nem tudjuk az
IP-címünket DHCP szerveren keresztül
lekérni, beállíthatunk
rögzített IP-címet is. Ehhez nem kell
mást tennünk, mint a korábban
bemutatott DHCP
kulcsszót
kicserélni egy konkrét címmel. A
hozzáférési ponthoz megadott
többi paramétert azonban
feltétlenül hagyjuk meg:
wlans_ath0="wlan0" ifconfig_wlan0="inet192.168.1.100
netmask255.255.255.0
ssidsaját_ssid
i"
A WPA (Wi-Fi Protected Access, vagyis védett wi-fi hozzáférés) a 802.11 szabványokban használatos biztonsági protokoll, amelyet a WEP gyengeségeinek és megfelelő hitelesítésének ellensúlyozására dolgoztak ki. A WPA a 802.1X hitelesítési protokolljait erősíti és az adat sértetlenségének megőrzésére a WEP helyett több titkosítási algoritmust is felhasznál. A WPA által igényelt egyetlen titkosítás a TKIP (Temporary Key Integrity Protocol, vagyis az ideiglenes kulcs integritási protokoll), amely a WEP által az integritás ellenőrzésére és a bejutások észlelésére és azok reagálására szánt alap RC4 titkosítást bővíti ki. A TKIP a régebbi hardvereken csupán szoftveres módosítással működőképessé tehető. Ez a kompromisszum a védelmet ugyan növeli, de még mindig kevés a támadások megfelelő elhárításához. A WPA a TKIP mellett tartalmazza még az AES-CCMP titkosítást is, és ennek a használata javasolt. Ezt a specifikációt gyakran WPA2 (vagy RSN) néven emlegetik.
A WPA definiál hitelesítési és titkosítási protokollokat. A hitelesítés általában a következő két technika egyike alapján történik: vagy 802.1X és egy háttérszolgáltatás, például a RADIUS segítségével, vagy egy előre megosztott kulcsot alkalmazó minimális kézfogással az állomás és a hozzáférési pont között. Az előbbit gyakran WPA Enterprise-nak, míg az utóbbit WPA Personalnak hívják. Mivel a legtöbben nem állítanak be egy komplett RADIUS alapú szervert a vezeték nélküli hálózatukhoz, ezért a WPA-PSK a WPA leginkább elterjedten használt változata.
A vezeték nélküli kapcsolat és
a hitelesítés (kulcs alapján vagy
szerverrel) vezérlését a
wpa_supplicant(8) segédprogram végzi.
Ennek a programnak működéséhez egy
konfigurációs állományra van
szüksége, amely az
/etc/wpa_supplicant.conf
néven
érhető el. Erről az
állományról bővebb
információt a wpa_supplicant.conf(5) man
oldalán lelhetünk.
A WPA-PSK, más néven WPA-Personal, egy adott jelszó alapján generált előre megosztott kulcssal (pre-shared key, PSK) működik, amit a vezeték nélküli hálózatokban mesterkulcsént használnak. Ez azt jelenti, hogy minden egyes vezeték nélküli felhasználó ugyanazon a kulcson osztozik. A WPA-PSK olyan kis méretű hálózatok esetében megfelelő, ahol a hitelesítést elvégző szerver használata nem lehetséges vagy nem oldható meg.
Mindig igyekezzünk erős jelszavakat használni, melyek kellően hosszúak és sokféle karaktert tartalmaznak, és így nehezebben fejthetőek meg vagy törhetőek fel.
Először az
/etc/wpa_supplicant.conf
állományban állítsuk be az
SSID-t és a hálózatunkhoz
tartozó előre megosztott kulcsot:
network={ ssid="freebsdap" psk="freebsdmall" }
Ezután az /etc/rc.conf
állományban jelezzük, hogy a
vezeték nélküli eszközt a WPA
segítségével állítjuk
be és az IP-címet a DHCP szervertől
kérjük el:
wlans_ath0="wlan0" ifconfig_ath0="WPA DHCP"
Innentől már fel is tudjuk éleszteni a felületet:
#
/etc/rc.d/netif start
Starting wpa_supplicant. DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6 DHCPOFFER from 192.168.0.1 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect OFDM/36Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
Kézzel is megpróbálhatjuk
elindítani az előbb
elkészített
/etc/wpa_supplicant.conf
állomány használatával:
#
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz) Associated with 00:11:95:c3:0d:ac WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP] CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]
A következő parancs a
dhclient
indítása legyen,
amivel megszerezzük a DHCP szervertől az
IP-címünket:
#
dhclient wlan0
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.254 -- renewal in 300 seconds.#
ifconfig wlan0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
Ha az /etc/rc.conf
állományban szerepel a
ifconfig_wlan0="DHCP"
sor, akkor
egyáltalán nem szükséges a
dhclient
parancs manuális
kiadása, mivel a dhclient
magától el fog indulni, miután a
wpa_supplicant
egyeztette a
kulcsokat.
Amikor a DHCP nem használható,
megadhatunk a statikus IP-címet is, miután a
wpa_supplicant
sikeresen
lebonyolította a hitelesítést:
#
ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
#
ifconfig wlan0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
Ha egyáltalán nem használunk DHCP szervert, akkor nekünk kell beállítani az alapértelmezett átjárót és a névszervert is:
#
route add default alapértelmezett_átjáró
#
echo "nameserver névszerver" >> /etc/resolv.conf
A másik mód, ahogy a WPA használható, az a 802.1X hitelesítési szerveren keresztül történik, és ebben az esetben a WPA neve WPA-Enterprise. Ez sokkal biztonságosabb a WPA-Personal előre kiosztott kulcsaival szemben. A WPA-Enterprise az EAP (Extensible Authentication Protocol, azaz Bővíthető hitelesítési protokoll) használatán alapszik.
Az EAP önmaga nem végez titkosítást, mivel úgy alakították ki, hogy magát az EAP protokollt kell egy titkosított járaton keresztül bújtatni. Az EAP hitelesítési módszereinek több típusát is kidolgozták, melyek közül a legismertebbek az EAP-TLS, EAP-TTLS valamint a EAP-PEAP.
Az EAP-TLS (EAP szállítási rétegbeli védelemmel) a vezeték nélküli világban egy nagyon jól támogatott hitelesítési protokoll, mivel ez volt az első EAP módszer, amit a Wi-fi szövetség jóváhagyott. Az EAP-TLS működéséhez három tanúsítvány kell: egy hitelesítő hatóságtól (Certificate Authority, CA), egy a hitelesítést végző szervertől és egy a klienstől. Ezzel az EAP módszerrel mind a hitelesítő szerver, mind a vezeték nélküli kliens külön képviselik a saját tanúsítványaikat, és ezeket a szervezetünket hitelesítő hatóság aláírása alapján ellenőrzik.
A korábbiaknak megfelelően a
beállításokat szintén az
/etc/wpa_supplicant.conf
állományon keresztül
végezzük el:
network={ ssid="freebsdap"proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}
Ez a mező adja meg a hálózat nevét (SSID). | |
Itt az RSN (IEEE(R) 802.11i), vagyis a WPA2 protokollt használjuk. | |
A | |
Ebben a mezőben az EAP módszert nevezzük meg a kapcsolathoz. | |
Az | |
A | |
A | |
A | |
A |
Az /etc/rc.conf
állományba vegyük fel a
következő sorokat:
wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"
A következő lépés a
felület felébresztése lesz az
rc.d
eszköz
segítségével:
#
/etc/rc.d/netif start
Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
Természetesen, ahogy azt már az
előbbiekben is megmutattuk, mindezt manuálisan
is el tudjuk végezni a
wpa_supplicant
és az
ifconfig
parancsok
segítségével.
Az EAP-TLS használatakor mind a hitelesítést végző szervernek és kliensnek is kell tanúsítvány, azonban az EAP-TTLS ( szállítási rétegbeli védelem EAP tunnelen keresztül) esetében a kliensnél ez elhagyható. Ez a módszer nagyjából olyan, mint amit a webes oldalak csinálnak, ahol a webszerverek egy védett SSL tunnelt képeznek még akkor is, amikor a látogatók nem rendelkeznek kliens oldali tanúsítvánnyal. Az EAP-TTLS egy titkosított TLS tunnelen keresztül védi le a hitelesítési adatok forgalmát.
Ezt ismét az
/etc/wpa_supplicant.conf
állományon keresztül tudjuk
beállítani:
network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=TTLSidentity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}
Ebben a mezőben az EAP módszert állítjuk be a kapcsolathoz. | |
Az | |
A | |
A | |
Ebben a mezőben a titkosított TLS tunnelben használt hitelesítési módszer nevezzük meg. Jelen esetünkben ez az EAP MD5-Challenge használatával. A "belső hitelesítés" fázisát gyakran csak "phase2"-nak (2. fázisnak) hívják. |
Mindezek mellett még a következő
sorokat is vegyük fel az
/etc/rc.conf
állományba:
wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"
Ezután hozzuk működésbe a felületet:
#
/etc/rc.d/netif start
Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
A PEAP (Védett EAP) az EAP-TTLS egyik alternatívájaként jött létre. A PEAP módszernek két változata van, melyek közül a leggyakoribb a PEAPv0/EAP-MSCHAPv2. A leírás további részében a PEAP elnevezéssel erre az EAP módszerre fogunk hivatkozni. A PEAP az EAP-TLS után a leginkább alkalmazott szabvány, más szóval, ha a hálózatunkban többféle operációs rendszer is megtalálható, akkor az EAP-TLS után valószínűleg a PEAP lesz a másik, amit mindegyik ismerni fog.
A PEAP hasonló az EAP-TTLS-hez: szerver oldali tanúsítványokkal hitelesíti a klienseket és titkosított TLS tunnelt hoz létre a kliens és a hitelesítést végző szerver között, amivel segíti megóvni a hitelesítési információkat. Biztonság szempontjából az EAP-TTLS és a PEAP között az a különbség, hogy a PEAP hitelesítés a felhasználói nevet titkosítatlanul küldi és csak a jelszó megy át a titkosított TLS tunnelen. Az EAP-TTLS egyaránt a TLS tunnelt használja mind a felhasználói név, mind a jelszó esetében.
Az EAP-PEAP beállításait az
/etc/wpa_supplicant.conf
állományba kell felvenni:
network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=PEAPidentity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
Ebben a mezőben megadjuk, az EAP módszert használjuk a kapcsolathoz. | |
Az | |
A | |
A | |
Ez a mező a hitelesítés
első fázisának (vagyis a TLS
tunnel) paramétereit tartalmazza. A
hitelesítést végző
szervertől függően a
hitelesítéshez meg kell adnunk bizonyos
címkéket. A legtöbb esetben a
címke a "kliens oldali EAP
titkosítás" lesz, amit a
| |
Ebben a mezőben a titkosított TLS
tunnelben alkalmazott hitelesítést
protokollt nevezzük meg. A PEAP esetében
ez az |
A következőket kell még
hozzátennünk az
/etc/rc.conf
állományhoz:
wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"
Ezután már működésbe is hozhatjuk a felületet:
#
/etc/rc.d/netif start
Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.20 bound to 192.168.0.254 -- renewal in 300 seconds. wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst roaming MANUAL
A WEP (Wired Equivalent Privacy, azaz kábellel egyenértékű titkosság) az eredeti 802.11 szabvány része. Nincs külön hitelesítési mechanizmusa, csupán a hozzáférés-vezérlés egy gyenge formájával találkozhatunk benne, amit azonban könnyen fel lehet törni.
A WEP ifconfig
parancs
használatán keresztül
állítható be:
#
ifconfig wlan0 create wlandev ath0
#
ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \ ssid saját_hálózat wepmode on weptxkey 3 wepkey 3:0x3456789012
A weptxkey
utal arra, hogy a
küldés során WEP kulcsot
használunk. Itt most egy harmadik kulcsot
használtunk, amelynek egyeznie kell a
hozzáférési pont
beállításaival. Ha nem tudjuk
pontosan, hogy milyen kulcsot használ a
hozzáférési pont, akkor
próbálkozzunk az 1
érték (vagyis az első kulcs)
megadásával.
A wepkey
után
következik a kiválasztott WEP kulcs.
index:kulcs
alakban kell
megadni, és ha itt nem adunk meg indexet, akkor
azzal az 1
indexű kulcsot
állítjuk be. Úgyis
fogalmazhatnánk, hogy az indexet csak olyankor
kell megadni, amikor nem az első kulcsot akarjuk
használni.
A 0x3456789012
értéket a
hozzáférési pontnál
beállított kulcsra kell
beállítani.
Ha érdekelnek minket a további részletek, akkor bátran lapozzuk fel az ifconfig(8) parancs man oldalát.
A wpa_supplicant
segédprogramot is bevonhatjuk a vezeték
nélküli felületek WEP alapú
használatába. A fenti példát a
következő módon tudjuk leírni az
/etc/wpa_supplicant.conf
állományban:
network={ ssid="sajat_halozat" key_mgmt=NONE wep_key3=3456789012 wep_tx_keyidx=3 }
Majd:
#
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz) Associated with 00:13:46:49:41:76
Az IBSS vagy más néven ad-hoc módot
pont-pont típusú kapcsolatok
kialakítására tervezték.
Például, ha az A
és a
B
gépek között egy ad-hoc
típusú hálózatot akarunk
létesíteni, akkor egyszerűen csak ki kell
választanunk két IP-címet és egy
SSID-t.
Így állítjuk be az A
gépet:
#
ifconfig wlan0 create wlandev ath0 wlanmode adhoc
#
ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:11:95:c3:0d:ac inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc> status: running ssid freebsdap channel 2 (2417 MHz) bssid 02:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst
Az adhoc
paraméterrel utalunk
arra, hogy a felület most IBSS módban
működik.
A B
gépen ezután már
képesek vagyunk észlelni az A
gépet:
#
ifconfig wlan0 create wlandev ath0 wlanmode adhoc
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME
A kimenetben szereplő I
is
megerősíti, hogy az A
gépet
ad-hoc módban érjük el. Így
már csak a B
gépet kell
beállítanunk egy másik
IP-címmel:
#
ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc> status: running ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst
Most már mind az A
és
mind a B
készen áll az adatok
cseréjére.
A FreeBSD képes hozzáférési pontként (Access Point, AP) is üzemelni, így nem kell külön hardveres hozzáférési pontot vásárolnunk vagy ad-hoc hálózatot használnunk. Ez különösen akkor hasznos, amikor a FreeBSD gépet egy másik hálózat (például az internet) felé állítottuk be átjárónak.
Mielőtt nekiállnánk a FreeBSD-s gépünket hozzáférési pontnak beállítani, egy olyan rendszermagra lesz szükségünk, amely tartalmazza a megfelelő vezeték nélküli támogatást a kártyánkhoz. Emellett az alkalmazni kívánt biztonsági protokollok támogatását is bele kell építenünk. Ennek részleteit lásd a 31.3.2. szakasz - Kezdeti beállításokban.
Jelenleg az NDIS meghajtón keresztül használt Windows(R)-os meghajtók nem teszik lehetővé hozzáférési pontok kialakítását. Egyedül a vezeték nélküli eszközök natív FreeBSD-s meghajtói ismerik a hozzáférési pont módot.
Ahogy betöltöttük a vezeték nélküli hálózatok támogatását, egyből ellenőrizni is tudjuk, hogy a vezeték nélküli eszközünk használható-e hozzáférési pontként (avagy "hostap" módban):
#
ifconfig wlan0 create wlandev ath0
#
ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRA> crytocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>
A fenti kimenetben láthatjuk a
kártyánk tulajdonságait. A
HOSTAP
szó arról
tanúskodik, hogy a vezeték nélküli
kártyánk képes
hozzáférési pontként viselkedni.
Mellette még a különféle
támogatott titkosítási módszerek
is láthatóak: WEP, TKIP, AES stb. Ezekből
az információkból tudjuk
kideríteni, hogy a hozzáférési
pontunkon milyen titkosítási protokollokat
tudunk használni.
A vezeték nélküli eszközünket innentől már csak hozzáférési pontnak állíthatjuk át a viruális hálózati eszköz létrehozásakor, ezért a korábban létrehozott eszközt ehhez először meg kell semmisítenünk:
#
ifconfig wlan0 destroy
Ezzel létrejön a megfelelő beállításokkal, majd ezekhez állítjuk még be a többit:
#
ifconfig wlan0 create wlandev ath0 wlanmode hostap
#
ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1
Az ifconfig
parancs ismételt
használatával le is tudjuk kérdezni az
wlan0
felület
állapotát:
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: running ssid freebsdap channel 1 (2412 Mhz) bssid 00:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
A hostap
paraméterből
kiderül, hogy a felület
hozzáférési pont módban
van.
Ha az /etc/rc.conf
állományban megadjuk a következő
sorokat, akkor a felület beállítása
a rendszer indításakor magától
megtörténik:
wlans_ath0="wlan0" create_args_wlan0="wlanmode hostap" ifconfig_wlan0="inet192.168.0.1
netmask255.255.255.0
ssidfreebsdap
mode 11g channel1
"
Habár a hozzáférési pontok működtetése nem javasolt hitelesítés vagy titkosítás nélkül, ebben a módban könnyen meg tudunk győződni a hozzáférési pontunk használhatóságáról. Ez a típusú konfiguráció ezenkívül még fontos szerepet játszik a klienseken felbukkanó hibák kiszűrésében is.
Miután sikerült az előbbiekben bemutatottak alapján beállítani a hozzáférési pontunkat, egy másik vezeték nélküli gépről rögtön meg is kezdhetjük a keresését:
#
ifconfig ath0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME
Láthatjuk, hogy a kliens megtalálta a hozzáférési pontot és tudunk is rá kapcsolódni:
#
ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst
Ebben a szakaszban a FreeBSD-s hozzáférési pontunkat WPA titkosítással állítjuk be. A WPA és a WPA alapú kliensek beállításának részleteit a 31.3.3.1.3. szakasz - WPAban találjuk.
A WPA titkosítást használó hozzáférési pontokon a hostapd démon foglalkozik a kliensek hitelesítésével és a kulcsok kezelésével.
A továbbiakban az összes
beállítást egy olyan FreeBSD-s gépen
végezzük el, amely
hozzáférési pontként
működik. Ahogy sikerült
beállítanunk a hozzáférési
pont módot, az /etc/rc.conf
állományban a következő sor
segítségével könnyen meg tudjuk
oldani, hogy az hostapd
démon a rendszerrel együtt magától
elinduljon:
hostapd_enable="YES"
Mielőtt megpróbálnánk beállítani a hostapd démont, ne felejtsük el elvégezni a 31.3.5.1. szakasz - Alapvető beállításokban említett alapvető beállításokat sem.
A WPA-PSK használatát olyan kis méretű hálózatok számára szánják, ahol egy külön hitelesítő szervert alkalmazása nem lehetséges vagy nem kívánatos.
A konfiguráció az
/etc/hostapd.conf
állományon keresztül
történik:
interface=wlan0debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=1
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
Ebben a mezőben jelöljük ki a hozzáférési pontként használt vezeték nélküli felületet. | |
Ebben a mezőben adjuk meg a
hostapd futtatása
során keletkező üzenetek
részletességét. A
példában szereplő
| |
A | |
A | |
Ebben a mezőben a hálózat nevét állítjuk be. | |
A | |
A Figyelem:Lehetőleg mindig erős jelszavakat használjunk, amelyek kellően hosszúak és sokféle karaktert tartalmaznak, így nehezebben fejthetőek meg vagy törhetőek fel. | |
A | |
A |
A következő lépés a hostapd elindítása:
#
/etc/rc.d/hostapd forcestart
#
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: associated ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100
A hozzáférési pont mostantól
működik, innentől a kliensek már
képesek csatlakozni hozzá, bővebben
lásd a 31.3.3.1.3. szakasz - WPAban. A
hozzáférési ponthoz tartozó
állomásokat az ifconfig
wlan0 list sta
paranccsal
tudjuk listázni.
A WEP titkosítást nem javasoljuk a hozzáférési pontok esetében, mivel nem tartalmaz semmilyen hitelesítési mechanizmust és könnyen feltörhető. Egyes régebbi vezeték nélküli kártyák azonban csak a WEP által nyújtott védelmet ismerik, ezért az ilyenek csak olyan hozzáférési pontokhoz tudnak csatlakozni, amelyek vagy nem használnank hitelesítést és titkosítást, vagy erre a WEP protokollt használják.
A vezeték nélküli eszközt tegyük hozzáférési pont módba és állítsuk be neki a megfelelő SSID-t és IP-címet:
#
ifconfig wlan0 create wlandev ath0 wlanmode hostap
#
ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \ ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g
A weptxkey
beállítás után adjuk meg a
küldéshez használt WEP kulcsot. Itt a
harmadik kulcsot adtuk meg (vegyük észre, hogy
a kulcsok számozása az 1
értékkel kezdődik). Ez a
paramétert az adatok tényleges
titkosításához kell megadni.
A wepkey
a kiválasztott WEP
kulcs beállítását jelöli,
aminek a formátuma
index:kulcs
. Ha itt nem adunk
meg indexet, akkor automatikusan az első kulcsot
állítjuk be. Ezért talán
mondanunk sem kell, hogy az indexet csak akkor kell
megadni, ha nem az első kulcsot akarjuk
használni.
A wlan0
felület
állapotának megtekintéséhez adjuk
ki megint az ifconfig
parancsot:
#
ifconfig wlan0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 ether 00:11:95:c3:0d:ac media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> status: running ssid freebsdap channel 4 (2427 Mhz) bssid 00:11:95:c3:0d:ac country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
Egy másik vezeték nélküli gépről most már megpróbálhatjuk megkeresni a hozzáférési pontot:
#
ifconfig wlan0 create wlandev ath0
SSID BSSID CHAN RATE S:N INT CAPS freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS
Láthatjuk, hogy a kliens megtalálta a hozzáférési pontot, és a megfelelő paraméterekkel (kulcs stb.) képes kapcsolódni hozzá a 31.3.3.1.4. szakasz - WEPban leírtak szerint.
A vezetékes hálózatok általában jobb teljesítményt nyújtanak és megbízhatóbbak, miközben a vezeték nélküli hálózatok pedig nagyobb rugalmasságot és mozgásteret szolgáltatnak. Ezért a hordozható számítógépek tulajdonosaiban felmerülhet az igény, hogy egyszerre mind a kettőt használva, tetszőlegesen és problémamentesen válthassanak a hálózatok között.
FreeBSD rendszereken ún. "hibatűrő" módon két vagy akár több hálózati interfészt össze tudunk vonni. Ennek köszönhetően az aktív hálózati kapcsolat megszünésekor rendszerünk önállóan igyekszik mindig a fennmaradó elérhető hálózatok közül a leginkább preferáltabbra váltani.
A hálózati összeköttetések összefűzésével és a hibatűrés konkrét megvalósításával az 31.6. szakasz - Linkek összefűzése és hibatűréseban foglalkozunk, ahol a 31.3. példa - Hibatűrés beállítása vezetékes és vezeték nélküli hálózatok közöttban láthatjuk is a vezetékes és vezeték nélküli kapcsolatok együttes használatának beállítását.
Ha valamilyen gondunk lenne a vezeték nélküli hálózatok használatával, akad néhány lépés, amivel esetleg fel tudjuk deríteni a hiba okát.
Ha nem látjuk a hozzáférési pontot a pásztázás után, ellenőrizzük, hogy a vezeték nélküli eszközt véletlenül nem korlátoztuk-e le bizonyos csatornákra.
Ha nem tudunk csatlakozni a hozzáférési ponthoz, akkor egyeztessük vele az állomás egyes paramétereit, beleértve a hitelesítési sémát és a biztonsági protokollokat. Minél jobban egyszerűsítsük le a konfigurációkat. Ha WPA vagy WEP titkosítást használunk, akkor a hozzáférési ponton állítsunk be nyílt hitelesítést és kapcsoljuk ki a titkosítást, majd nézzük meg, hogy így eljut-e hozzánk valamilyen forgalom.
Ahogy sikerült csatlakozunk a hozzáférési ponthoz, a biztonsági beállításokat olyan egyszerű eszközökkel próbáljuk meg diagnosztizálni, mint például a ping(8).
A wpa_supplicant
segédprogrammal tudunk nyomkövetést
végezni. A -dd
opció
megadásával indítsuk el
manuálisan és ellenőrizzük a
rendszernaplókat.
Vannak alacsonyabb szintű nyomkövetési
lehetőségek is. A 802.11 protokollt
támogató rétegben is tudunk
engedélyezni nyomkövetési üzeneteket
a /usr/src/tools/tools/net80211
könyvtárban található
wlandebug
program
segítségével. Például
a
#
wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>
paranccsal a hozzáférési pontok kereséséhez és a 802.11 protokollon belül a kapcsolat megszervezéséhez szükséges kézfogásokhoz kapcsolódó konzolüzeneteket tudjuk engedélyezni.
A 802.11 rétegben rengeteg hasznos
statisztikát találhatunk. Mindezeket a
wlanstats
eszközzel tudjuk
kiíratni. Ezeknek a statisztikáknak a 802.11
réteg összes hibáját be kell
tudniuk azonosítaniuk. Vigyázzunk azonban,
mert az eszközmeghajtókban a 802.11 réteg
alatt rejlő bizonyos hibák ilyenkor nem jelennek
meg. Az eszközfüggő problémák
felderítésével kapcsolatban a
megfelelő meghajtó
dokumentációját olvassuk
át.
Amennyiben a fenti tanácsok mentén sem sikerül orvosolnunk a hibát okát, küldjünk egy hibajelentést és mellékeljük hozzá a fentebb tárgyalt eszközök által gyártott kimeneteket.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.