31.3. Draadloze netwerken
Terug | Hoofdstuk 31. Geavanceerde netwerken | Volgende

## 31.3. Draadloze netwerken

Loader, Marc Fonvieille en Murray Stokely.

### 31.3.1. De beginselen van draadloos netwerken

De meeste draadloze netwerken zijn op de IEEE® 802.11 standaarden gebaseerd. Een eenvoudig draadloos netwerk bestaat uit meerdere stations die met radio's communiceren die in de 2,4GHz of de 5GHz band uitzenden (alhoewel dit regionaal varieert en het ook verandert om communicatie in de 2,3GHz en de 4,9GHz banden mogelijk te maken).

802.11-netwerken zijn op twee manieren georganiseerd: in infrastructuurmodus treedt één station als meester op, alle andere stations associëren met dit station; dit netwerk staat bekend als een BSS en het meesterstation heet een toegangspunt (AP). In een BSS gaat alle communicatie via het AP; zelfs als een station met een ander draadloos station wil communiceren gaan de boodschappen door het AP. In de tweede netwerkvorm is er geen meester en communiceren de stations direct. Deze netwerkvorm is een IBSS en staat gewoonlijk bekend als een ad-hoc netwerk.

802.11 netwerken begonnen in de 2,4GHz band waarbij gebruik werd gemaakt van protocollen die door de IEEE® 802.11 en 802.11b standaarden worden gedefinieerd. Deze specificaties omvatten de werkfrequenties, karakteristieken van de MAC-lagen waaronder frame- en zendsnelheden (communicatie kan met verschillende snelheden plaatsvinden). Later definieerde de 802.11a-standaard het werken in de 5GHz band, inclusief andere mechanismen voor signalering en hogere zendsnelheden. Nog later werd de 802.11g-standaard gedefinieerd om gebruik te kunnen maken van de signalerings- en zendmechanismen van 802.11a in de 2,4GHz band zodanig dat het met terugwerkende kracht werkt op 802.11b-netwerken.

Afgezien van de onderliggende zendtechnieken beschikken 802.11-netwerken over een verscheidenheid aan beveiligingstechnieken. De originele 802.11-specificaties definieerden een eenvoudig beveiligingsprotocol genaamd WEP. Dit protocol maakt gebruik van een vaste, van te voren gedeelde sleutel en het cryptografische algoritme RC4 om de gegevens die over het netwerk verstuurd worden te coderen. Alle stations dienen dezelfde sleutel te gebruiken om te kunnen communiceren. Het is bewezen dat dit mechanisme eenvoudig te kraken is en wordt nu, afgezien om voorbijgaande gebruikers te ontmoedigen het netwerk te gebruiken, nog zelden gebruikt. De huidige beveiligingsmethoden worden gegeven door de IEEE® 802.11i specificatie dat nieuwe cryptografische algoritmen en een aanvullend protocol om stations aan een toegangspunt te authenticeren en om sleutels voor gegevenscommunicatie uit te wisselen definieert. Verder worden cryptografische sleutels periodiek ververst en zijn er mechanismen om indringpogingen te detecteren (en om indringpogingen tegen te gaan). Een andere specificatie van een veelgebruikt beveiligingsprotocol in draadloze netwerken is WPA. Dit was een voorloper op 802.11i en gedefinieerd door een industriegroep als een tussenmaatregel terwijl er gewacht werd op de ratificatie van 802.11i. WPA specificeert een deel van de eisen van 802.11i en is ontworpen voor implementatie op verouderde hardware. In het bijzonder vereist WPA alleen de TKIP-sleutel die van de originele WEP-sleutel is afgeleid. 802.11i staat het gebruik van TKIP toe maar vereist ook ondersteuning voor een sterkere sleutel, AES-CCM, om gegevens te versleutelen. (De AES-sleutel was niet nodig in WPA omdat het rekenkundig te kostbaar werd geacht voor implementatie op verouderde hardware.)

Afgezien van de bovenstaande protocolstandaarden is de andere belangrijke standaard waarvan bewustzijn belangrijk is 802.11e. Deze standaard definieert het opstellen van multimediatoepassingen zoals gestroomde video en voice over IP (VoIP) binnen een 802.11-netwerk. Net als 802.11i heeft ook 802.11e een voorgaande specificatie genaamd WME (later hernoemd tot WMM) die door een industriegroep is gedefinieerd als een deelverzameling van 802.11e die nu kan worden gebruikt om multimediatoepassingen mogelijk te maken terwijl er gewacht wordt op de uiteindelijke ratificatie van 802.11e. Het belangrijkste om over 802.11e en WME/WMM te weten is dat ze gepriotiseerd verkeersgebruik van een draadloos netwerk mogelijk maken door middel van Quality of Service (QoS) protocollen en protocollen voor verbeterde mediatoegang. Een juiste implementatie van deze protocollen maken snelle gegevensbursts en gepriotiseerde verkeersstromen mogelijk.

FreeBSD ondersteunt netwerken die met 802.11a, 802.11b, en 802.11g werken. Ook worden de veiligheidsprotocollen WPA en 802.11i ondersteund (samen met 11a, 11b, of 11g) en QoS en de verkeerspriorisatieprotocollen die nodig zijn voor de protocollen WME/WMM worden voor een beperkte verzameling draadloze apparatuur ondersteund.

### 31.3.2. Basisinstallatie

#### 31.3.2.1. Kernelinstellingen

Om van een draadloos netwerk gebruik te maken is het nodig om een draadloze netwerkkaart te hebben en om de kernel met de juiste ondersteuning voor draadloze netwerken in te stellen. Het laatste is verdeeld in meerdere modulen zodat alleen de software ingesteld hoeft te worden die daadwerkelijk gebruikt zal worden.

Ten eerste is een draadloos netwerkapparaat nodig. De meestgebruikte apparaten zijn degenen die onderdelen van Atheros gebruiken. Deze apparaten worden ondersteund door het stuurprogramma ath(4) en voor hen dient de volgende regel aan `/boot/loader.conf` toegevoegd te worden:

if_ath_load="YES"

Het stuurprogramma voor Atheros is opgedeeld in drie verschillende delen: het eigenlijke stuurprogramma (ath(4)), de ondersteuningslaag voor de hardware die chip-specifieke functies afhandelt (ath_hal(4)), en een algoritme om de snelheid om frames te verzenden te kiezen uit een reeks mogelijke waarden (hier ath_rate_sample). Indien deze ondersteuning als kernelmodules wordt geladen, zullen de afhankelijkheden automatisch afgehandeld worden. Voor andere apparaten dan die van Atheros dient de module voor dat stuurprogramma geladen te worden; bijvoorbeeld:

if_wi_load="YES"

voor apparaten die op onderdelen van Intersil Prism zijn gebaseerd (stuurprogramma wi(4)).

### Opmerking:

In de rest van dit document zal een ath(4) apparaat gebruikt worden, de naam van het apparaat in de voorbeelden dient aangepast te worden aan de lokale installatie. Een lijst van beschikbare draadloze stuurprogramma's en ondersteunde adapters staat in de FreeBSD Hardware Notes. Kopieën hiervan voor verschillende uitgaven en architecturen zijn beschikbaar op de Uitgave Informatie pagina van de FreeBSD website. Indien er geen origineel stuurprogramma voor het draadloze apparaat bestaat, is het mogelijk om te proberen om direct het stuurprogramma van Windows® proberen te gebruiken met behulp van de stuurprogramma-wrapper NDIS.

Daarvoor zijn ook de modules nodig die cryptografische ondersteuning implementeren voor de te gebruiken veiligheidsprotocollen. Het is de bedoeling dat ze dynamisch door de module wlan(4) worden geladen maar momenteel dienen ze handmatig ingesteld te worden. De volgende modules zijn beschikbaar: wlan_wep(4), wlan_ccmp(4), en wlan_tkip(4). Zowel de stuurprogramma's wlan_ccmp(4) en wlan_tkip(4) zijn alleen nodig indien het veiligheidsprotocol WPA en/of 802.11i gebruikt wordt. Indien het netwerk encryptieloos dient te zijn, is de ondersteuning van wlan_wep(4) niet nodig. Om deze modules tijdens het opstarten te laden, dienen de volgende regels aan `/boot/loader.conf` toegevoegd te worden:

wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"

Nadat deze informatie aan het instellingenbestand om het systeem op te starten (i.e., `/boot/loader.conf`) is toegevoegd, is het noodzakelijk om de FreeBSD-computer opnieuw op te starten. Indien het ongewenst is om de computer nu opnieuw op te starten, kunnen de modules ook handmatig worden geladen door kldload(8) te gebruiken.

### Opmerking:

Indien het gebruik van modules ongewenst is, kunnen deze stuurprogramma's in de kernel worden gecompileerd door de volgende regels aan het kernelinstellingenbestand toe te voegen:

device wlan # 802.11 ondersteuning device wlan_wep # 802.11 WEP-ondersteuning device wlan_ccmp # 802.11 CCMP-ondersteuning device wlan_tkip # 802.11 TKIP-ondersteuning device wlan_amrr # AMRR controle-algoritme voor zendsnelheid device ath # Atheros PCI/Cardbus netwerkkaarten device ath_hal # Ondersteuning voor PCI/cardbus chips options AH_SUPPORT_AR5146 # zet AR5146 tx/rx descriptors aan device ath_rate_sample # SampleRate verzendsnelheid-controle voor ath

Met deze informatie in het kernelinstellingenbestand kan de kernel opnieuw gecompileerd en de FreeBSD-computer opnieuw opgestart worden.

Wanneer het systeem draait, is het mogelijk om enige informatie over de draadloze apparaten in de opstartboodschappen te vinden, zoals:

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

### 31.3.3. Infrastructuurmodus

De infrastructuur- of BSS-modus is de modus die normaliter gebruikt wordt. In deze modus zijn een aantal draadloze toegangspunten verbonden met een bedraad netwerk. Elk draadloos netwerk heeft een eigen naam, deze naam wordt de SSID van het netwerk genoemd. Draadloze cliënten verbinden zich met de draadloze toegangspunten.

#### 31.3.3.1. FreeBSD cliënten

##### 31.3.3.1.1. Hoe toegangspunten te vinden

Voor het scannen van netwerken wordt het commando `ifconfig` gebruikt. Het kan even duren voordat dit verzoek is afgehandeld aangezien het systeem op elke beschikbare draadloze frequentie naar toegangspunten moet zoeken. Alleen de super-gebruiker kan zo'n scan opzetten:

`#` `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

### Opmerking:

De interface dient als up te worden gemarkeerd voordat het scannen begint. Voor verdere scans is het niet nodig om de interface als up te markeren.

De uitvoer van een scanverzoek vermeld elk gevonden BSS/IBSS-netwerk. Naast de naam van het netwerk, `SSID`, staat het `BSSID`, wat het MAC-adres van het toegangspunt is. Het veld `CAPS` identificeert het type van elk netwerk en de mogelijkheden van de stations die daar werkzaam zijn:

Tabel 31.1. Station Capability Codes

Capability Code | Betekenis
--- | ---
`E` | Uitgebreide dienstenverzameling (ESS). Geeft aan dat het station deel uitmaakt van een infrastructuurnetwerk (in tegenstelling tot een IBSS-/ ad-hoc-netwerk).
`I` | IBSS-/ad-hoc-netwerk. Geeft aan dat het station deel uitmaakt van een ad-hoc-netwerk (in tegenstelling tot een ESS-netwerk).
`P` | Privacy. Vertrouwelijkheid is vereist voor alle gegevensframes die binnen het BSS worden uitgewisseld. Dit betekent dat dit BSS eist dat het station cryptografische middelen als WEP, TKIP of AES-CCMP dient te gebruiken om de gegevensframes die met anderen worden uitgewisseld te versleutelen en te ontsleutelen.
`S` | Korte preambule. Geeft aan dat het netwerk korte preambules gebruikt (gedefinieerd in 802.11b Hoge Snelheid/DSSS PHY, korte preambule gebruikt een 56-bits synchronisatieveld in tegenstelling tot een 128-bits dat bij lange preambules wordt gebruikt).
`s` | Korte slottijd. Geeft aan dat het 802.11g-netwerk een korte slottijd gebruikt omdat er geen verouderde (802.11b) stations aanwezig zijn.

Het is ook mogelijk om de huidige lijst van bekende netwerken weer te geven met:

`#` `ifconfig `scan0` list scan`

Deze informatie kan automatisch bijgewerkt worden door de adapter of handmatig met een `scan` verzoek. Oude gegevens worden automatisch uit de cache verwijderd, dus kan deze lijst na verloop van tijd korter worden tenzij er meer scanverzoeken gedaan worden.

##### 31.3.3.1.2. Basisinstellingen

Deze sectie geeft een eenvoudig voorbeeld hoe de draadloze netwerkadapter in FreeBSD zonder encryptie aan de praat te krijgen. Nadat deze concepten bekend zijn, wordt het sterk aangeraden om WPA te gebruiken om de draadloze netwerken op te zetten.

Er zijn drie basisstappen om een draadloos netwerk in te stellen: een toegangspunt kiezen, het station authenticeren, en een IP-adres instellen. De volgende secties behandelen elk een stap.

###### 31.3.3.1.2.1. Een toegangspunt kiezen

In de meeste gevallen is het voldoende om het systeem een toegangspunt gebaseerd op de ingebouwde heuristieken te laten kiezen. Dit is het standaardgedrag wanneer een interface als up wordt gemarkeerd of als een interface wordt ingesteld door het te noemen in `/etc/rc.conf`, bijvoorbeeld:

wlans_ath0="wlan0" ifconfig_wlan0="DHCP"

Indien er meerdere toegangspunten zijn en het gewenst is om een specifieke te kiezen, kan dit met het SSID:

wlans_ath0="wlan0" ifconfig_wlan0="ssid `uw_ssid_hier` DHCP"

In een omgeving waar meerdere toegangspunten hetzelfde SSID hebben (vaak gedaan om roamen eenvoudiger te maken) kan het nodig zijn om met één specifiek apparaat te associëren. In dit geval kan ook het BSSID van het toegangspunt gespecificeerd worden (het SSID kan ook weggelaten worden):

wlans_ath0="wlan0" ifconfig_wlan0="ssid `uw_ssid_hier` bssid `xx:xx:xx:xx:xx:xx` DHCP

Er zijn andere manieren om de keuze van een toegangspunt te beperken zoals het beperken van het aantal frequenties waarop het systeem scant. Dit kan handig zijn bij multi-band-netwerkkaarten aangezien het scannen van alle mogelijke kanalen tijdrovend kan zijn. Om de werking tot een specifieke band te beperken kan de parameter `mode` gebruikt worden; bijvoorbeeld:

wlans_ath0="wlan0" ifconfig_wlan0="mode `11g` ssid `uw_ssid_hier` DHCP"

zal de kaart forceren om te werken in 802.11g welke alleen voor 2,4GHz frequenties is gedefinieerd dus de 5GHz kanalen blijven buiten beschouwing. Andere manieren om dit te doen zijn de parameter `channel`, om bewerkingen op één specifieke frequentie vast te zetten, en de parameter `chanlist`, om een lijst van te scannen kanalen te specificeren. Meer informatie over deze parameters kan in de hulppagina ifconfig(8) gevonden worden.

###### 31.3.3.1.2.2. Authenticatie

Nadat er een toegangspunt is gekozen moet het station zich authenticeren voordat het gegevens kan versturen. Authenticatie kan op verschillende manieren gebeuren. Het meest gebruikte schema wordt open authenticatie genoemd en staat doe dat elk station aan het netwerk deelneemt en communiceert. Deze manier van authenticatie dient gebruikt te worden voor testdoeleinden tijdens het voor de eerste keer opzetten van een draadloos netwerk. Andere schema's vereisen dat cryptografische overeenkomsten voltooid worden voordat gegevensverkeer kan stromen; ofwel door vooraf gedeelde sleutels of geheimen te gebruiken, of door complexere schema's te gebruiken welke achterliggende diensten zoals RADIUS betrekken. De meeste gebruikers zullen open authenticatie gebruiken welke de standaardinstelling is. De dan meest voorkomende opstelling is WPA-PSK, ook bekend als WPA Personal, welke hieronder beschreven is.

### Opmerking:

Indien er een Apple® AirPort® Extreme basisstation als toegangspunt wordt gebruikt kan het nodig zijn om gedeelde-sleutel-authenticatie samen met een WEP-sleutel in te stellen. Dit kan gedaan worden in het bestand `/etc/rc.conf` of door het programma wpa_supplicant(8) te gebruiken. Indien er een enkel AirPort® basisstation wordt gebruikt kan de toegang met zoiets als het volgende worden ingesteld:

wlans_ath0="wlan0" ifconfig_wlan0="authmode shared wepmode on weptxkey `1` wepkey `01234567` DHCP"

Over het algemeen dient authenticatie via gedeelde sleutels worden voorkomen omdat het materiaal van de WEP-sleutel op een zeer afgedwongen manier gebruikt wordt wat het zelfs gemakkelijker maakt om de sleutel te kraken. Indien WEP gebruikt moet worden (bijvoorbeeld voor compatibiliteit met verouderde apparaten) is het beter om WEP met `open` authenticatie te gebruiken. Meer informatie met betrekking tot WEP kan gevonden worden in Paragraaf 31.3.3.1.4, “WEP”.

###### 31.3.3.1.2.3. Een IP-adres verkrijgen met DHCP

Nadat het toegangspunt is gekozen en de parameters voor de authenticatie zijn ingesteld, dient er een IP-adres ter communicatie verkregen worden. In de meeste gevallen wordt het draadloze IP-adres verkregen via DHCP. Om dat te bereiken, dient `/etc/rc.conf` bewerkt te worden en `DHCP` aan de instellingen voor het apparaat toegevoegd te worden zoals in de verschillende bovenstaande voorbeelden is laten zien:

wlans_ath0="wlan0" ifconfig_wlan0="DHCP"

Op dit moment kan de draadloze interface geactiveerd worden:

`#` `service netif start`

Wanneer de interface draait, kan `ifconfig` gebruikt worden om de status van de interface `ath0` te zien:

`#` `ifconfig `wlan0`` wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:11:95:d5:43:62 inet 192.168.1.00 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

Het `status: associated` betekent dat er verbinding is met een draadloos netwerk (in dit geval met het netwerk `dlinkap`). Het gedeelte `bssid 00:13:46:49:41:76` is het MAC-adres van het toegangspunt; de gedeelte met `authmode` vertelt dat de communicatie niet versleuteld is.

###### 31.3.3.1.2.4. Statisch IP-adres

In het geval dat het niet mogelijk is om een IP-adres van een DHCP-server te krijgen, kan er een vast IP-adres worden ingesteld. Vervang het sleutelwoord `DHCP` van hierboven met de adresinformatie. Zorg ervoor dat de andere parameters voor het selecteren van een toegangspunt behouden blijven:

wlans_ath0="wlan0" ifconfig_wlan0="inet `192.168.1.100` netmask `255.255.255.0` ssid `uw_ssid_hier`"

##### 31.3.3.1.3. WPA

WPA (Wi-Fi Protected Access) is een beveiligingsprotocol dat samen met 802.11-netwerken wordt gebruikt om het gebrek aan degelijke authenticatie en de zwakte van WEP te benadrukken. WPA verbetert het 802.1X-authenticatieprotocol en gebruikt een sleutel gekozen uit meerdere in plaats van WEP voor gegevensintegriteit. De enige sleutel welke WPA vereist is TKIP (Temporary Key Integrity Protocol). TKIP is een sleutel dat de basis-RC4-sleutel welke door WEP wordt gebruikt uitbreidt door integriteitscontroles, knoeidetectie, en maatregelen om op elke gedetecteerde inbraak te reageren toe te voegen. TKIP is ontworpen om op verouderde hardware met enkel wijzigingen in software te draaien; het representeert een compromis dat de veiligheid verbetert maar nog steeds niet geheel immuun is tegen aanvallen. WPA specificeert ook de sleutel AES-CCMP als een alternatief voor TKIP welke te verkiezen is indien mogelijk; voor deze specificatie wordt gewoonlijk de term WPA2 (of RSN) gebruikt.

WPA definieert protocollen voor authenticatie en versleuteling. Authenticatie gebeurt het meeste door één van deze twee technieken te gebruiken: door 802.1X en een achterliggende authenticatiedienst zoals RADIUS, of door een minimale overeenkomst tussen het station en het toegangspunt door een van te voren gedeeld geheim te gebruiken. Het eerste wordt vaak WPA Enterprise genoemd en het laatste staat bekend als WPA Personal. Aangezien de meeste mensen geen achterliggende RADIUS-server voor hun draadloos netwerk zullen opzetten, is WPA-PSK veruit de meest gebruikte configuratie voor WPA.

Het beheer van de draadloze verbinding en de authenticatie (sleutelonderhandeling of authenticatie met een server) gebeurt met het gereedschap wpa_supplicant(8). Dit programma vereist dat er een instellingenbestand, `/etc/wpa_supplicant.conf`, draait. Meer informatie over dit bestand kan in de hulppagina wpa_supplicant.conf(5) worden gevonden.

###### 31.3.3.1.3.1. WPA-PSK

WPA-PSK, ook bekend als WPA-Personal, is gebaseerd op een vooraf gedeelde sleutel (PSK) gegenereerd vanuit een gegeven wachtwoord die gebruikt zal worden als de hoofdsleutel in het draadloze netwerk. Dit betekent dat alle draadloze gebruikers dezelfde sleutel zullen delen. WPA-PSK is bedoeld voor kleine netwerken waar het gebruik van een authenticatieserver niet mogelijk of gewenst is.

### Waarschuwing:

Gebruik altijd sterke wachtwoorden welke voldoende lang zijn en opgebouwd zijn uit een grote tekenverzameling zodat ze niet gemakkelijk worden geraden of aangevallen.

De eerste stap is het instellen van het bestand `/etc/wpa_supplicant.conf` met het SSID en de vooraf gedeelde sleutel van het netwerk:

network={ ssid="freebsdap" psk="freebsdmall" }

Daarna zal in `/etc/rc.conf` worden aangegeven dat de draadloze configuratie met WPA zal gebeuren en dat het IP-adres met DHCP zal worden verkregen:

wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

Hierna kan de interface geactiveerd worden:

`#` `service 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 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

Ook kan gepoogd worden dit handmatig in te stellen door hetzelfde `/etc/wpa_supplicant.conf` als hierboven te gebruiken, en dit te draaien:

`#` `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 idstr=]

De volgende stap is het lanceren van het commando `dhclient` om een IP-adres van de DHCP-server te krijgen:

`#` `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`` 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 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 defxkey 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

### Opmerking:

`/etc/rc.conf` heeft een regel `ifconfig_wlan0` met de tekst `DHCP` (zoals `ifconfig_wlan0="DHCP"`), `dhclient` zal automatisch gestart worden nadat `wpa_supplicant` geassocieerd is met het toegangspunt.

Als DHCP niet mogelijk of gewenst is, kan een statisch IP-adres worden ingesteld nadat `wpa_supplicant` het station heeft geauthenticeerd:

`#` `ifconfig `wlan0` inet `192.168.0.100` netmask `255.255.255.0`` `#` `ifconfig `wlan0`` wlan0: 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

Indien DHCP niet wordt gebruikt, dienen ook de standaard gateway en de naamserver handmatig ingesteld te worden:

`#` `route add default `uw_standaard_router`` `#` `echo "nameserver `uw_DNS_server`" >> /etc/resolv.conf`

###### 31.3.3.1.3.2. WPA met EAP-TLS

De tweede manier om WPA te gebruiken is met een achterliggende 802.1X-authenticatieserver. In dit geval wordt het WPA-Enterprise genoemd om het verschil met het minder veilige WPA-Personal met de vooraf gedeelde sleutel aan te duiden. Authenticatie is in WPA-Enterprise gebaseerd op EAP (Extensible Authentication Protocol).

EAP wordt niet met een encryptiemethode geleverd. In plaats daarvan was het besloten om EAP in een versleutelde tunnel te omsluiten. Er bestaan vele EAP-authenticatiemethodes, de meest voorkomende zijn EAP-TLS, EAP-TTLS, en EAP-PEAP.

EAP-TLS (EAP met Transport Layer Security) is een zeer goed ondersteund authenticatieprotocol in de draadloze wereld aangezien het de eerste EAP-methode was die gecertificeerd werd door de Wi-Fi alliantie. EAP-TLS vereist dat er drie certificaten draaien: het CA-certificaat (geïnstalleerd op alle machines), het servercertificaat voor de authenticatieserver, en een cliëntcertificaat voor elke draadloze cliënt. Bij deze EAP-methode authenticeren zowel de authenticatieserver als de draadloze cliënt elkaar door hun respectievelijke certificaten te laten zien, en ze controleren dat deze certificaten zijn getekend door de certificatenauthoriteit (CA) van de organisatie.

Zoals voorheen gebeurt het instellen via `/etc/wpa_supplicant.conf`:

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" }

| Dit veld geeft de naam van het netwerk (SSID) aan.
| Hier wordt het RSN (IEEE® 802.11i) protocol gebruikt, ofwel WPA2.
| De regel `key_mgmt` verwijst naar het gebruikte sleutelbeheerprotocol. In dit geval is het WPA dat EAP-authenticatie gebruikt: `WPA-EAP`.
| In dit veld wordt de EAP-methode voor de verbinding genoemd.
| Het veld `identity` bevat de identiteitsstring voor EAP.
| Het veld `ca_cert` geeft de padnaam van het CA-certificaatbestand aan. Dit bestand is nodig om het servercertificaat te controleren.
| De regel `client_cert` geeft de padnaam van het cliëntcertificaatbestand aan. Dit certificaat is uniek voor elke draadloze cliënt van het netwerk.
| Het veld `private_key` is de padnaam naar het bestand dat de privésleutel van het cliëntcertificaat bevat.
| Het veld `private_key_passwd` bevat het wachtwoord voor de privésleutel.

Voeg vervolgens de volgende regels toe aan `/etc/rc.conf`:

wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

De volgende stap is het activeren van de interface:

`#` `service 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 WPA/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

Zoals eerder is laten zien, is het ook mogelijk om de interface handmatig te activeren met zowel de commando's `wpa_supplicant` en `ifconfig`.

###### 31.3.3.1.3.3. WPA met EAP-TTLS

Bij EAP-TLS hebben zowel de authenticatieserver als de cliënt een certificaat nodig, met EAP-TTLS (EAP-Tunneled Transport Layer Security) is een cliëntcertificaat optioneel. Deze methode komt in de buurt van wat sommige beveiligde websites doen, waar de webserver een veilige SSL-tunnel kan aanmaken zelfs als de bezoekers geen certificaten aan de cliëntkant hebben. EAP-TTLS zal de versleutelde TLS-tunnel gebruiken voor het veilig transporteren van de authenticatiegegevens.

De instellingen worden gedaan via het bestand `/etc/wpa_supplicant.conf`:

network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=TTLS identity="test" password="test" ca_cert="/etc/certs/cacert.pem" phase2="auth=MD5" }

| Dit veld noemt de EAP-methode voor de verbinding.
| Het veld `identity` bevat de identiteitsstring voor EAP-authenticatie binnen de versleutelde TLS-tunnel.
| Het veld `password` bevat het wachtwoord voor de EAP-authenticatie.
| Het veld `ca_cert` wijst naar de padnaam van het CA-certificaatbestand. Dit bestand is nodig om het servercertificaat te controleren.
| Dit veld noemt de gebruikte authenticatiemethode in de versleutelde TLS-tunnel. In dit geval is EAP met MD5-Challenge gebruikt. De “binnenste authenticatie”-fase wordt vaak “phase2” genoemd.

Ook dienen de volgende regels toegevoegd te worden aan `/etc/rc.conf`:

wlans_ath0="wlan0" ifconfig_ath0="WPA DHCP"

De volgende stap is het activeren van de interface:

`#` `service netif start` Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21 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 autoselect DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz) 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

###### 31.3.3.1.3.4. WPA met EAP-PEAP

### Opmerking:

PEAPv0/EAP-MSCHAPv2 is de meest gebruikelijke PEAP-methode. In de rest van dit document wordt de term PEAP gebruikt om naar die methode te verwijzen.

PEAP (Beveiligd EAP) is ontworpen als een alternatief voor EAP-TTLS, en is de meest gebruikte EAP-standaard na EAP-TLS. Met andere woorden, als u een netwerk met verschillende besturingssystemen heeft, zou PEAP de meest ondersteunde standaard moeten zijn na EAP-TLS.

PEAP is soortgelijk aan EAP-TTLS: het gebruikt een server-side certificaat om de cliënten te authenticeren door een beveiligde TLS-tunnel tussen de cliënt en de authenticatieserver aan te maken, welke de uitwisseling van de authenticatie-informatie beschermt. Vanuit een beveiligingsoogpunt gezien is het verschil tussen EAP-TTLS en PEAP dat PEAP-authenticatie de gebruikersnaam onversleuteld uitzendt, alleen het wachtwoord wordt in de beveiligde TLS-tunnel verzonden. EAP-TTLS gebruikt de TLS-tunnel voor zowel de gebruikersnaam als het wachtwoord.

Het bestand `/etc/wpa_supplicant.conf` dient gewijzigd te worden om de EAP-PEAP-gerelateerde instellingen toe te voegen:

network={ ssid="freebsdap" proto=RSN key_mgmt=WPA-EAP eap=PEAP identity="test" password="test" ca_cert="/etc/certs/cacert.pem" phase1="peaplabel=0" phase2="auth=MSCHAPV2" }

| Dit veld noemt de EAP-methode voor de verbinding.
| Het veld `identity` bevat de identiteitsstring voor EAP-authenticatie binnen de versleutelde TLS-tunnel.
| Het veld `password` bevat het wachtwoord voor de EAP-authenticatie.
| Het veld `ca_cert` wijst naar de padnaam van het CA-certificaatbestand. Dit bestand is nodig om het servercertificaat te controleren.
| Dit veld bevat de parameters voor de eerste fase van authenticatie (de TLS-tunnel). Afhankelijk van de gebruikte authenticatieserver moet er een specifiek label voor authenticatie worden opgegeven. In de meeste gevallen zal het label “client EAP encryption” zijn welke ingesteld is door `peaplabel=0` te gebruiken. Meer informatie kan in de hulppagina wpa_supplicant.conf(5) gevonden worden.
| Dit veld noemt het authenticatieprotocol dat in de versleutelde TLS-tunnel gebruikt wordt. In het geval van PEAP is dit `auth=MSCHAPV2`.

Het volgende dient te worden toegevoegd aan `/etc/rc.conf`:

wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"

Hierna kan de interface worden geactiveerd:

`#` `service netif start` Starting wpa_supplicant. DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21 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 autoselect DS/11Mbps mode 11g status: associated ssid freebsdap channel 1 (2412 Mhz) 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

##### 31.3.3.1.4. WEP

WEP (Wired Equivalent Privacy) maakt deel uit van de oorspronkelijke 802.11 standaard. Er is geen authenticatiemechanisme, slechts een zwakke vorm van toegangscontrole, en het is gemakkelijk te kraken.

WEP kan worden opgezet met `ifconfig`:

`#` `ifconfig `wlan0` create wlandev `ath0`` `#` `ifconfig `wlan0` inet `192.168.1.100` netmask `255.255.255.0` \ ssid `mijn_net` wepmode on weptxkey `3` wepkey `3:0x3456789012``

- De `weptxkey` geeft aan welke WEP-sleutel zal worden gebruikt tijdens het verzenden. Hier wordt de derde sleutel gebruikt. Dit dient overeen te komen met de instelling in het toegangspunt. Probeer, indien onbekend is welke sleutel door het toegangspunt wordt gebruikt, `1` (i.e., de eerste sleutel) voor deze waarde te gebruiken.

- De `wepkey` selecteert één van de WEP-sleutels in. Het dient in het formaat `index:sleutel` te zijn. Sleutel `1` wordt als standaard gebruikt; de index hoeft alleen ingesteld te worden als we een andere dan de eerste sleutel gebruiken.

  ### Opmerking:

  De `0x3456789012` dient vervangen te worden door de sleutel die ingesteld is voor gebruik met het toegangspunt.

Het wordt aangeraden om de hulppagina ifconfig(8) te lezen voor verdere informatie.

De faciliteit `wpa_supplicant` kan ook gebruikt worden om de draadloze interface in te stellen voor WEP. Het bovenstaande voorbeeld kan worden ingesteld door de volgende regels toe te voegen aan `/etc/wpa_supplicant.conf`:

network={ ssid="mijn_net" key_mgmt=NONE wep_key3=3456789012 wep_tx_keyidx=3 }

Daarna:

`#` `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

### 31.3.4. Ad-hoc-modus

IBSS-modus, ook ad-hoc-modus genoemd, is ontworpen voor point-to-point-verbindingen. Om bijvoorbeeld een ad-hoc-netwerk tussen de machine `A` en de machine `B` op te zetten, is het slechts nodig om twee IP-adressen en een SSID te kiezen.

Op machine `A`:

`#` `ifconfig `wlan0` create wlandev `ath0` wlanmode adhoc` `#` `ifconfig `wlan0` inet `192.168.0.1` netmask `255.255.255.0` ssid `freebsdap`` 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 11g) bssid 02:11:95:c3:0d:ac country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 protmode CTS wme burst

De parameter `adhoc` geeft aan dat de interface in de IBSS-modus draait.

Op `B` zal het mogelijk moeten zijn om `A` te detecteren:

`#` `ifconfig `wlan0` create wlandev `ath0` wlanmode adhoc` `#` `ifconfig `wlan0` up scan` SSID/MESH ID BSSID CHAN RATE S:N INT CAPS reebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME

De `I` in de uitvoer bevestigt dat machine `A` in ad-hoc-modus verkeert. Het is slechts nodig om `B` met een ander IP-adres in te stellen:

`#` `ifconfig `wlan0` inet `192.168.0.2` netmask `255.255.255.0` ssid `freebsdap`` `#` `ifconfig `wlan0` ssid `freebsdap` mediaopt adhoc inet `192.168.0.2` netmask `255.255.255.0`` `#` `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

Zowel `A` als `B` zijn nu klaar om informatie uit te wisselen.

### 31.3.5. FreeBSD Host Toegangspunten

FreeBSD kan als toegangspunt (AP) functioneren wat de noodzaak om een hardwarematig AP te kopen of een ad-hoc-netwerk te draaien wegneemt. Dit kan bijzonder nuttig zijn indien de FreeBSD-machine als gateway naar een ander netwerk (bijvoorbeeld het Internet) functioneert.

#### 31.3.5.1. Basisinstellingen

Voordat de FreeBSD-machine als een AP wordt ingesteld, dient de kernel te worden ingesteld met de juiste ondersteuning voor draadloos netwerken voor de draadloze kaart. Ook dient er ondersteuning voor de te gebruiken beveiligingsprotocollen te worden toegevoegd. Meer details staan in Paragraaf 31.3.2, “Basisinstallatie”.

### Opmerking:

Momenteel staan de NDIS-stuurprogrammawrapper en de stuurprogramma's van Windows® het werken als AP niet toe. Alleen originele draadloze FreeBSD-stuurprogramma's ondersteunen AP-modus.

Wanneer de ondersteuning voor draadloos netwerken is geladen, kan gecontroleerd worden of het draadloze apparaat de hostgebaseerde toegangspuntmodus ondersteunt (ook bekend als hostap-modus):

`#` `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,TXFRAG> cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>

Deze uitvoer geeft de mogelijkheden van de kaart weer, het woord `HOSTAP` bevestigt dat deze draadloze kaart als toegangspunt kan functioneren. Ook worden verschillende ondersteunde versleutelmethoden genoemd: WEP, TKIP, AES, enzovoorts. Deze informatie is belangrijk om te weten welke beveiligingsprotocollen gebruikt kunnen worden op het toegangspunt.

Het draadloze apparaat kan enkel in hostap-modus worden gezet tijdens het creeëren van het netwerk pseudo-device dus een vooraf aangemaakt apparaat moet eerst verwijderd worden:

`#` `ifconfig `wlan0` destroy`

waarna deze opnieuw aangemaakt kan worden met de juiste parameters:

`#` `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`

Gebruik nogmaals `ifconfig` om de status van de interface `wlan0` te zien:

`#` `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 status: running ssid freebsdap channel 1 (2412 Mhz 11g) 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

De parameter `hostap` geeft aan dat de interface in hostgebaseerde toegangspuntmodus draait.

Het instellen van de interface kan automatisch tijdens het opstarten gedaan worden door de volgende regels aan `/etc/rc.conf` toe te voegen:

wlans_ath0="wlan0" create_args_wlan0="wlanmode hostap" ifconfig_wlan0="inet `192.168.0.1` netmask `255.255.255.0` ssid `freebsdap` mode 11g channel `1`"

#### 31.3.5.2. Hostgebaseerde toegangspunt zonder authenticatie of versleuteling

Hoewel het niet aangeraden wordt om een AP zonder enige vorm van authenticatie of encryptie te draaien, is dit een eenvoudige manier om te controleren of het AP werkt. Deze configuratie is ook belangrijk voor het debuggen van problemen met cliënten.

Nadat het AP is ingesteld als eerder is laten zien, is het mogelijk om van een andere draadloze machine een scan te beginnen om het AP te vinden:

`#` `ifconfig `wlan0` create wlandev `ath0`` `#` `ifconfig `wlan0` 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

De cliëntmachine heeft het AP gevonden en kan ermee geassocieerd worden:

`#` `ifconfig `ath0` ssid `freebsdap` inet `192.168.0.2` netmask `255.255.255.0`` `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 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

#### 31.3.5.3. WPA hostgebaseerde toegangspunt

Deze sectie zal zich richten op opzetten van een FreeBSD toegangspunt dat het beveiligingsprotocol WPA gebruikt. Meer details over WPA en het instellen van op WPA gebaseerde draadloze cliënten kan gevonden worden in Paragraaf 31.3.3.1.3, “WPA”.

De daemon hostapd wordt gebruikt om cliëntauthenticatie en sleutelbeheer op het toegangspunt met WPA af te handelen.

In het volgende zullen alle instellingsbewerkingen worden uitgevoerd op de FreeBSD-machine die als AP dienst doet. Wanneer het AP correct werkt, zou hostapd automatisch tijdens het opstarten aangezet moeten worden met de volgende regel in `/etc/rc.conf`:

hostapd_enable="YES"

Zorg ervoor dat voordat geprobeerd wordt om hostapd in te stellen, de basisinstellingen die in Paragraaf 31.3.5.1, “Basisinstellingen” zijn geïntroduceerd zijn uitgevoerd.

##### 31.3.5.3.1. WPA-PSK

WPA-PSK is bedoeld voor kleine netwerken waar het gebruik van een achterliggende authenticatieserver niet mogelijk of gewenst is.

Het instellen wordt gedaan in het bestand `/etc/hostapd.conf`:

interface=wlan0 debug=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

| Dit veld geeft aan welke draadloze interface voor het toegangspunt wordt gebruikt.
| Dit veld stelt het verbositeitsniveau in dat tijdens het draaien van hostapd wordt gebruikt. Een waarde van `1` vertegenwoordigt het minimale niveau.
| Het veld `ctrl_interface` geeft de padnaam van de door hostapd gebruikte map om de domeinsocketbestanden voor communicatie met externe programma's zoals hostapd_cli(8) in op te slaan. Hier wordt de standaardwaarde gebruikt.
| De regel `ctrl_interface_group` stelt de groep in (hier is het de groep `wheel`) die toegang heeft tot de controle interfacebestanden.
| Het veld `wpa` maakt WPA mogelijk en specificeert welk WPA-authenticatieprotocol nodig zal zijn. De waarde `1` stelt het AP in op WPA-PSK.

Het veld `wpa_passphrase` bevat het ASCII-wachtwoord voor de WPA-authenticatie.

### Waarschuwing:

Gebruik altijd sterke wachtwoorden welke voldoende lang zijn en opgebouwd zijn uit een grote tekenverzameling zodat ze niet gemakkelijk worden geraden of aangevallen.

| De regel `wpa_key_mgmt` verwijst naar het gebruikte sleutelbeheerprotocol. In dit geval is dat WPA-PSK.
| Het veld `wpa_pairwise` geeft aan welke versleutelingsalgoritmes door het toegangspunt worden geaccepteerd. Hier worden zowel de versleuteling TKIP (WPA) en CCMP (WPA2) geaccepteerd. De versleuteling CCMP is een alternatief voor TKIP en wordt sterk aangeraden indien mogelijk; TKIP dient alleen gebruikt te worden voor stations die geen CCMP aankunnen.

De volgende stap is het starten van hostapd:

`#` `service 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.255dddd 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

Het toegangspunt draait nu, de cliënten kunnen er nu mee worden geassocieerd, zie Paragraaf 31.3.3.1.3, “WPA” voor meer details. Het is mogelijk om de stations die met het AP geassocieerd zijn te zien door het commando `ifconfig `wlan0` list` te gebruiken.

#### 31.3.5.4. WEP hostgebaseerd toegangspunt

Het wordt niet aangeraden om WEP te gebruiken om een toegangspunt op te zetten aangezien er geen authenticatiemechanisme is en het gemakkelijk is te kraken. Sommige verouderde draadloze kaarten ondersteunen alleen WEP als een beveiligingsprotocol, met deze kaarten is het alleen mogelijk om een AP zonder authenticatie of encryptie of een AP dat het WEP-protocol gebruikt op te zetten.

Het draadloze apparaat kan nu in hostap-modus worden gezet en ingesteld worden met het juiste SSID en IP-adres:

`#` `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`

- Het `weptxkey` geeft aan welke WEP-sleutel tijdens het zenden zal worden gebruikt. Hier wordt de derde sleutel gebruikt (merk op dat de nummering van de sleutels bij `1` begint). Deze parameter moet gespecificeerd worden om de gegevens daadwerkelijk te versleutelen.

- Het `wepkey` geeft aan dat de geselecteerde WEP-sleutel wordt ingesteld. Het dient in het formaat `index:key` te zijn, indien de index niet is gegeven, wordt sleutel `1` gebruikt. Dus indien een andere sleutel dan de eerste wordt gebruikt dient de index te worden ingesteld.

Weer wordt `ifconfig` gebruikt om de status van de interface `wlan0` te zien:

`#` `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 <hostap> status: running ssid freebsdap channel 4 (2427 Mhz 11g) 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

Vanaf een andere draadloze machine is het mogelijk om een scan te beginnen om het AP te vinden:

`#` `ifconfig `wlan0` create wlandev `ath0`` `#` `ifconfig `wlan0` up scan` SSID BSSID CHAN RATE S:N INT CAPS freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS

De cliëntmachine heeft het toegangspunt gevonden en kan ermee geassocieerd worden door de juiste parameters (sleutel, enz.) te gebruiken, zie Paragraaf 31.3.3.1.4, “WEP” voor meer details.

### 31.3.6. Zowel de bekabelde als de draadloze verbinding gebruiken

Een bekabelde verbinding biedt betere prestaties en betrouwbaarheid, terwijl een draadloze verbinding meer flexibiliteit en mobiliteit biedt; laptop-gebruikers zullen dit willen combineren en naadloos tussen de twee overschakelen.

In FreeBSD is het mogelijk om twee of meer netwerkinterfaces te combineren in een “failover”-opstelling, dit houdt in dat de meest geprefereerde en best beschikbare verbinding van een groep van netwerkinterfaces wordt gebruikt, en het besturingssysteem automatisch te laten overschakelen wanneer de status van de verbinding verandert.

Link-aggregatie en failover worden behandeld in Paragraaf 31.6, “Verbindingsaggregatie en failover”, een voorbeeld voor het gebruik van zowel een bekabelde als een draadloze verbinding wordt gegeven in Voorbeeld 31.3, “Failover-modus tussen bekabelde en draadloze interfaces”.

### 31.3.7. Problemen verhelpen

Indien er problemen met het draadloos netwerk zijn, zijn er een aantal stappen die genomen kunnen worden om het probleem te helpen verhelpen.

- Indien het toegangspunt niet vermeld wordt tijdens het scannen, controleer dan of het draadloze apparaat niet is ingesteld op een beperkt aantal kanalen.

- Indien het niet mogelijk is om met een toegangspunt te associëren, controleer dan of de instellingen van het station overeenkomen met die van het toegangspunt. Dit omvat het authenticatieschema en de beveiligingsprotocollen. Versimpel de configuratie zoveel mogelijk. Indien een beveiligingsprotocol als WPA of WEP wordt gebruikt, stel het toegangspunt dan in voor open authenticatie en geen beveiliging en kijk of er verkeer door kan.

- Wanneer er met het toegangspunt geassocieerd kan worden, stel dan een diagnose over alle beveiligingsinstellingen met eenvoudige gereedschappen zoals ping(8).

  `wpa_supplicant` biedt veel ondersteuning voor debuggen; probeer het handmatig te draaien met de optie `-dd` en controleer de systeemlogs.

- Er zijn ook veel debug-gereedschappen op lagere niveaus. Het is mogelijk om debugberichten in de laag die het 802.11 protocol ondersteunt aan te zetten door het programma `wlandebug` te gebruiken dat gevonden wordt in `/usr/src/tools/tools/net80211`. Bijvoorbeeld:

  `#` `wlandebug -i `ath0` +scan+auth+debug+assoc` net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>

  kan worden gebruikt om consoleberichten aan te zetten die te maken hebben met het scannen van toegangspunten en het uitvoeren van 802.11 handshakes die nodig zijn om communicatie te regelen.

  Er worden ook veel nuttige statistieken door de 802.11 laag bijgehouden; het gereedschap `wlanstats` geeft deze informatie weer. Deze statistieken zouden alle fouten die door de 802.11 laag zijn geïdentificeerd moeten identificeren. Let erop dat sommige fouten worden geïdentificeerd in de apparaatstuurprogramma's die onder de 802.11 laag liggen zodat ze niet verschijnen. Voor het diagnosticeren van apparaatspecifieke problemen dient de documentatie van het stuurprogramma geraadpleegd te worden.

Indien de bovenstaande informatie niet helpt om het probleem te verhelderen, stuur dan een probleemrapport op inclusief de uitvoer van de bovenstaande gereedschappen.

Terug | Omhoog | Volgende
31.2. Gateways en routes | Begin | 31.4. Bluetooth