Gentoo Logo

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


4. Drahtlose Netzwerkfunktionalität

Inhalt:

4.a. Einleitung

Kabellose Netzwerkverbindungen sind unter Linux recht einfach einzurichten. Es gibt zwei Möglichkeiten, Wifi zu konfigurieren: Mit grafischen Clients oder mit der Kommandozeile.

Der einfachste Weg führt über die Verwendung von grafischen Clients, sobald Sie eine Desktopumgebung installiert haben. Die meisten grafischen Clients, wie z.B. wicd und NetworkManager, sind ziemlich selbsterklärend. Sie bieten ein praktisches Interface an, mit dem Sie innerhalb von ein paar Sekunden mit ein paar Mausklicks in ein Netzwerk gelangen.

Notiz: wicd bietet zusätzlich zum grafischen Interface ein Kommandozeilen-Tool an. Sie erhalten dieses, indem Sie wicd mit aktiviertem ncurses USE-Flag emergen. Das wicd-curses Tool ist insbesondere für Leute nützlich, die keine gtk-basierte Desktopumgebung verwenden, aber trotzdem ein einfaches Kommandozeilenwerkzeug haben wollen, das keine manuelle Bearbeitung von Konfigurationsdateien erforderlich macht.

Wenn Sie jedoch keinen grafischen Client verwenden wollen, dann können Sie Wifi auf der Kommandozeile durch Bearbeiten einiger Konfigurationsdateien konfigurieren. Das dauert etwas länger, aber erfordert auch die wenigsten heruntergeladenen und installierten Pakete. Da die grafischen Clients größtenteils selbsterklärend sind (mit hilfreichen Screenshots auf deren Homepages), werden wir uns hier auf die Kommandozeilenalternativen konzentrieren.

Sie können kabellose Netzwerke auf der Kommandozeile aufsetzen, indem Sie wireless-tools und wpa_supplicant installieren. Was Sie hier beachten müssen, ist, dass Sie die kabellosen Netzwerke global konfigurieren, und nicht pro Netzwerkkarte.

Die beste Wahl ist wpa_supplicant. Sie finden eine Auflistung der unterstützten Treiber auf der wpa_supplicant Seite.

wireless-tools unterstützt fast alle Karten und Treiber, aber es kann keine Verbindung zu Access-Points, die nur WPA unterstützen, aufbauen. Wenn Ihre Netzwerke nur WEP-Verschlüsselung anbieten oder komplett ungeschützt sind, dann werden Sie die Einfachheit der wireless-tools vorziehen.

Warnung: Der Treiber linux-wlan-ng wird zu diesem Zeitpunkt nicht von baselayout unterstützt. Dies liegt daran, dass linux-wlan-ng eine eigene Einrichtung und Konfiguration hat, die sich von allen anderen unterscheidet. Es gibt Gerüchte, dass die linux-wlan-ng Entwickler ihre Umgebung zu der von wireless-tools wechseln wollen. Wenn dies geschieht steht es Ihnen frei linux-wlan-ng mit baselayout zu verwenden.

4.b. WPA Supplicant

WPA Supplicant ist ein Paket, welches es Ihnen erlaubt, sich mit einem Access-Point mit aktiviertem WPA zu verbinden.

Befehlsauflistung 2.1: Installieren von wpa_supplicant

# emerge net-wireless/wpa_supplicant

Wichtig: Sie müssen CONFIG_PACKET in Ihrem Kernel aktiviert haben, damit wpa_supplicant funktionieren kann. Führen Sie grep CONFIG_PACKET /usr/src/linux/.config aus, um zu sehen, ob Sie es in Ihrem Kernel aktiviert haben.

Notiz: Abhängig von Ihren USE-Flags kann wpa_supplicant ein grafisches, in Qt4 geschriebenes Interface, das sich gut in KDE integriert, installieren. Um dieses zu erhalten, führen Sie echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use als root aus, bevor Sie wpa_supplicant emergen.

Nun muss /etc/conf.d/net konfiguriert werden, so dass wpa_supplicant gegenüber wireless-tools bevorzugt wird (wenn beide installiert sind ist wireless-tools der Standard).

Befehlsauflistung 2.2: Konfiguration von /etc/conf.d/net für wpa_supplicant

# wpa_supplicant gegenüber wireless-tools bevorzugen
modules="wpa_supplicant"

# Es ist wichtig, dass wir wpa_supplicant mitteilen welcher Treiber
# verwendet werden soll, da es nicht sehr gut raten kann.
wpa_supplicant_eth0="-Dmadwifi"

Notiz: Wenn Sie den host-ap Treiber verwenden, müssen Sie Ihre Karte in den Managed Modus versetzen, bevor diese mit wpa_supplicant korrekt verwendet werden kann. Sie können dies mit iwconfig_eth0="mode managed" in /etc/conf.d/net erreichen.

Das war einfach, oder? Trotzdem müssen wir noch wpa_supplicant selbst konfigurieren. Dies ist einen Tick schwieriger und abhängig davon wie abgesichert die Access-Points sind, mit denen Sie sich verbinden wollen. Das folgende Beispiel ist vereinfacht worden und stammt aus /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz, welches mit wpa_supplicant ausgeliefert wird.

Befehlsauflistung 2.3: Ein /etc/wpa_supplicant/wpa_supplicant.conf Beispiel

# Die folgende Zeile nicht ändern, sonst wird nichts funktionieren
ctrl_interface=/var/run/wpa_supplicant

# Sicherstellen, dass nur root die WPA Konfiguration lesen kann
ctrl_interface_group=0

# wpa_supplicant soll sich um scannen und AP Auswahl kümmern
ap_scan=1

# Einfacher Fall: WPA-PSK, wobei PSK eine ASCII Passphrase ist,
# erlauben aller gülten Chiffre
network={
  ssid="einfach"
  psk="sehr geheime Passphrase"
  # Je höher die Priorität, desto schneller werden wir verknüpft
  priority=5
}

# Dasselbe wie zuvor, jedoch mit SSID-spezifischem scannen (für APs,
#die SSID Broadcast ablehnen)
network={
  ssid="zweite ssid"
  scan_ssid=1
  psk="sehr geheime Passphrase"
  priority=2
}

# Nur WPA-PSK wird verwendet. Jede gültige Chiffre-Kombination wird
# akzeptiert
network={
  ssid="Beispiel"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# Klartext Verbindung (kein WPA, kein IEEE 802.1X)
network={
  ssid="klartext-test"
  key_mgmt=NONE
}

# Verbindung mit gemeinsamen WEP Schlüssel
# (kein WPA, kein IEEE 802.1X)
network={
  ssid="statischer-wep-test"
  key_mgmt=NONE
  # Schlüssel in Anführungszeichen sind ASCII-Schlüssel
  wep_key0="abcde"
  # Schlüssel ohne Anführungszeichen sind Hex-Schlüssel
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# Verbindung mit gemeinsamen WEP Schlüssel (kein WPA, kein IEEE 802.1X)
# mit Shared Key IEEE 802.11 Authentifizierung
network={
  ssid="statischer-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# IBSS/ad-hoc Netzwerk mit WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="geheime Passphrase"
}

4.c. Wireless-Tools

Erste Einrichtung und Managed Modus

Wireless Tools liefert eine generische Art grundlegende Wireless-Schnittstellen zu konfigurieren; bis zum WEP Sicherheitslevel. WEP ist zwar eine schwache Sicherheitsmethode, aber auch die am meisten verbreitetste.

Die Konfiguration von Wireless-Tools wird von einer kleinen Anzahl von Hauptvariablen kontrolliert. Die folgende Beispielskonfigurationsdatei sollte allen Ihren Bedürfnissen entsprechen. Eins sollte jedoch beachtet werden: bei keiner Konfiguration gilt die Regel "verbinde mit dem stärksten unverschlüsselten Access-Point", wir versuchen unter allen Umständen eine Verbindung mit irgendetwas aufzubauen.

Befehlsauflistung 3.1: Installieren von wireless-tools

# emerge net-wireless/wireless-tools

Notiz: Auch wenn Sie Ihre Wireless-Einstellungen in /etc/conf.d/wireless speichern können, empfiehlt dieser Leitfaden dennoch dass Sie diese in /etc/conf.d/net speichern.

Wichtig: Sie werden die Dokumentation über Variablennamen konsultieren müssen.

Befehlsauflistung 3.2: Beispielseinrichtung von iwconfig in /etc/conf.d/net

# iwconfig gegenüber wpa_supplicant bevorzugen
modules="iwconfig"

# Konfiguriere WEP Schlüssel für Access-Points mit Namen ESSID1 und ESSID2
# Sie können bis zu vier WEP Schlüssel konfigurieren, aber es kann
# immer nur einer zu einem Zeitpunkt aktiv sein. Daher wird ein Standardindex
# von [1] verwendet um den Schlüssel [1] zu setzen und danach auch um den
# aktiven Schlüssel auf [1] zu wechseln. Wir tun dies für den Fall, dass Sie
# anderen ESSIDs andere WEP Schlüssel als [1] zuweisen.
#
# Ein vorangehendes s: bedeutet, dass es sich um einen ASCII Schlüssel handelt,
# ansonsten ist es ein HEX Schlüssel.
#
# enc open specified open security (am sichersten)
# enc restricted specified restricted security (am wenigsten sicher)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# Das folgende läuft nur, wenn für verfügbare Access-Points gescannt wird

# Manchmal ist mehr als ein Access-Point sichtbar, daher müssen wir
#eine bevorzugte Reihenfolge der Verbindung definieren
preferred_aps="'ESSID1' 'ESSID2'"

Feinabstimmung der Auswahl von Access-Points

Sie können einige weitere Optionen hinzufügen um eine Feinabstimmung, der Auswahl der Access-Points, zu erreichen. Normalerweise sind diese Einstellungen nicht notwendig.

Sie können entschieden ob nur mit bevorzugten Access-Points verbunden werden soll, oder nicht. Standardmäßig wird, wenn alles konfigurierte fehlschlug und mit einem unverschlüsselten Access-Point verbunden werden kann, dies auch erfolgen. Dies kann von der associate_order Variable kontrolliert werden. Es folgt eine Tabelle mit den Werten und welche Funktion sie ausüben.

Wert Beschreibung
any Standardverhalten
preferredonly Es wird nur mit sichtbaren APs in der bevorzugten Liste verbunden
forcepreferred Es wird zwinged mit APS in der bevorzugten Reihenfolge verbunden, wenn Sie bei einem Scan nicht gefunden wurden.
forcepreferredonly Es wird nicht nach APs gescannt, stattdessen wird versucht der Reihenfolge nach mit jeden einzelnen eine Verbindung aufzubauen
forceany Genau wie forcepreferred und es wird zudem mit jedem anderen verfügbaren AP verbunden

Schließlich haben wir Auslese durch blacklist_aps und unique_ap. blacklist_aps funktioniert in ähnlicher Weise wie preferred_aps. unique_ap ist ein yes oder no Wert, der mitteilt ob eine zweite Wireless-Schnittstelle sich mit demselben Access-Point verbinden kann wie die erste Schnittstelle.

Befehlsauflistung 3.3: Beispiele von blacklist_aps und unique_ap

# Manchmal wollen Sie sich nie mit bestimmten Access-Points verbinden
blacklist_aps="'ESSID3' 'ESSID4'"

# Wenn Sie mehr als eine Wireless-Karte besitzen, dann können Sie
# definieren ob sich jede Karte mit demselben Access-Point assoziieren darf
# oder nicht. Werte sind "yes" und "no", Standard ist "yes".
unique_ap="yes"

Ad-Hoc und Master Modi

Wenn Sie sich als einen Ad-Hoc Knoten einrichten wollen, weil die Verbinung mit Access-Points im Managed-Modus fehlschlägt, dann können Sie folgendes tun.

Befehlsauflistung 3.4: Rückfall auf Ad-Hoc Modus

adhoc_essid_eth0="Dieser Ad-Hoc Knoten"

Was ist mit der Verbindung zu Ad-Hoc Netzwerken oder das Laufen im Master-Modus um ein Access-Point zu werden? Hier ist eine Konfiguration für genau das! Sie müssen unter Umständen, wie oben beschrieben, WEP Schlüssel angeben.

Befehlsauflistung 3.5: Beispiels ad-hoc/master Konfiguration

# Setzen des Modus. Kann entweder Managed (Standard), Ad-Hoc oder
# Master sein. Nicht alle Treiber unterstützten alle Modi.
mode_eth0="ad-hoc"

# Setzen der ESSID für die erste Schnittstelle im Managed Modus, dies
# zwingt die Schnittstelle dazu den Versuch zu starten, eine Verbindung mit der
# spezifizierten ESSID aufzubauen und sonst nichts
essid_eth0="Dieser Ad-Hoc Knoten"

# Wir verwerden Kanal 3, wenn Sie keinen spezifzieren
channel_eth0="9"

Wichtig: Das folgende stammt wörtlich aus der BSD-Wavelan-Dokumentation, welche sich in der NetBSD Dokumentation findet. Es gibt 14 mögliche Kanäle. Es wurde berichtet, dass Kanäle 1-11 legal sind in Nordamerika, Kanäle 1-13 für den größten Teil von Europa, Kanäle 10-13 für Frankreich und nur Kanal 14 für Japan. Wenn im Zweifel, wenden Sie sich bitte an die Dokumentation, die mit Ihrer Karte oder Ihrem Access-Point ausgeliefert wurde. Stellen Sie sicher, dass der Kanal, den Sie wählen auch derselbe ist, den Sie für Ihren Access-Point (oder die andere Karte im Ad-Hoc Netzwerk) gewählt haben. Der Standard für Karten, die in den Vereinigten Staaten und dem größten Teil von Europa verkauft werden ist 3. Der Standard für Karten die in Frankreich verkauft werden ist 11 und der Standard für Karten die in Japan verkauft werden ist 14.

Fehlerbehebung bei Wireless-Tools

Es gibt einige weitere Variablen die Sie verwenden können, die Ihnen helfen Ihr Wireless zum Laufen zu kriegen, wegen Treiber- oder Umgebungsproblemen. Hier ist eine Tabelle mit weiteren Dingen die Sie versuchen können:

Variable Standardwert Beschreibung
iwconfig_eth0 Siehe die iwconfig man Seite für Details was iwconfig gesendet werden soll
iwpriv_eth0 Siehe die iwpriv man Seite für Details was iwpriv gesendet werden soll
sleep_scan_eth0 0 Die Anzahl der Sekunden die gewartet werden bevor ein Scan versucht wird. Dies wird benötigt wenn der/das Treiber/Firmware mehr Zeit benötigt um aktiv zu werden, bevor es verwendet werden kann.
sleep_associate_eth0 5 Die Anzahl der Sekunden die die Schnittstelle warten soll um sich mit dem Access-Point zu assoziieren, bevor es zum Nächsten übergeht
associate_test_eth0 MAC Einige Treiber setzen die MAC Adresse assoziiert mit einer ungültigen nicht zurück wenn sie die Verbindung verlieren oder versuchen zu assoziieren. Einige Treiber setzen das Qualitätslevel nicht zurück wenn sie die Verbindung verlieren oder versuchen zu assoziieren. Gültige Einstellungen sind MAC, quality und all.
scan_mode_eth0 Einige Treiber müssen im Ad-Hoc Modus scannen, also sollten Sie versuchen hier ad-hoc zu setzen, wenn das Scannen fehlschlägt.
iwpriv_scan_pre_eth0 Sendet einige iwpriv Befehle zur Schnittstelle vor dem scannen. Siehe die iwpriv man Seite für weitere Details
iwpriv_scan_post_eth0 Sendet einige iwpriv Befehle zur Schnittstelle nach dem scannen. Siehe die iwpriv man Seite für weitere Details

4.d. Definieren von Netzwerkkonfigurationen nach ESSID

Manchmal kann es vorkommen, dass Sie bei ESSID1 eine statische IP benötigen und bei der Verbindung mit ESSID2 benötigen Sie DHCP. Genauer gesagt können die meisten der Modulvariablen per ESSID kontrolliert werden. So funktioniert es:

Notiz: Diese funktionieren, wenn Sie WPA Supplicant oder Wireless-Tools verwenden.

Wichtig: Sie werden die Dokumentation über Variablennamen konsultieren müssen.

Befehlsauflistung 4.1: Netzwerkeinstellungen nach ESSID gehen vor

config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"

config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"

# Wir können Nameserver und auch andere Dinge definieren
# Anmerkung: DHCP überschreibt diese Einstellungen, sofern es ihm
# nicht verboten wurde
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="suche.diese.Domäne suche.jene.Domäne"

# Sie überschreiben anhand der MAC-Adresse des Access-Points
# Dies ist hilfreich wenn Sie sich an verschiedene Orte begeben, die dieselbe
# ESSID haben
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 9. Februar 2013

Die Originalversion dieses Dokuments wurde zuletzt am 1. Juni 2014 aktualisiert

Zusammenfassung: Wireless kann eine heikle Angelegenheit sein. Mit etwas Glück kriegen Sie es zum Laufen!

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Entwickler

Tavis Ormandy
Gentoo Alpha Entwickler

Jason Huebel
Gentoo AMD64 Entwickler

Guy Martin
Gentoo HPPA Entwickler

Pieter Van den Abeele
Gentoo PPC Entwickler

Joe Kallar
Gentoo SPARC Entwickler

John P. Davis
Bearbeiter

Pierre-Henri Jondot
Bearbeiter

Eric Stockbridge
Bearbeiter

Rajiv Manglani
Bearbeiter

Jungmin Seo
Bearbeiter

Stoyan Zhekov
Bearbeiter

Jared Hudson
Bearbeiter

Colin Morey
Bearbeiter

Jorge Paulo
Bearbeiter

Carl Anderson
Bearbeiter

Jon Portnoy
Bearbeiter

Zack Gilburd
Bearbeiter

Jack Morgan
Bearbeiter

Benny Chuang
Bearbeiter

Erwin
Bearbeiter

Joshua Kinard
Bearbeiter

Tobias Scherbaum
Bearbeiter

Xavier Neys
Bearbeiter

Joshua Saddler
Bearbeiter

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Tobias Scherbaum
Übersetzer

Jens Schittenhelm
Übersetzer

Patrick Sudowe
Übersetzer

Torsten Veller
Übersetzer

Michael Frey
Übersetzer

Markus Nigbur
Übersetzer

Boris Ruppert
Übersetzer

Jan Hendrik Grahl
Übersetzer

Tobias Heinlein
Übersetzer

Christian Hartmann
Korrektor

Michael Imhof
Korrektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.