[Eisfair] Gast-WLAN: Skript gesteuerte Passwortgenerierung

B. Sprenger b.sprenger at sprenger-ffm.de
So Mai 28 21:29:29 CEST 2017


Hallo zusammen,
inspiriert vom c't Artikel
https://www.heise.de/ct/ausgabe/2016-10-Raspberry-Pi-als-Gaeste-WLAN-Automat-3185167.html
möchte ich für das Gast-Wlan täglich ein neues  Passwort generieren.
Die im Artikel genannte Lösung mag für den heimischen Gebrauch ganz 
hilfreich sein, bei mir funktioniert das mit einem Dutzend Accesspoints 
nicht.
Die Authentifizierung der Clients erfolgt mittels zentralem 
Radius-Server auf dem Eis.

Jetzt möchte ich per CRON-Job täglich eine neues Passwort erzeugen, in 
die Konfigurationsdatei eintragen und den Radiusserver neu starten.
An die entsprechenden WLAN-Stationen wird eine NodeMCU-Board mit 
OLED-Display gehängt, die gibt es bei AliExpress für kleines Geld.
Diese greifen dann auf die Passwortdatei zu und zeigen die SSID, 
Benutzerkennung und Passwort an.
Soweit die Idee.

Das Passwort kann ich mit pwgen erzeugen.
Die Konfigurationsdatei mit den Userkennungen und den Passwörtern kann 
ich mit sed manipulieren.
Das funktioniert alles schon.
Wie kann ich aber das generierte Passwort in meine Konfigurationsdatei 
eintragen?
Ich habe dafür kein Beispiel gefunden.
Damit es etwas klarer wird nachfolgend mein Shell-Skript:

## 'cd /var/www/htdocs/arduino/gastwlan/'
pwgen 12 1 >/var/www/htdocs/arduino/gastwlan/freeradius_pw.txt
cp /etc/raddb/users.eis /var/www/htdocs/arduino/gastwlan/users.alt
sed -f /var/www/htdocs/arduino/gastwlan/sedfile.txt 
/var/www/htdocs/arduino/gastwlan/users.alt 
 >/var/www/htdocs/arduino/gastwlan/users.neu
cp /var/www/htdocs/arduino/gastwlan/users.neu /etc/raddb/users.eis2
rm /var/www/htdocs/arduino/gastwlan/users.alt
rm /var/www/htdocs/arduino/gastwlan/users.neu
/etc/init.d/freeradius restart

Zuerst wird die Passwortdatei erzeugt. Darin steht ein Passwort.
Anschliessend wird die Datei mit den Benutzerkennungen in das aktuelle 
Verzeichnis kopiert.
Jetzt soll sed in der Datei users.alt das passwort austauschen und als 
users.neu speichern.
In der Datei sedfile.txt steht das Kommando zum Austausch des Passworts, 
im Moment noch "von Hand" eingetragen.
Wie kann ich da jetzt das Passwort aus der freeradius_pw.txt eintragen?
Irgend jemand eine Idee?
Oder muss ich einen anderen Lösungsansatz wählen?

Der Vollständigkeit halber:
die sedfile.txt ist enthält eine Zeile:
s/"gast"     Cleartext-Password := passwort/"gast" 
Cleartext-Password := passwortneu/

passwortneu ist hier das händisch eingetragene neue Passwort.

Schon mal vielen Dank.
LG
Boris


Mehr Informationen über die Mailingliste Eisfair