[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/Oxygen/network-wireless.png, 48, align=left)]] Das Verbinden zu einem WLAN, das bestimmte Sonderzeichen wie z.B. `ö, ä, ü, ß` und `§` im Namen ([wikipedia:Service_Set_Identifier:ESSID]) oder im Kennwort hat, bereitet unter Linux Probleme. Das gilt für alle Zeichen im erweiterten Zeichensatz ab Dezimalwert 128 (siehe [http://www.i8086.de/zeichensatz/code-page-852.html ASCII-Tabelle 8Bit] {de} ). Es wird generell dazu geraten, keine Sonderzeichen bei der Einrichtung von WLAN zu verwenden. Wenn man allerdings darauf keinen Einfluss hat (Universität, Arbeit oder Familie), kann folgende Anleitung helfen. Andere Betriebssysteme verwenden oft noch die ältere [wikipedia:ISO_8859-15:ISO-8859-15] Zeichenkodierung, Ubuntu allerdings den neuen internationalen Standard [wikipedia:UTF-8:]. Ein Sonderzeichen oder Umlaut unter Ubuntu stimmt dann mit dem entsprechenden Zeichen im Zugangsschlüssel oder der ESSID des Routers nicht überein. Mit einer manuellen Konfiguration über [:WLAN/wpa_supplicant:wpa_supplicant] und durch das Umwandeln der ESSID und/oder des Kennworts in [wikipedia:Hexadezimalsystem:hexadezimalen Code] können auch Sonderzeichen verwendet werden. Bei der Einrichtung des eigenen WLAN-Netzes können folgende Zeichen für die SSID und das Kennwort (PSK) problemlos verwendet werden. Das Kennwort muss mindesten 8 Stellen lang sein und darf max. 63 Zeichen in Klartext (ASCII) umfassen. Folgende Zeichen sind erlaubt und werden auch von anderen Betriebssystemen wie Windows oder macOS / Mac OSX richtig erkannt: {{{ a-z A-Z 0-9 ! " # $ % & '( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ }}} Umlaute wie z.B. '''ä ü ö Ä Ü Ö ß''' und das Akzentzeichen '''´''' sind __nicht__ erlaubt. [[Anker(Zeichenkodierung)]] = Zeichenkodierung ändern = Ist die Konfigurationsdatei '''/etc/wpa_supplicant/wpa_supplicant.conf''' bereits vorhanden, sollte diese wegen der falschen Zeichenkodierung zuerst umbenannt oder gelöscht [1] werden. * Datei umbenennen: {{{#!vorlage Befehl sudo mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.utf8 }}} * Datei löschen: {{{#!vorlage Befehl sudo rm /etc/wpa_supplicant/wpa_supplicant.conf }}} Dann muss die Zeichenkodierung der Konsole geändert werden. Dazu öffnet man ein Terminal [1], und navigiert in der Menüleiste zu "''Terminal -> Zeichenkodierung festlegen -> ISO-8859-15''". Gegebenenfalls muss diese Auswahl noch hinzugefügt werden. = ESSID kodieren = Sind im Zugangsschlüssel keine Sonderzeichen enthalten, genügt es die ESSID in Hex-Code umzuwandeln und in die '''wpa_supplicant.conf''' einzutragen. Dazu verwendet man das Programm '''hexdump''' im Terminal [1]. Zuerst wird die ESSID mit Sonderzeichen in die Datei '''~/essid''' übertragen, da '''hexdump''' nicht direkt über die Terminaleingabe decodieren kann. Grundsätzlich sollte der Name keine Rückschlüsse auf die verwendete Hardware zulassen, um Angriffe auf das WLAN zu erschweren. Es wird die Textdatei '''~/essid''' mit dem Inhalt '''ESSID-mit-Sonderzeichen-öäüÖÄÜß''' erzeugt: {{{#!vorlage Befehl echo 'ESSID-mit-Sonderzeichen-öäüÖÄÜß' > essid }}} Anschließend wird der Inhalt der Datei mit dem Befehl '''hexdump''' in hexadezimalen Code umgewandelt und in die Konfigurationsdatei übertragen. Der angehängte Parameter gibt zur Kontrolle nochmal den Namen in Klartext aus (`'31/1 "%c"'`), definiert eine einzeilige Ausgabe und die maximal mögliche Länge der ESSID von 32 Zeichen in Hex-Code (`-e '32/1 "%X"'`) und löscht anschließend das nicht benötigte Dateiendezeichen (`sed -i s/A_del_EOF//`). Der komplexe Befehl kann auch einfach in ein Terminalfenster kopiert werden: {{{#!vorlage Befehl hexdump -e '"# ESSID: "' -e '31/1 "%c"' -e ' "\n" "# entspricht hex-Code: ssid="' -e '32/1 "%X"' -e '"_del_EOF\n"' essid | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf && sudo sed -i s/A_del_EOF// /etc/wpa_supplicant/wpa_supplicant.conf }}} Der Eintrag in der Datei '''wpa_supplicant.conf''' sieht dann für das angegebene Beispiel so aus: {{{# ESSID: ESSID-mit-Sonderzeichen-öäüÖß # entspricht hex-Code: ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF }}} Den beiden Einträgen ist eine Raute (#) vorangestellt. Dabei handelt es sich um Kommentare, die vom System nicht beachtet werden. Sind im Zugangsschlüssel keine Sonderzeichen enthalten, geht man zum Abschnitt [#Konfiguration Konfigurationsdateien vervollständigen]. = Zugangsschlüssel kodieren = Falls noch nicht geschehen, muss auch hier zuerst die [#Zeichenkodierung Zeichenkodierung] der Konsole geändert werden. Die Berechnung erfolgt im Terminal [1] mit dem Programm '''wpa_passphrase'''. Der kombinierte Befehl trägt den erzeugten Schlüssel direkt in die Konfigurationsdatei '''/etc/wpa_supplicant/wpa_supplicant.conf''' ein. {{{#!vorlage Befehl wpa_passphrase 'ESSID-mit-oder-ohne-Sonderzeichen' 'WPA-Key-mit-oder-ohne-Sonderzeichen' | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf }}} Eventuell muss die ESSID oder der Schlüssel noch einmal manuell eingegeben werden, sollte wegen eines Sonderzeichens am Anfang die Eingabe nicht akzeptiert werden. Das Programm schaltet automatisch um und erwartet die Eingabe über Tastatur. [[Anker(Konfiguration)]] = Konfigurationsdateien vervollständigen = Nun steht in der Datei '''/etc/wpa_supplicant/wpa_supplicant.conf''' die korrekte hexadezimale Zeichenfolge für die ESSID und ggf. für den Zugangsschlüssel. Die Datei kann danach mit einem Editor [2] bearbeitet werden, um die notwendige Konfiguration zu vervollständigen. Beim ersten Aufruf des Editors [2] kann es zu einer Fehlermeldung wegen des veränderten Zeichensatzes kommen. Auch dann muss zuerst der Zeichensatz `ISO-8859-15` ausgewählt werden. Inhalt der Konfigurationsdatei nach Ausführen der Befehle hier im Beispiel: {{{# ESSID: ESSID-mit-Sonderzeichen-öäüÖß # entspricht hex-Code: ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF network={ ssid="ESSID-mit-oder-ohne-Sonderzeichen" #psk="WPA-Key-mit-oder-ohne-Sonderzeichen" psk=502595b9d040737548bfac570a3bf30798b0cc69d586276216ecbdb447809097 } }}} Benötigt werden jetzt nur die umgewandelte ESSID und der Zugangsschlüssel in hex-Code. Die restliche Konfiguration ist von der verwendeten Verschlüsselung abhängig und muss gemäß [:WLAN/wpa_supplicant:] ergänzt werden. Ein Beispiel für WPA2-Verschlüsselung: {{{ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 network={ ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF # ssid=alternativ_Deine_ESSID_ohne Sonderzeichen_in_Klartext scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP TKIP psk=502595b9d040737548bfac570a3bf30798b0cc69d586276216ecbdb447809097 # psk="alternativ_Dein_WPA_Netzwerkschlüssel_ohne_Sonderzeichen_in_Klartext" } }}} Die Datei '''/etc/network/interfaces''' muss ebenfalls mit einem Editor [2] bearbeitet werden. Der entsprechende Verweis auf die Konfigurationsdatei ist einzufügen. Hier für die Schnittstelle `wlan0`. Siehe dazu auch [:interfaces:]. {{{auto lo iface lo inet loopback iface eth0 inet dhcp iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf auto wlan0 }}} Nach Änderungsarbeiten an der Datei '''interfaces''' und Einrichten der Verschlüsselung mit '''wpasupplicant''' kann das Netzwerk mit Übernahme der aktuellen Daten über das Terminal [1] neu gestartet werden: {{{#!vorlage Befehl sudo /etc/init.d/networking restart }}} Sind alle Einstellungen richtig, sollte jetzt eine verschlüsselte Verbindung zum Router aufgebaut werden. = Links = * [http://unicode.e-workers.de/sz_im_web.php Über die Verwendung von Sonderzeichen im Internet] {de} * [wikipedia:ASCII-Tabelle:ASCII-Tabelle Wikipedia 7Bit] * [http://www.i8086.de/zeichensatz/code-page-852.html ASCII-Tabelle 8Bit] {de} * [:WLAN:] {Übersicht} Übersichtsartikel # tag: Netzwerk, Sicherheit, WLAN