Das FreeBSD-Handbuch
Zurück | Kapitel 31. Weiterführende Netzwerkthemen | Weiter

# 31.3. Drahtlose Netzwerke

Loader, Marc Fonvieille und Murray Stokely.

## 31.3.1. Grundlagen

Die meisten drahtlosen Netzwerke basieren auf dem Standard IEEE® 802.11. Sie bestehen aus Stationen, die in der Regel im 2,4 GHz- oder im 5 GHz-Band miteinander kommunizieren. Es ist aber auch möglich, dass regional andere Frequenzen, beispielsweise im 2,3 GHz- oder 4,9 GHz-Band, verwendet werden.

802.11-Netzwerke können auf zwei verschiedene Arten aufgebaut sein: Im Infrastruktur-Modus agiert eine Station als Master, mit dem sich alle andere Stationen verbinden. Die Summe aller Stationen wird als BSS (Basic Service Set), die Master-Station hingegen als Access Point (AP) bezeichnet. In einem BSS läuft jedwede Kommunikation über den Access Point. Die zweite Form drahtloser Netzwerke sind die sogenannten Ad-hoc-Netzwerke (auch als IBSS bezeichnet), in denen es keinen Access Point gibt und in denen die Stationen direkt miteinander kommunizieren.

Die ersten 802.11-Netzwerke arbeiteten im 2,4 GHz-Band und nutzten dazu Prokolle der IEEE-Standards 802.11 sowie 802.11b. Diese Standards legen unter anderem Betriebsfrequenzen sowie Merkmale des MAC-Layers (wie Frames und Transmissionsraten) fest. Später kam der Standard 802.11a hinzu, der im 5 GHz-Band, im Gegensatz zu den ersten beiden Standards aber mit unterschiedlichen Signalmechanismen und höheren Transmissionsraten arbeitet. Der neueste Standard 802.11g implementiert die Signal- und Transmissionsmechanismen von 802.11a im 2,4 GHz-Band, ist dabei aber abwärtskompatibel zu 802.11b-Netzwerken.

Unabhängig von den zugrundeliegenden Transportmechanismen verfügen 802.11-Netzwerke über diverse Sicherheitsmechanismen. Der ursprüngliche 802.11-Standard definierte lediglich ein einfaches Sicherheitsprotokoll namens WEP. Dieses Protokoll verwendet einen fixen (gemeinsam verwendeten) Schlüssel sowie die RC4-Kryptografie-Chiffre, um Daten verschlüsselt über das drahtlose Netzwerk zu senden. Alle Stationen des Netzwerks müssen sich auf den gleichen fixen Schlüssel einigen, um miteinander kommunizieren zu können. Dieses Schema ist sehr leicht zu knacken und wird deshalb heute kaum mehr eingesetzt. Aktuelle Sicherheitsmechanismen bauen auf dem Standard IEEE 802.11i auf, der neue kryptografische Schlüssel (Chiffren), ein neues Protokoll für die Anmeldung von Stationen an einem Access Point sowie Mechanismen zum Austausch von Schlüsseln als Vorbereitung der Kommunikation zwischen verschiedenen Geräten festlegt. Kryptografische Schlüssel werden regelmäßig getauscht. Außerdem gibt es Mechanismen, um Einbruchsversuche zu entdecken (und Gegenmaßnahmen ergreifen zu können). Ein weiteres häufig verwendetes Sicherheitsprotokoll ist WPA. Dabei handelt es sich um einen Vorläufer von 802.11i, der von einem Industriekonsortium als Zwischenlösung bis zur endgültigen Verabschiedung von 802.11i entwickelt wurde. WPA definiert eine Untergruppe der Anforderungen des 802.11i-Standards und ist für den Einsatz in älterer Hardware vorgesehen. WPA benötigt nur den (auf dem ursprünglichen WEP-Code basierenden) TKIP-Chiffre. 802.11i erlaubt zwar auch die Verwendung von TKIP, fordert aber zusätzlich eine stärkere Chiffre (AES-CCM) für die Datenverschlüsselung. (AES war für WPA nicht vorgesehen, weil man es als zu rechenintensiv für den Einsatz in älteren Geräten ansah.)

Neben den weiter oben erwähnten Standards ist auch der Standard 802.11e von großer Bedeutung. Dieser definiert Protokolle zur Übertragung von Multimedia-Anwendungen wie das Streaming von Videodateien oder Voice-over-IP (VoIP) in einem 802.11-Netzwerk. Analog zu 802.11i verfügt auch 802.11e über eine vorläufige Spezifikation namens WMM (ursprünglich WME), die von einem Industriekonsortium als Untergruppe von 802.11e spezifiziert wurde, um Multimedia-Anwendungen bereits vor der endgültigen Verabschiedung des 802.11e-Standards implementieren zu können. 802.11e sowie WME/WMM erlauben eine Prioritätenvergabe beim Datentransfer im einem drahtlosen Netzwerk. Möglich wird dies durch den Einsatz von Quality of Service-Protokollen (QoS) und erweiterten Medienzugriffsprotokollen. Werden diese Protokolle korrekt implementiert, erlauben sie daher hohe Datenübertragungsraten und einen priorisierten Datenfluss.

FreeBSD unterstützt seit der Version 6.0 die Standards 802.11a, 802.11b, sowie 802.11g. Ebenfalls unterstützt werden WPA sowie die Sicherheitsprotokolle gemäß 802.11i (dies sowohl für 11a, 11b als auch 11g). QoS und Verkehrpriorisierung, die von den WME/WMM-Protokollen benötigt werden, werden ebenfalls (allerdings nicht für alle drahtlosen Geräte) unterstützt.

## 31.3.2. Basiskonfiguration

### 31.3.2.1. Kernelkonfiguration

Um ein drahtloses Netzwerk zu nutzen, benötigen Sie eine drahtlose Netzkarte und einen Kernel, der drahtlose Netzwerke unterstützt. Der FreeBSD-Kernel unterstützt den Einsatz von Kernelmodulen. Daher müssen Sie nur die Unterstützung für die von Ihnen verwendeten Geräte aktivieren.

Als Erstes benötigen Sie ein drahtloses Gerät. Die meisten drahtlosen Geräte verwenden Bauteile von Atheros und werden deshalb vom ath(4)-Treiber unterstützt. Um diesen Treiber zu verwenden, nehmen Sie die folgende Zeile in die Datei `/boot/loader.conf` auf:

    if_ath_load="YES"

Der Atheros-Treiber besteht aus drei Teilen: dem Treiber selbst (ath(4)), dem Hardware-Support-Layer für die chip-spezifischen Funktionen (ath_hal(4)) sowie einem Algorithmus zur Auswahl der korrekten Frame-Übertragungsrate (ath_rate_sample). Wenn Sie die Unterstützung für diesen Treiber als Kernelmodul laden, kümmert sich dieses automatisch um diese Aufgaben. Verwenden Sie ein Nicht-Atheros-Gerät, so müssen Sie hingegen das für dieses Gerät geeignete Modul laden, beispielsweise

    if_wi_load="YES"

für Geräte, die auf Bauteilen von Intersil Prism basieren und daher den Treiber wi(4) voraussetzen.

> Anmerkung: In den folgenden Abschnitten wird der ath(4)-Treiber verwendet. Verwenden Sie ein anderes Gerät, müssen Sie diesen Wert daher an Ihre Konfiguration anpassen. Eine Liste aller verfügbaren Treiber für drahtlose Geräte finden Sie in der Manualpage wlan(4). Gibt es keinen nativen FreeBSD-Treiber für Ihr drahtloses Gerät, können Sie möglicherweise mit NDIS einen Windows®-Treiber verwenden.

Neben dem korrekten Treiber benötigen Sie auch die Unterstützung für 802.11-Netzwerke. Für den ath(4)-Treiber werden dazu mindestens die Module wlan(4), `wlan_scan_ap` sowie `wlan_scan_sta` benötigt. Das wlan(4)-Kernelmodul wird automatisch mit dem Treiber des drahtlosen Geräts geladen, die beiden anderen Module werden jeweils durch einen Eintrag in der Datei `/boot/loader.conf` beim Systemstart geladen:

    wlan_scan_ap_load="YES"
    wlan_scan_sta_load="YES"

> Anmerkung: Die beiden Module `wlan_scan_ap` und `wlan_scan_sta` werden von FreeBSD 7.X benötigt, andere FreeBSD Versionen brauchen diese hingegen nicht.

Zusätzlich benötigen Sie noch Module zur Verschlüsselung ihres drahtlosen Netzwerks. Diese werden normalerweise dynamisch vom wlan(4)-Modul geladen. Im folgenden Beispiel erfolgt allerdings eine manuelle Konfiguration. Folgende Module sind verfügbar: wlan_wep(4), wlan_ccmp(4) sowie wlan_tkip(4). Sowohl wlan_ccmp(4) als auch wlan_tkip(4) werden nur benötigt, wenn Sie WPA und/oder die Sicherheitsprotokolle von 802.11i verwenden wollen. Wollen Sie Ihr Netzwerk hingegen offen betreiben (also völlig ohne Verschlüsselung), benötigen Sie nicht einmal die wlan_wep(4)-Unterstützung. Um alle drei Module beim Systemstart zu laden, fügen Sie folgende Zeilen in die Datei `/boot/loader.conf` ein:

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

Die beiden Module `wlan_scan_ap` und `wlan_scan_sta` werden von FreeBSD 7.X benötigt, andere FreeBSD Versionen brauchen diese hingegen nicht.

Danach müssen Sie Ihr FreeBSD-System neu starten. Alternativ können Sie die Kernelmodule aber auch manuell mit kldload(8) laden.

> Anmerkung: Wollen Sie keine Kernelmodule verwenden, können Sie die benötigten Treiber auch in Ihren Kernel kompilieren. Daz nehmen Sie folgende Zeilen in Ihre Kernelkonfigurationsdatei auf:

>     device ath               # Atheros IEEE 802.11 wireless network driver
>     device ath_hal           # Atheros Hardware Access Layer
>     options AH_SUPPORT_AR5416       # enable AR5416 tx/rx descriptors
>     device ath_rate_sample   # SampleRate tx rate control for ath
>     device wlan              # 802.11 support
>     device wlan_scan_ap      # 802.11 AP mode scanning
>     device wlan_scan_sta     # 802.11 STA mode scanning
>     device wlan_wep          # 802.11 WEP support
>     device wlan_ccmp         # 802.11 CCMP support
>     device wlan_tkip         # 802.11 TKIP support

> Danach bauen Sie den neuen Kernel und starten Ihr FreeBSD-System neu.

Während des Systemstarts sollten nun einige Informationen ähnlich den folgenden über das von Ihnen verwendete drahtlose Gerät ausgegeben werden:

    ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
    ath0: Ethernet address: 00:11:95:d5:43:62
    ath0: mac 7.9 phy 4.5 radio 5.6

## 31.3.3. Infrastruktur-Modus

Drahtlose Netzwerke werden in der Regel im Infrastruktur-Modus (auch BSS-Modus genannt) betrieben. Dazu werden mehrere drahtlose Access Points zu einem gemeinsamen drahtlosen Netzwerk verbunden. Jedes dieser drahtlosen Netzwerke hat einen eigenen Namen, der als SSID bezeichnet wird. Alle Clients eines drahtlosen Netzwerks verbinden sich in diesem Modus mit einem Access Point.

### 31.3.3.1. FreeBSD-Clients

#### 31.3.3.1.1. Einen Access Point finden

Um nach drahtlosen Netzwerken zu suchen, verwenden Sie `ifconfig`. Dieser Scanvorgang kann einige Zei in Anspruch nehmen, da dazu jede verfügbare Frequenz auf verfügbare Access Points hin überprüft werden muss. Um die Suche zu starten, müssen Sie als Super-User angemeldet sein:

    # ifconfig ath0 up scan
    SSID            BSSID              CHAN RATE  S:N   INT CAPS
    dlinkap         00:13:46:49:41:76    6   54M 29:3   100 EPS  WPA WME
    freebsdap       00:11:95:c3:0d:ac    1   54M 22:1   100 EPS  WPA

> Anmerkung: Ihre Netzwerkkarte muss in den Status `up` versetzt werden, bevor Sie den ersten Scanvorgang starten können. Für spätere Scans ist dies aber nicht mehr erforderlich.

Als Ergebnis erhalten Sie eine Liste mit allen gefundenen BSS/IBSS-Netzwerken. Zusätzlich zur `SSID` (dem Namen des Netzwerks) wird auch die `BSSID` ausgegeben. Dabei handelt es sich um MAC-Adresse des Access Points. Das Feld `CAPS` gibt den Typ des Netzwerks sowie die Fähigkeiten der Stationen innerhalb des Netzwerks an:

`E`

  Extended Service Set (ESS). Zeigt an, dass die Station Teil eines Infrastruktur-Netzwerks ist (und nicht eines IBSS/Ad-hoc-Netzwerks).

`I`

  IBSS/Ad-hoc-Netzwerk. Die Station ist Teil eines Ad-hoc-Netzwerks (und nicht eines ESS-Netzwerks).

`P`

  Privacy. Alle Datenframes, die innerhalb des BSS ausgetauscht werden, sind verschlüsselt. Dieses BSS verwendet dazu kryptografische Verfahren wie WEP, TKIP oder AES-CCMP.

`S`

  Short Preamble. Das Netzwerk verwendet eine kurze Präambel (definiert in 802.11b High Rate/DSSS PHY). Eine kurze Präambel verwendet ein 56 Bit langes Sync-Feld (im Gegensatz zu einer langen Präambel, die ein 128 Bit langes Sync-Feld verwendet).

`s`

  Short slot time. Das 802.11g-Netzwerk verwendet eine kurze Slotzeit, da es in diesem Netzwerk keine veralteten (802.11b) Geräte gibt.

Um eine Liste der bekannten Netzwerke auszugeben, verwenden Sie den folgenden Befehl:

    # ifconfig ath0 list scan

Diese Liste kann entweder automatisch durch das drahtlose Gerät oder manuell durch eine `scan`-Aufforderung aktualisiert werden. Veraltete Informationen werden dabei automatisch entfernt.

#### 31.3.3.1.2. Basiseinstellungen

Dieser Abschnitt beschreibt, wie Sie ein einfaches drahtloses Netzerk ohne Verschlüsselung unter FreeBSD einrichten. Nachdem Sie sich mit den Informationen dieses Abschnitts vertraut gemacht haben, sollten Sie Ihr drahtloses Netzwerk mit WPA verschlüsseln.

Das Einrichten eines drahtlosen Netzwerks erfolgt in drei Schritten: Der Auswahl eines Access Points, der Anmeldung Ihrer Station sowie der Konfiguration Ihrer IP-Adresse.

##### 31.3.3.1.2.1. Einen Access Point auswählen

Im Normalfall wird sich Ihre Station automatisch mit einem der zur Verfügung stehenden Access Points verbinden. Sie müssen dazu lediglich Ihr drahtloses Gerät aktivieren. Alternativ können Sie auch einen Eintrag ähnlich dem folgenden in `/etc/rc.conf` aufnehmen:

    ifconfig_ath0="DHCP"

Wollen Sie sich hingegen mit einem bestimmten Access Point verbinden, müssen Sie dessen SSID angeben:

    ifconfig_ath0="ssid Ihre_SSID DHCP"

Gibt es in Ihrem Netzwerk mehrere Access Points mit der gleichen SSID (was der Einfachheit wegen häufig der Fall ist), können Sie sich dennoch mit einem bestimmten Access Point verbinden. Dazu müssen Sie lediglich die BSSID des Access Points angeben (die Angabe der SSID ist in diesem Fall nicht erforderlich):

    ifconfig_ath0="ssid Ihre_SSID bssid xx:xx:xx:xx:xx:xx DHCP"

Es gibt noch weitere Möglichkeiten, den Zugriff auf bestimmte Access Point zu beschränken, beispielsweise durch die Begrenzung der Frequenzen, auf denen eine Station nach einem Acces Point sucht. Sinnvoll ist ein solches Vorgehen beispielsweise, wenn Ihr drahtloses Gerät in verschiedenen Frequenzbereichen arbeiten kann, da in diesem Fall das Prüfen aller Frequenzen sehr zeitintensiv ist. Um nur innerhalb eines bestimmten Frequenzbereichs nach einem Access Point zu suchen, verwenden Sie die Option `mode`:

    ifconfig_ath0="mode 11g ssid Ihre_SSID DHCP"

Dadurch sucht Ihr drahtloses Gerät nur im 2,4 GHz-Band (802.11g), aber nicht innerhalb des 5 GHz-Bandes nach einem Access Point. Mit der Option `channel` können Sie eine bestimmte Frequenz vorgeben, auf der gesucht werden soll. Die Option `chanlist` erlaubt die Angabe mehrerer erlaubter Frequenzen. Eine umfassende Beschreibung dieser Optionen finden Sie in der Manualpage ifconfig(8).

##### 31.3.3.1.2.2. Authentifizierung

Wenn Sie einen Access Point gefunden haben, muss sich Ihrem Station am Access Point anmelden, bevor Sie Daten übertragen kann. Dazu gibt es verschiedene Möglichkeiten. Am häufigsten wird nach wie vor die sogenannte offene Authentifizierung verwendet. Dabei wird es jeder Station erlaubt, sich mit einem Netzwerk zu verbinden und Daten zu übertragen. Aus Sicherheitsgründen sollte diese Methode allerdings nur zu Testzwecken bei der erstmaligen Einrichtung eines drahtlosen Netzwerks verwendet werden. Andere Authentifizierungsmechanismen erfordern den Austausch kryptografischer Informationen, bevor Sie die Übertragung von Daten erlauben. Dazu gehören der Austausch fixer (vorher vereinbarter) Schlüssel oder Kennwörter sowie der Einsatz komplexerer Verfahren mit Backend-Diensten wie RADIUS. Die meisten Netzwerke nutzen allerdings nach wie vor die offene Authentifizierung, da dies die Voreinstellung ist. Am zweithäufigsten kommt das weiter unten beschriebene WPA-PSK (das auch als WPA Personal bezeichnet wird) zum Einsatz.

> Anmerkung: Verwenden Sie eine Apple® AirPort® Extreme-Basisstation als Access Point, benötigen Sie wahrscheinlich sowohl die Shared-Key-Authentifizierung als auch einen WEP-Schlüssel. Die entsprechende Konfiguration erfolgt entweder in der Datei `/etc/rc.conf` oder über das Programm wpa_supplicant(8). Verwenden Sie nur eine einzige AirPort-Basisstation, benötigen Sie einen Eintrag ähnlich dem folgenden:

>     ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"

> Normalerweise sollten Sie Shared-Key-Authentifizierung aber nicht verwenden, da diese die Sicherheit des WEP-Schlüssel noch weiter verringert. Müssen Sie WEP einsetzen (beispielsweise weil Sie zu veralteten Geräten kompatibel bleiben müssen), sollten Sie WEP nur zusammen mit der offenen Authentifizierung (`open` authentication) verwenden. WEP wird im Abschnitt 31.3.3.1.4 näher beschrieben.

##### 31.3.3.1.2.3. Eine IP-Adresse über DHCP beziehen

Nachdem Sie einen Access Point gefunden und sich authentifiziert haben, benötigen Sie noch eine IP-Adresse, die Sie in der Regel über DHCP zugewiesen bekommen. Dazu müssen Sie lediglich die Option `DHCP` in Ihre in der Datei `/etc/rc.conf` vorhandene Konfiguration Ihres drahtlosen Geräts aufnehmen:

    ifconfig_ath0="DHCP"

Nun können Sie Ihr drahtloses Gerät starten:

    # /etc/rc.d/netif start

Nachdem Sie das Gerät aktiviert haben, können Sie mit `ifconfig` den Status des Geräts `ath0` abfragen:

    # ifconfig ath0
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
            inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
            ether 00:11:95:d5:43:62
            media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
            status: associated
            ssid dlinkap channel 6 bssid 00:13:46:49:41:76
            authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

`status: associated` besagt, dass sich Ihr Gerät mit dem drahtlosen Netzwerk verbunden hat (konkret mit dem Netzwerk `dlinkap`). `bssid 00:13:46:49:41:76` gibt die MAC-Adresse Ihres Access Points aus und die Zeile mit `authmode` informiert Sie darüber, dass Ihre Kommunikation nicht verschlüsselt wird (`OPEN`).

##### 31.3.3.1.2.4. Statische IP-Adressen

Alternativ zu dynamischen IP-Adressen können Sie auch eine statische IP-Adresse verwenden. Dazu ersetzen Sie in Ihrer Konfiguration `DHCP` durch die zu verwendende IP-Adresse. Beachten Sie dabei, dass Sie die anderen Konfigurationsparameter nicht versehentlich verändern:

    ifconfig_ath0="ssid Ihre_ssid inet 192.168.1.100 netmask 255.255.255.0"

#### 31.3.3.1.3. WPA

Bei WPA (Wi-Fi Protected Access) handelt es sich um ein Sicherheitsprotokoll, das in 802.11-Netzwerken verwendet wird, um die Nachteile von WEP (fehlende Authentifizierung und schwache Verschlüsselung) zu vermeiden. WPA stellt das aktuelle 802.1X-Authentifizierungsprotokoll dar und verwendet eine von mehreren Chiffren, um die Datensicherheit zu gewährleisten. Die einzige Chiffre, die von WPA verlangt wird, ist TKIP (Temporary Key Integrity Protocol), eine Chiffre, die die von WEP verwendete RC4-Chiffre um Funktionen zur Prüfung der Datenintegrität und zur Erkennung und Bekämpfung von Einbruchsversuchen erweitert. TKIP ist durch Softwaremodifikationen auch unter veralteter Hardware lauffähig. Im Vergleich zu WEP ist WPA zwar sehr viel sicherer, es ist aber dennoch nicht völlig immun gegen Angriffe. WPA definiert mit AES-CCMP noch eine weitere Chiffre als Alternative zu TKIP. AES-CCMP (das häufig als WPA2 oder RSN bezeichnet wird) sollte, wenn möglich, eingesetzt werden.

WPA definiert Authentifizierungs- und Verschlüsselungsprotokolle. Die Authentifizierung erfolgt in der Regel über eine der folgenden Techniken: 802.1X gemeinsam mit einem Backend-Authentifizierungsdienst wie RADIUS, oder durch einen Minimal-Handshake zwischen der Station und dem Access Point mit einem vorher vereinbarten gemeinsamen Schlüssel. Die erste Technik wird als WPA Enterprise, die zweite hingegen als WPA Personal bezeichnet. Da sich der Aufwand für das Aufsetzen eines RADIUS-Backend-Servers für die meisten drahtlosen Netzwerke nicht lohnt, wird WPA in der Regel als WPA-PSK (WPA, Pre-Shared-Key) konfiguriert.

Die Kontrolle der drahtlosen Verbindung sowie die vorangehende Authentifizierung (über Schlüssel oder durch die Kommunikation mit einem Server) erfolgt über das Programm wpa_supplicant(8), das über die Datei `/etc/wpa_supplicant.conf` eingerichtet wird. Ausführliche Informationen zur Konfiguration des Programms finden sich in der Manualpage wpa_supplicant.conf(5).

##### 31.3.3.1.3.1. WPA-PSK

WPA-PSK oder WPA-Personal basiert auf einem gemeinsamen (vorher vereinbarten) Schlüssel (PSK), der aus einem Passwort generiert und danach als Master-Key des drahtlosen Netzwerks verwendet wird. Jeder Benutzer des drahtlosen Netzwerks verwendet daher den gleichen Schlüssel. WPA-PSK sollte nur in kleinen Netzwerken eingesetzt werden, in denen die Konfiguration eines Authentifizierungsservers nicht möglich oder erwünscht ist.

> Warnung: Achten Sie darauf, dass Sie immer starke Passwörter verwenden, die ausreichend lang sind und, wenn möglich, auch Sonderzeichen enthalten, damit diese nicht leicht erraten und/oder geknackt werden können.

Der erste Schritt zum Einsatz von WPA-PSK ist die Konfiguration der SSID und des gemeinsamen Schlüssels Ihres Netzwerks in der Datei `/etc/wpa_supplicant.conf`:

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

Danach geben Sie in `/etc/rc.conf` an, dass WPA zur Verschlüsselung eingesetzt werden soll und dass die IP-Adresse über DHCP bezogen wird:

    ifconfig_ath0="WPA DHCP"

Nun können Sie Ihr Netzgerät aktivieren:

    # /etc/rc.d/netif start
    Starting wpa_supplicant.
    DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
    DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
    DHCPOFFER from 192.168.0.1
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPACK from 192.168.0.1
    bound to 192.168.0.254 -- renewal in 300 seconds.
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
          protmode CTS roaming MANUAL bintval 100

Alternativ können Sie die Konfiguration von WPA-PSK auch manuell durchführen, wobei Sie wiederum die Konfigurationsdatei `/etc/wpa_supplicant.conf` verwenden:

    # wpa_supplicant -i ath0 -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=TKIP GTK=TKIP]

Im zweiten Schritt starten Sie nun `dhclient`, um eine IP-Adresse vom DHCP-Server zu beziehen:

    # dhclient ath0
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPACK from 192.168.0.1
    bound to 192.168.0.254 -- renewal in 300 seconds.
    # ifconfig ath0
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
          protmode CTS roaming MANUAL bintval 100

> Anmerkung: Enthält Ihre `/etc/rc.conf` bereits die Zeile `ifconfig_ath0="DHCP"`, müssen Sie `dhclient` nicht mehr manuell aufrufen, da `dhclient` in diesem Fall automatisch gestartet wird, nachdem `wpa_supplicant` die Schlüssel übergibt.

Sollte der Einsatz von DHCP nicht möglich sein, können Sie auch eine statische IP-Adresse angeben, nachdem `wpa_supplicant` Ihre Station authentifiziert hat:

    # ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0
    # ifconfig ath0
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
          protmode CTS roaming MANUAL bintval 100

Verwenden Sie DHCP nicht, müssen Sie zusätzlich noch das Standard-Gateway sowie den/die Nameserver manuell festlegen:

    # route add default your_default_router
    # echo "nameserver your_DNS_server" >> /etc/resolv.conf

##### 31.3.3.1.3.2. WPA und EAP-TLS

Die zweite Möglichkeit, WPA einzusetzen, ist die Verwendung eines 802.1X-Backend-Authentifizierungsservers. Diese Variante wird als WPA-Enterprise bezeichnet, um sie vom weniger sicheren WPA-Personal abzugrenzen, das auf dem Austausch gemeinsamer (und vorher vereinbarter Schlüssel) basiert. Die bei WPA-Enterprise verwendete Authentifizierung basiert auf EAP (Extensible Authentication Protocol).

EAP selbst bietet keine Verschlüsselung, sondern operiert in einem verschlüsselten Tunnel. Es gibt verschiedene, auf EAP basierende Authentifizierungsmethoden, darunter EAP-TLS, EAP-TTLS sowie EAP-PEAP.

Bei EAP-TLS (EAP with Transport Layers Security) handelt es sich um sehr gut unterstütztes Authentifizierungsprotokoll, da es sich dabei um die erste EAP-Methode handelt, die von der Wi-Fi Alliance zertifiziert wurde. EAP-TLS erfordert drei Zertifikate: Das (auf allen Rechnern installierte) CA-Zertifikat, das Server-Zertifikat Ihres Authentifizierungsservers, sowie ein Client-Zertifikat für jeden drahtlosen Client. Sowohl der Authentifizierungsservers als auch die drahtlosen Clients authentifizieren sich gegenseitig durch ihre Zertifikate, wobei sie überprüfen, ob diese Zertifikate auch von der Zertifizierungs-Authorität (CA) des jeweiligen Unternehmens signiert wurden.

Die Konfiguration erfolgt (analog zu WPA-PSK) über die Datei `/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"
    }

  Der Name des Netzwerks (die SSID).
  Das RSN/WPA2-Protokoll (IEEE 802.11i) wird verwendet.
  Die `key_mgmt`-Zeile bezieht sich auf das verwendete Key-Management-Protokoll. In diesem Beispiel wird WPA gemeinsam mit der EAP-Authentifizierung verwendet (`WPA-EAP`).
  Die für die Verbindung verwendete EAP-Methode.
  Das `identity`-Feld enthält den von EAP verwendeten Identifizierungsstring.
  Das Feld `ca_cert` gibt den Pfad zum CA-Zertifikat an. Dieses Datei wird benötigt, um das Server-Zertifikat zu verifizieren.
  Die `client_cert`-Zeile gibt den Pfad zum Client-Zertifikat an. Jeder Client hat ein eigenes, innerhalb des Netzwerks eindeutiges Zertifikat.
  Das Feld `private_key` gibt den Pfad zum privaten Schlüssel des Client-Zertifikat an.
  Das Feld `private_key_passwd` enthält die Passphrase für den privaten Schlüssel.

Danach fügen Sie die folgende Zeile in `/etc/rc.conf` ein:

    ifconfig_ath0="WPA DHCP"

Nun können Sie Ihr drahtloses Gerät über das `rc.d`-System aktivieren:

    # /etc/rc.d/netif start
    Starting wpa_supplicant.
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPACK from 192.168.0.20
    bound to 192.168.0.254 -- renewal in 300 seconds.
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
          txpowmax 36 protmode CTS roaming MANUAL bintval 100

Alternativ können Sie Ihr drahtloses Gerält wiederum manuell über `wpa_supplicant` und `ifconfig` aktivieren.

##### 31.3.3.1.3.3. WPA und EAP-TTLS

Bei EAP-TLS müssen sowohl der Authentifizierungsserver als auch die Clients jeweils ein eigenes Zertifikat aufweisen. Setzen Sie hingegen EAP-TTLS (EAP-Tunneled Transport Layer Security) ein, ist das Client-Zertifikat optional. EAP-TTLS geht dabei ähnlich vor wie verschlüsselte Webseiten, bei denen der Webserver einen sicheren SSL-Tunnel erzeugen kann, ohne dass der Besucher dabei über ein client-seitiges Zertifikat verfügen muss. EAP-TTLS verwendet einen verschlüsselten TLS-Tunnel zum sicheren Transport der Authentifizierungsdaten.

Die Konfiguration von EAP-TTLS erfolgt in der Datei `/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"
    }

  Die für die Verbindung verwendete EAP-Methode.
  Das `identity`-Feld enthält den Identifizierungsstring für die EAP-Authentifizierung innerhalb des verschlüsselten TlS-Tunnels.
  Das `password`-Feld enthält die Passphrase für die EAP-Authentifizierung.
  Das Feld `ca_cert` gibt den Pfad zum CA-Zertifikat an, das benötigt wird, um das Server-Zertifikat zu verifizieren.
  Die innerhalb des verschlüsselten TLS-Tunnels verwendete Authentifizierungsmethode. In unserem Beispiel handelt es sich dabei um EAP und MD5. Diese Phase der “inneren Authentifizierung” wird oft als “phase2” bezeichnet.

Folgende Zeile muss zusätzlich in die Datei `/etc/rc.conf` aufgenommen werden:

    ifconfig_ath0="WPA DHCP"

Nun können Sie Ihr drahtloses Gerät aktivieren:

    # /etc/rc.d/netif start
    Starting wpa_supplicant.
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPACK from 192.168.0.20
    bound to 192.168.0.254 -- renewal in 300 seconds.
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
          txpowmax 36 protmode CTS roaming MANUAL bintval 100

##### 31.3.3.1.3.4. WPA und EAP-PEAP

PEAP (Protected EAP) wurde als Alternative zu EAP-TTLS entwickelt. Es gibt zwei verschiedene PEAP-Methoden, wobei es sich bei PEAPv0/EAP-MSCHAPv2 um die häufiger verwendete Methode handelt. In den folgenden Ausführungen wird der Begriff PEAP synonym für diese EAP-Methode verwendet. PEAP ist nach EAP-TLS der am häufigsten verwendete und am besten unterstützte EAP-Standard.

PEAP arbeitet ähnlich wie EAP-TTLS: Es verwendet ein server-seitiges Zertifikat, um einen verschlüsselten TLS-Tunnel zu erzeugen, über den die sichere Authentifizierung zwischen den Clients und dem Authentifizierungsserver erfolgt. In Sachen Sicherheit unterscheiden sich EAP-TTLS und PEAP allerdings: PEAP überträgt den Benutzernamen im Klartext und verschlüsselt nur das Passwort, während EAP-TTLS sowohl den Benutzernamen als auch das Passwort über den TLS-Tunnel überträgt.

Um EAP-PEAP einzurichten, müssen Sie die Konfigurationsdatei `/etc/wpa_supplicant.conf` anpassen:

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

  Die für die Verbindung verwendete EAP-Methode.
  Das `identity`-Feld enthält den Identifizierungsstring für die innerhalb des verschlüsselten TLS-Tunnels erfolgende EAP-Authentifizierung.
  Das Feld `password` enthält die Passphrase für die EAP-Authentifizierung.
  Das Feld `ca_cert` gibt den Pfad zum CA-Zertifikat an, das zur Verifizierung des Server-Zertifikats benötigt wird.
  Dieses Feld enthält die Parameter für die erste Phase der Authentifizierung (also den TLS-Tunnel). Je nach dem, welchen Authentifizierungsserver Sie verwenden, müssen Sie hier einen unterschiedlichen Wert angeben. In den meisten Fällen wird dieses Feld den Wert “client EAP encryption” aufweisen, der durch die Angabe von `peaplabel=0` gesetzt wird. Weitere Informationen zur Konfiguration von PEAP finden Sie in der Manualpage wpa_supplicant.conf(5).
  Das innerhalb des verschlüsselten TLS-Tunnels verwendete Authentifizierungsprotokoll. In unserem Beispiel handelt es sich dabei um `auth=MSCHAPV2`.

Danach fügen Sie die folgende Zeile in `/etc/rc.conf` ein:

    ifconfig_ath0="WPA DHCP"

Zuletzt müssen Sie die Netzkarte noch aktivieren:

    # /etc/rc.d/netif start
    Starting wpa_supplicant.
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPREQUEST on ath0 to 255.255.255.255 port 67
    DHCPACK from 192.168.0.20
    bound to 192.168.0.254 -- renewal in 300 seconds.
    ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
          status: associated
          ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
          authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
          txpowmax 36 protmode CTS roaming MANUAL bintval 100

#### 31.3.3.1.4. WEP

WEP (Wired Equivalent Privacy) ist Teil des ursprünglichen 802.11-Standards. Es enthält keinen Authentifzierungsmechanismus und verfügt lediglich über eine schwache Zugriffskontrolle, die sehr leicht geknackt werden kann.

WEP kann über `ifconfig` aktiviert werden:

    # ifconfig ath0 ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012 \
            inet 192.168.1.100 netmask 255.255.255.0

- Mit `weptxkey` geben Sie an, welcher WEP-Schlüssel für für die Datenübertragung verwendet wird (in unserem Beispiel ist dies der dritte Schlüssel). Der gleiche Schlüssel muss auch am Access Point eingestellt sein. Kennen Sie den vom Access Point verwendeten Schlüssel nciht, sollten Sie zuerst den Wert `1` (d.h. den ersten Schlüssel) für diese Variable verwenden.

- Mit `wepkey` legen Sie den zu verwendenden WEP-Schlüssel in der Form `Nummer:Schlüssel` fest. Ist der Schlüssel "Nummer" nicht vorhanden, wird automatisch Schlüssel `1` verwendet. Die Angabe von "Nummer" ist zwingend nötig, wenn Sie einen anderen als den ersten Schlüssel verwenden wollen.

  > Anmerkung: In Ihrer Konfiguration müssen Sie `0x3456789012` durch den an Ihrem Access Point konfigurierten Schlüssel ersetzen.

Weitere Informationen finden Sie in der Manualpage ifconfig(8).

Das Programm `wpa_supplicant` eignet sich ebenfalls dazu, WEP für Ihr drahtloses Gerät zu aktivieren. Obige Konfiguration lässt sich dabei durch die Aufnahme der folgenden Zeilen in die Datei `/etc/wpa_supplicant.conf` realisieren:

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

Danach müssen Sie das Programm noch aufrufen:

    # wpa_supplicant -i ath0 -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

Der IBSS-Modus (auch als Ad-hoc-Modus bezeichnet), ist für Punkt-zu-Punkt-Verbindungen vorgesehen. Um beispielsweise eine Ad-hoc-Verbindung zwischen den Rechnern `A` und `B` aufzubauen, benötigen Sie lediglich zwei IP-Adressen und eine SSID.

Auf dem Rechner `A` geben Sie Folgendes ein:

    # ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0
    # ifconfig ath0
      ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> 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 <adhoc> (autoselect <adhoc>)
          status: associated
          ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
          authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

Der `adhoc`-Parameter gibt an, dass die Schnittstelle im IBSS-Modus läuft.

Rechner `B` sollte nun in der Lage sein, Rechner `A` zu finden:

    # ifconfig ath0 up scan
      SSID            BSSID              CHAN RATE  S:N   INT CAPS
      freebsdap       02:11:95:c3:0d:ac    2   54M 19:3   100 IS

Der Wert `I` (Spalte CAPS) gibt an, dass sich Rechner `A` im Ad-hoc-Modus befindet. Nun müssen Sie nur noch Rechner `B` eine unterschiedliche IP-Adresse zuweisen:

    # ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
    # ifconfig ath0
      ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
          inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
          ether 00:11:95:d5:43:62
          media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
          status: associated
          ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
          authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100

Damit sind die Rechner `A` und `B` bereit und können untereinander Daten austauschen.

## 31.3.5. FreeBSD Host Access Points

Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie bitte das Original in englischer Sprache. Wenn Sie helfen wollen, diesen Abschnitt zu übersetzen, senden Sie bitte eine E-Mail an die Mailingliste 'FreeBSD German Documentation Project' `<de-bsd-translators@de.FreeBSD.org>`.

## 31.3.6. Problembehandlung

Die folgenden Auflistung zeigt, wie Sie einige häufig auftretende Probleme bei der Einrichtung Ihres drahtlosen Netzwerks beheben können.

- Wird Ihr Access Point bei der Suche nicht gefunden, sollten Sie überprüfen, ob Sie bei Konfiguration Ihres drahtlosen Geräts die Anzahl der Kanäle beschränkt haben.

- Wenn Sie sich nicht mit Ihrem Access Point verbinden können, sollten Sie überprüfen, ob die Konfiguration Ihrer Station auch der des Access Points entspricht. Achten Sie dabei speziell auf die Authentifzierungsmethode und die Sicherheitsprotokolle. Halten Sie Ihre Konfiguration so einfach wie möglich. Verwenden Sie ein Sicherheitsprotokoll wie WPA oder WEP, sollten Sie testweise Ihren Access Point auf offene Authentifizierung und keine Sicherheit einstellen. Danach versuchen Sie sich erneut mit Ihren Access Point zu verbinden.

- Nachdem Sie sich mit dem Access Point verbinden können, prüfen Sie die Sicherheitseinstellungen, beginnend mit einfachen Werkzeugen wie ping(8).

  Das Programm `wpa_supplicant` kann Ihnen bei der Fehlersuche helfen. Dazu starten Sie es manuell mit der Option `-dd` und durchsuchen anschließend die Protokollinformationen nach eventuellen Fehlermeldungen.

- Zusätzlich gibt es auch zahlreiche Low-Level-Debugging-Werkzeuge. Die Ausgabe von Debugging-Informationen des 802.11 Protocol Support Layers lassen sich mit dem Programm `wlandebug` (das sich unter `/usr/src/tools/tools/net80211` befindet) aktivieren. Um beispielsweise während der Suche nach Access Points und des Aufbaus von 802.11-Verbindungen (Handshake) auftretende Systemmeldungen auf die Konsole auszugeben, verwenden Sie den folgenden Befehl:

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

  Der 802.11-Layer liefert umfangreiche Statistiken, die Sie mit dem Werkzeug `wlanstats` abrufen können. Diese Statistiken sollten alle Fehler identifizieren, die im 802.11-Layer auftreten. Beachten Sie aber, dass einige Fehler bereits im darunterliegenden Gerätetreiber auftreten und daher in diesen Statistiken nicht enthalten sind. Wie Sie Probleme des Gerätetreibers identifizieren, entnehmen Sie bitte der Dokumentation Ihres Gerätetreibers.

Können Sie Ihr Problem durch diese Maßnahmen nicht lösen, sollten Sie einen Problembericht (PR) erstellen und die Ausgabe der weiter oben genannten Werkzeuge in den Bericht aufnehmen.

Zurück | Zum Anfang | Weiter
Gateways und Routen | Nach oben | Bluetooth

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.