Posts Tagged ‘OpenWrt’

Freitag, 10. Dezember 2021

GL.iNet Travel Router mag keine Sonderzeichen in SSIDs

Heute Nachmittag sind wir nach einer Odyssee durch das verschneite Schweizerische Mittelland im Elsass angekommen.

Spannendes Problem, welches ich mit etwas IT-MacGyvern gelöst habe: Die SSID des Hotels lautet L'Hotel et Spa Ribeauvillé. Wenn ich meinem GL.iNet Travel Router (dem Vorgängermodel des GL-MT300N-V2) sage, sich mit diesem WiFi zu verbinden, speichert die Router-Software die SSID als L, und die Verbindung schlägt – logischerweise – fehl.

Für Profis ist rasch klar, was das Problem ist: Das Apostroph in der SSID signalisiert der Router-Software, dass der SSID-Name hier aufhört. Alles dahinter wird abgeschnitten. Ein klassisches Sonderzeichen Escape-Problem. Und seit mindestens 2018 bekannt (könnte aber sein, dass ich mal die Firmware aktualisieren sollte — mein Router fährt mit Version 2.264): Bug + Security Issue: Special Characters Remote SSID Name

Hinzu kommt noch das Accent Aigu. Eigentlich fehlen nur noch Emojis in der SSID, dann wäre die Party komplett.

Der GL.iNet basiert auf OpenWRT. Auf Grund meiner Erfahrung mit anderen solchen Routern (primär dem Turris Omnia) weiss ich, dass die WiFi-Konfiguration in einer Textdatei unter /etc/config/wireless abgelegt ist.

Mein Plan: Da das GUI die SSID nicht sauber abspeichern kann, trage ich sie halt per SSH und mit vim über die Kommandozeile ein.

Nächstes Problem: Tippe ich das Accent Aigu in vim ein, erscheinen stattdessen zwei Doppelpunkte. Mist. In ash, dem Shell des Routers, wird das Accent Aigu aber sauber angezeigt, wenn man es tippt. Hilft mir aber nicht weiter (ausser ich befasse mich vielleicht mit sed und Inline Suchen-und-Ersetzen). Schlussendlich kopiere ich den Inhalt der Datei aus dem Terminal und füge es in Atom-Dokument auf meinem MacBook ein.

Ich versuche nun, die SSID in der Textdatei zu komplettieren. Um das Apostroph in der SSID verwenden zu können, umschliesse ich den Variablenwert in doppelten Anführungszeichen (OpenWRT verwendet standardmässig einfache Anführungszeichen):

config network 'sta0'
	option channel '11'
	option device 'radio0'
	option ssid "L'Hotel et Spa Ribeauvillé"
	option encryption 'psk2'
	option key 'password'

Ich speichere die Datei, und schreibe sie mittels scp root@192.168.1.1:/tmp/wireless auf den Router zurück. Dort eingeloggt kopiere ich die Datei und überschreibe das Ziel, /etc/config/wireless.

Leider funktioniert es nach einem Reboot damit noch nicht.

Mit etwas greppen dann die Erkenntnis: Unter /etc/wireless/ssids ist das WiFi ebenfalls eingetragen. Somit führe ich den oben beschriebenen Prozess noch einmal durch, dieses Mal aber für diese Datei. Rüberkopiert, den Travelrouter neu gestart — und tada, jetzt poppt auf meinem MacBook das Authentifizierungsportal des Hotel WiFis auf.

Yiha!

Tags: , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 21. November 2017

Turris Omnia: LuCI-Seite mit den Port-Weiterleitungen lädt im Schneckentempo

Vor einigen Wochen ist mir ein Bug in der LuCI Web-Oberfläche meines Turris Omnia aufgefallen: Die Seite zum Verwalten der Port-Weiterleitungen (ja, ich bin noch ein eingeschworener IPv4-Haushalt) lädt extrem langsam (Wartezeiten von über 2 Minuten). Will man dann auch noch einen bestehenden Eintrag bearbeiten, wartet man bis zu 16 Minuten (!), bis das Bearbeitungsformular geladen ist.

Mittlerweile habe ich einen Bug-Report im offiziellen Forum veröffentlicht, eine Lösung konnte mir aber noch nicht präsentiert werden. Immerhin haben sich bereits zwei Leidensgenossen gemeldet.

Aber aus einem Grund sind wir ja keine Klickibunti-Windows-Admins geworden und haben selbstverständlich auch den SSH-Zugang auf den Router freigeschaltet.

Die Anpassungen an den Firewall-Einstellungen finden sich in der Datei unter /etc/config/firewall. Am Besten kopiert man einfach einen bestehenden Eintrag und passt diesen nach den eigenen Wünschen an, zum Beispiel so:

...
config redirect
	option target 'DNAT'
	option src 'wan'
	option dest 'lan'
	option proto 'tcp udp'
	option src_dport '1234'
	option dest_ip '10.10.10.10'
	option dest_port '1234'
	option name 'sikrit hole'
...

Anschliessend speichert man die Datei und lädt die Firewall neu:

# /etc/init.d/firewall restart

Via: Add a firewall rule

Tags: , , , , ,
Labels: IT, Linux

1 Kommentar | neuen Kommentar verfassen