Ohne eine GUI eine WLAN-Verbindung einzurichten, ist unter Linux gar nicht so einfach. Der iNet Wireless Daemon baut einige Hürden ab, hat aber noch Kinderkrankheiten.
Netzwerken gehört seit jeher zu den Stärken von Linux-Systemen. Handelt es sich um eine Kabel-Verbindung, gilt in der Regel: einstecken und fertig. Die Situation verkomplizierte sich, als die Hardware für den drahtlosen Zugang auf dem Vormarsch war. Per klobiger PCMCIA- oder PCI-Karte nachgerüstet, bedeutete das oft: proprietäre Kernel-Module bauen und Firmware-Blobs ins System kopieren. Selbst bei der Konfiguration der drahtlosen Verbindung im System selbst galt es, etwa die Hürde WPA-Supplicant [1] zu meistern (siehe Kasten “Was ist WPA?”).
Was ist WPA?
Das einstmals zum Verschlüsseln von WLAN-Verbindungen eingesetzte Verfahren WEP zeigte sich schnell anfällig gegen Angriffe. Sobald ein Angreifer eine gewisse Menge an Daten abgeschöpft hatte, ließ sich der Schlüssel knacken und so der Datenverkehr im Klartext mitlesen. WPA verwendet weiterhin Schlüssel im WEP-Format, tauscht diese jedoch vor dem Erreichen der kritischen Datenmenge gegen neue aus.
Auf dem Computer ist der Supplicant für den fortlaufenden Austausch der Schlüssel verantwortlich. Der Access Point (also die im WLAN-Router für den Aufbau des drahtlosen Netzwerks verantwortlichen Komponenten) fordert vom Client regelmäßig, sich neu zu identifizieren und einen neuen Schlüssel zu senden. Nach erfolgreichem Authentifizieren durch den Supplicant verwendet der Access Point dann den neuen Schlüssel für die Verbindung – bis das Spiel von Neuem beginnt.
Moderne Distributionen mit aktuellen Desktop-Umgebungen verstecken die komplexe Konfiguration unter einfach bedienbaren Oberflächen, zudem brauchen viele aktuelle WLAN-Chipsätze keine besondere Firmware mehr, der Kernel bringt alles von Haus aus mit. Bei den wenigen Chipsätzen, die noch Firmware-Blobs benötigen, spielen viele Distributionen diese automatisch während der Installation ins System ein.
iNet Wireless Daemon
Geblieben ist das zarte Monster WPA-Supplicant: Inzwischen bei Version 2.6 angekommen, ist das Programm immer noch integraler Bestandteil aktueller Distributionen wie etwa Ubuntu 18.04. Doch in Entwicklerkreisen gibt es Bestrebungen, die Komponente in Rente zu schicken. Mit dem iNet Wireless Daemon [2] oder kurz Iwd versucht Intel, einen Nachfolger zu etablieren.
Die Gründe dafür liegen unter anderen in den von WPA-Supplicant benötigten Abhängigkeiten (Abbildung 1). Für möglichst schlanke Systeme (etwa für IoT-Anwendungen, Smartphones oder Embedded Systeme) möchten die Entwickler gerne auf diese Abhängigkeiten verzichten und auf in den Kernel integrierte Funktionen zurückgreifen. Der neuen Software gelingt eben dieses, und inzwischen ist es bei manchen Distributionen möglich, diese zu testen.

Abbildung 1: Der WPA-Supplicant benötigt im Gegensatz zum iNet Wireless Daemon (kurz Iwd) zahlreiche Bibliotheken. Der neue WLAN-Dienst beschränkt sich in dieser Hinsicht auf die Glibc.
Unter Arch Linux
Der Newcomer findet sich etwa in den Paketquellen von Debian 10 “Buster” oder Ubuntu 18.10, das zum Redaktionsschluss in einer Beta-Version vorliegt. Für ein möglichst wenig konfiguriertes System kam in diesem Test allerdings ein frisch aufgesetztes Arch Linux zum Einsatz.
Da bislang zu dem Programm noch wenige Dokumentationen existieren, besitzt Arch zudem einen großen Vorteil: Für diese Distribution gibt es bereits einen ausführlichen Artikel im von der Community gepflegten Wiki [3].
Basis bildet ein System, das lediglich als Grundgerüst installiert ist, also komplett auf eine GUI und weitere Anpassungen verzichtet. Pakete lädt das Testsystem über Kabel-Ethernet herunter. Den iNet Wireless Daemon installieren Sie per Pacman direkt aus den Paketquellen – unter Arch Linux hängt das Paket einzig von der Glibc ab. Anschließend aktivieren Sie den Hintergrunddienst und starten ihn (Listing 1).
Listing 1
sudo pacman -S iwd sudo systemctl enable iwd.service sudo systemctl start iwd.service
Die Software besteht aus drei Teilen: dem Client Iwctl, dem Dienst Iwd sowie dem Werkzeug zum Analysieren der drahtlosen Verbindung Iwmon. Den Dienst brauchen Sie nicht weiter zu konfigurieren, stattdessen rufen Sie den Client mit dem Befehl iwctl im Terminal auf. Root-Rechte benötigen Sie nicht, in der Standardeinstellung darf jeder Anwender auf das D-BUS-Interface des Diensts und somit die Konfiguration des Netzwerks zugreifen.
Der Client arbeitet nun wie eine Shell, das Prompt [iwd]# wartet auf Befehle. Zum Einstieg liefert das Kommando help einen Überblick über die verfügbaren Kommandos und deren Optionen. Ob Iwd den oder die im System verbauten WLAN-Module erkennt, prüfen Sie dann in einem ersten Schritt über adapter list (Listing 2).
Sollte hier unter Powered nur off stehen, schalten Sie das Gerät über adapter phy0 set-property 'Powered' 'on' ein. Hinweis: Eventuell ist es nötig, danach den Client mit quit zu beenden und den Hintergrunddienst via systemctl restart iwd.service neu zu starten.
Listing 2
[iwd]# adapter list
Adapters *
--------------------------------------------------------------------------------
Name Powered Vendor Model
--------------------------------------------------------------------------------
phy0 on Intel CorporationCentrino Advanced-N
Anschließend das in der Client-Shell ausgeführte Kommando device list das eigentlich Netzwerk-Device, auf dem Testsystem wlan0. Mit diesem Namen weisen Sie Iwd nun mittels station wlan0 scan an, nach drahtlosen Netzwerken in der Umgebung zu scannen. Das Ergebnis bekommen Sie nach Eingabe des Kommandos station wlan0 get-networks zu Gesicht (Abbildung 2).

Abbildung 2: Das Client-Programm iwctl startet eine Terminal-Shell: Per Kommando scannen Sie nach drahtlosen Netzwerken oder buchen sich in eines ein.
Die Verbindung zu einem der gefundenen Netze starten Sie dann abschließend mit station wlan connect SSID. Iwd erfragt daraufhin das Zugangspasswort und baut umgehend die drahtlose Netzwerkverbindung auf. Das Passwort legt die Software nur für Root zugänglich unter /var/lib/iwd ab. Bei einem Neustart baut sie die WLAN-Verbindung dann automatisch auf. Bei Bedarf beenden Sie mit station wlan0 disconnect die Verbindung wieder.
Gesprächig
Um Problemen bei der Verbindung auf die Spur zu kommen, liefert Iwd zahlreiche Informationen, die Sie mit Iwmon ausgeben. Damit das gelingt, führen Sie das Programm mit administrativen Rechten aus. Im Detail sind diese Informationen allerdings eher für Entwickler geeignet.
Zur eingehenden Analyse schreiben Sie die Informationen zum Verkehr, der über die WLAN-Karte läuft, mit iwmon --write mitschnitt.pcap im PCAP-Format in eine Datei. Diese werten Sie dann wesentlich einfacher mit Werkzeugen wie Wireshark [4] aus (Abbildung 3).

Abbildung 3: Das Analyse-Werkzeug iwmon hilft bei der Suche nach Störungen im Netzwerk. Die mit dem Programm gesammelten Daten werten Sie bei Bedarf etwa mit Wireshark aus.
NetworkManager
Neben der Funktion als eigenständiger Dienst harmoniert Iwd auch mit Netzwerkmanagern wie Connman, Systemd-networkd sowie dem NetworkManager. Unter Arch ist es einfach, Letzteren besonders an Iwd zu koppeln. Dazu legen Sie lediglich die Konfigurationsdatei /etc/NetworkManager/conf.d/wifi_backend.conf an und tragen Iwd als Backend ein (Listing 3).
Listing 3
[device] wifi.backend=iwd
Im Test funktionierte dies im Großen und Ganzen recht gut. Kleine Probleme gab es allerdings noch: So war es zum Beispiel nicht mehr möglich, die kabelgebundene Netzwerkschnittstelle zu deaktivieren, nach einem kurzen Moment aktivierte sie sich automatisch wieder.
Außerdem zeigte das Applet im Panel des Gnome-Desktops nicht die Qualität der WLAN-Verbindung an, sondern beließ es beim Icon für das Kabelnetzwerk. Das Suchen und Einbuchen in WLAN-Netze funktionierte jedoch auch in der Kombination IWD und NetworkManager zuverlässig (Abbildung 4).

Abbildung 4: Der iNet Wireless Daemon beschränkt sich nicht aufs Terminal. Grafische Tools wie der NetworkManager harmonieren mit dem neuen Dienst.
Fazit
Noch gibt es keinen zwingenden Grund unter der Haube einer Distribution wie Debian oder Ubuntu von Hand den WPA-Supplicant gegen den iNet Wireless Daemon auszutauschen. Der neue WLAN-Dienst funktioniert bereits, zeigt aber noch Schwächen mit dem vielerorts eingesetzten NetworkManager. Auch komplexere Funktionen wie das Aufspannen eines eigenen Access Points funktionierte weder im Terminal noch über den NetworkManager unter Gnome.
Auf einem maximal abgespeckten System, das Sie mit möglichst wenig Software und Bibliotheken drahtlos ins Netz bringen möchten, zeigt die Software jedoch schon jetzt ihre Stärke.
Der Dienst baut auf dem Testsystem mit Arch Linux zuverlässig die WLAN-Verbindung auf, die Konfiguration beschränkt sich dabei auf wenige Kommandos. Im Gegensatz zum WPA-Supplicant brauchen Sie also keine Konfigurationsdateien zu bearbeiten. In der Zukunft hat der Dienst daher das Potenzial, um den WPA-Supplicant in Rente zu schicken.
Infos
- WPA-Supplicant: http://w1.fi/wpa_supplicant/
- iNet Wireless Daemon: https://iwd.wiki.kernel.org
- Arch-Wiki zu Iwd: https://wiki.archlinux.org/index.php/Iwd
- Wireshark: https://wiki.archlinux.org/index.php





