Die Konfiguration fürs WLan erfolgt unter Raspbian Pi OS auf Konsolenebene durch wpa supplicant, welches auch im Lite-Image bereits enthalten ist. So kann die Konfiguration des WLAN theroetisch bereits vor der Erstinbetriebsnahme erfolgen - wichtig für Headless-Umgebungen ohne LAN (z.B. Raspberry-Zero).
Die Konfiguration erfolgt in der Datei /etc/wpa_supplicant/wpa_supplicant.conf, die sollte bereits vorhanden sein. Ansonsten einfach mit root-Rechten anlegen und die Zugriffsberechtigung auf 0600 setzen. Da die Datei auch die Passwörter für die WLAN-Netze enthält darf nur root diese Datei lesen können.
Wie oft sind viele Konfigurationen möglich, nicht alle müssen gezielt gesetzt werden.
Die Grundkonfiguration sieht dabei so aus:
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
Zusätzlich können die Parameter für ein oder mehrer WLAN-Netze angegeben werden.
Die nötigen Informationen kann man mittels Scan ermitteln:
sudo iwlist wlan0 scan | egrep -i 'cell|essid|wpa|cipher|auth'
Cell 01 - Address: XX:XX:XX:XX:XX:XX
ESSID:"FRITZ!Box 7362 SL"
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
oder
sudo iw dev wlan0 scan | egrep -i 'cell|ssid|wpa|cipher|auth'
SSID: FRITZ!Box 7362 SL
* Group cipher: CCMP
* Pairwise ciphers: CCMP
* Authentication suites: PSK
CCMP bedeutet "Counter Mode with Cipher Block Chaining Message Authentication Code Protocol" und wurde mit WPA2 eingeführt. PSK steht für "Pre Shared Key", dabei kennen die beteiligten Geräte das Kennwort. Neuerdings kann bei "Authentication suites" auch SAE auftauchen, dies steht für Simultaneous Authentication of Equals und dient dem Schlüsselaustausch bei WPA3.
Für die Konfigurationsdatei wpa_supplicant.conf sind diese Einstellungen aber nicht unbedingt notwendig. Da genügen, wie bei anderen Geräten auch, SSID und das Passwort. Diese lassen sich wie folgt zu den oben gemachten Einstellungen ergänzen:
wpa_passphrase "FRITZ!Box 7362 SL" passphrase >> /etc/wpa_supplicant/wpa_supplicant.conf
Daraus wird dann
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="FRITZ!Box 7362 SL"
#psk="passphrase"
psk=e31713c39eb1db8537c3ef35de41df03a419692bca5fb1887135ca90614d8459
}
Dabei wird das Passwort als HASH abgespeichert, der auskommentierte Eintrag kann gelöscht werden.
Es sind auch mehrere Netzwerke möglich. Dabei wird zusätzlich die Priorität angegeben, mit welchem Netzwerk vorzugsweise eine Verbindung hergestellt werden soll. Zur Unterscheidung wird außerdem jedem Netzwerk ein eigener Name gegeben.
network={
id_str="WLAN1"
ssid="FRITZ!Box 7362 SL"
psk=e31713c39eb1db8537c3ef35de41df03a419692bca5fb1887135ca90614d8459
priority=1
}
network={
id_str="WLAN2"
ssid="FRITZ!Box 7460"
psk=78df47ae164f4cd89a7522947451dbb012c9af6622419e59517ce8a3d1ab021d
priority=2
}
Es wird das Netzwerk mit der höchsten Priorität gewählt.
Wenn das WLAN eingerichtet ist und sich das System mit einem Netzwerk verbindet, so wird es (wenn verfügbar) per DHCP eine IP-Adresse bekommen.
Die IP-Adressen werden dem DHCP-Client in der /etc/dhcpcd.conf vorgegeben. Dabei kann die Grundkonfiguration dieser Datei erhalten bleiben. Ergänzt werden nur die Einträge für jedes einzelne WLAN:
interface wlan0
arping 192.168.177.1
arping 192.168.178.1
ssid "FRITZ!Box 7362 SL"
static ip_address=192.168.177.100/24
static routers=192.168.177.1
static domain_name_servers=192.168.177.1
ssid "FRITZ!Box 7460"
static ip_address=192.168.178.102/24
static routers=192.168.178.1
static domain_name_servers=192.168.178.1
dhcpcd ist als Client für die IP-Adressen zuständig. Bei bestimmten Ereignissen (z.B. RENEW,REBIND,REBOOT,EXPIRE usw.) werden verschiedene Scripte aufgerufen. Diese kann man z.B. für die Mitteilung der IP-Adresse nutzen.
Dabei werden folgende Scripte abgearbeitet:
/etc/dhcpcd.enter-hook
/lib/dhcpcd/dhcpcd-hooks/
/etc/dhcpcd.exit-hook
Legt man z.B. das Script /etc/dhcpcd.exit-hook an, so kann dort das Ereigniss ausgewertet und z.B. die aktuelle (interne) IP verschickt werden.
Stand: 21.02.2022