linux-ubuntu-debian networking wifi wpa_supplicant iw wireless

WiFi Setup: Wireless Tools, iw & wpa_supplicant (Artikel 018)

Konfiguration von WLAN-Schnittstellen auf der Kommandozeile. Einsatz von iw, wpa_supplicant und Debugging von Funkverbindungen auf Headless-Systemen.

# Wireless CLI: WLAN-Management ohne Desktop-GUI

TL;DR / Management Summary WLAN auf einem Linux-Server? In Zeiten von IoT-Gateways und Edge-Computing kommt das häufiger vor als man denkt. Vergessen Sie NetworkManager-GUIs. Ein Senior Admin nutzt iw für das Interface-Management und wpa_supplicant für die Authentifizierung (WPA2/WPA3). Wer diese Tools beherrscht, kann auch in schwierigen Umgebungen (Headless, Industrial PCs) stabile Funkverbindungen herstellen.


# 1. Einführung & Architektur

Der Wireless Stack.

WLAN unter Linux besteht aus drei Schichten:

  1. Kernel-Treiber: Steuert die Hardware (cfg80211/mac80211).
  2. iw: Das moderne Tool für physikalische Link-Parameter (Frequenz, Kanäle, TX-Power).
  3. wpa_supplicant: Der Dämon für WPA/WPA2/Enterprise Authentifizierung.
graph TD
    A[Hardware: WLAN Card] --- B[Kernel Driver]
    B --- C[Interface: wlan0]
    C --- D[iw: Link Setup]
    C --- E[wpa_supplicant: Auth/Handshake]
    E --- F[IP Layer: DHCP/Static]

# 2. Hardware-Check & iw

Ist die Karte bereit?

# Interface finden

# Zeige alle Wireless-Geräte
iw dev

# Scan nach Netzwerken

# Interface aktivieren
sudo ip link set wlan0 up

# Umgebung scannen
sudo iw dev wlan0 scan | grep SSID

# Physikalische Limits prüfen

# Welche Frequenzen und Bandbreiten kann meine Karte?
iw list

# 3. Authentifizierung mit wpa_supplicant

Sicher ins Netz.

# Passwort verschlüsseln

Speichern Sie WLAN-Passwörter niemals im Klartext in der Konfiguration!

wpa_passphrase "MEIN_WLAN" "SuperSecretPassword" | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf

# Konfigurations-Datei (/etc/wpa_supplicant/wpa_supplicant.conf)

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE

network={
    ssid="MEIN_WLAN"
    psk=be76e050... # Verschlüsseltes Passwort
    key_mgmt=WPA-PSK
}

# 4. Day-2 Operations: Automatisierung

Dauerhafte Verbindung.

# Starten via Systemd

Ubuntu/Debian bieten ein Template-Service an:

sudo systemctl enable --now wpa_supplicant@wlan0

# IP-Adresse via DHCP

Wenn Sie kein Netplan nutzen, können Sie den DHCP-Client manuell starten (nur für Debugging!):

sudo dhclient wlan0

# 5. Troubleshooting & “War Stories”

Wenn der Empfang schlecht ist.

# Story 1: “Der gesperrte Funkkanal (RF-Kill)”

Symptom: iw dev wlan0 scan gibt “Operation not permitted” zurück, Interface lässt sich nicht auf up setzen. Ursache: Hardware- oder Software-Switch blockiert den Funk (Regulatory Domain). Lösung: rfkill list prüfen. Wenn blocked: sudo rfkill unblock wifi.

# Story 2: “Roaming-Hänger im RZ”

Symptom: Ein mobiler Node (z.B. Roboter im Lager) verliert die Verbindung, wenn er sich zwischen zwei Access Points bewegt. Ursache: wpa_supplicant hält zu lange an einem schwachen Signal fest (Stickiness). Lösung: Optimieren Sie den bgscan Parameter in der wpa_supplicant.conf: bgscan="simple:30:-65:300" (Scannt alle 30s, wenn Signal schlechter als -65dBm).


# 6. Sicherheit & Hardening

  • WPA3: Wenn Hardware und OS modern genug sind, nutzen Sie key_mgmt=SAE in der Konfig.
  • Enterprise (802.1X): Für Firmennetze mit RADIUS brauchen Sie zusätzliche Blöcke wie identity und password (und Zertifikate).
  • MAC-Randomisierung: Verhindert Tracking, kann aber in Firmennetzen (MAC-Filter) zu Problemen führen. Deaktivierbar via mac_addr=0 in der Config.

# Anhang: Cheatsheet

Befehl Wirkung
iw dev wlan0 link Zeigt aktuelle Verbindungsdaten (Signalstärke, Rate).
iw wlan0 info Zeigt Hardware-Fähigkeiten.
wpa_cli Interaktive Shell für wpa_supplicant (Status, Scan, Connect).
journalctl -u wpa_supplicant@wlan0 Logs für die WLAN-Authentifizierung.
sudo iw dev wlan0 set power_save off Deaktiviert Stromsparmodus (wichtig für Latenz!).