[Raspberry Pi] WLAN Gastzugang mit wöchentlich wechselndem Passwort und Webinterface

Hallo,

ich arbeite gerade an einem Raspberry Pi WLAN Gastzugang, der jeden Sonntag um 3 Uhr das Passwort auf ein neues, zufälliges wechselt.

Da es zu so einem Projekt noch kein Tutorial online gibt dachte ich, ich mache mal eins 🙂

— Was man braucht —

  • Raspberry Pi (in meinem Fall Raspberry Pi 2 Model B, das ist aber egal)
  • SD Karte (ich würde sagen mindestens 8 GB), mit Raspbian installiert
  • Netzwerkkabel (Zum Router)
  • AP kompatibler WLAN Stick

— Tutorial —

Als erstes muss ein funktionierender WLAN Hotspot auf dem Pi installiert werden. Ich habe hierzu dieses Tutorial genutzt.

— Weitere Programme —

Folgende Programme müsst ihr zusätzlich installieren:

sudo apt-get install apache2 php5

— Script —

Nun müsst ihr mit

sudo nano /generatepass.py

Das Script editieren, dass später das Passwort automatisch ändern soll.

Fügt in diese Datei folgendes ein:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import string
import random
import time
#Generator
def id_generator(size=8, chars=string.ascii_uppercase + string.digits):
 return ''.join(random.choice(chars) for _ in range(size))
os.remove('/etc/hostapd/hostapd.conf')
randompass = id_generator()
f = open('/etc/hostapd/hostapd.conf', 'w')
print 'New Password:' + randompass
f.write('interface=wlan0\ndriver=nl80211\nssid=NETZWERKNAME HIER\nhw_mode=g\nchannel=6\nmacaddr_acl=0\nauth_algs=1\nignore_broadcast_ssid=0\nwpa=2\nwpa_passphrase=' + randompass + '\nwpa_key_mgmt=WPA-PSK\nwpa_pairwise=TKIP\nrsn_pairwise=CCMP')
f.close()
f = open('/var/www/password.txt', 'w')
f.write(randompass)
f.close()
os.system('sudo service hostapd restart')

Ersetzt einfach “NETWERKNAME” durch euren gewünschten Netzwerknamen und speichert das ganze.

Als nächstes müssen wir das Webinterface einrichten:

Als erstes müssen wir www-data sudo Rechte geben. Das ganze ist zwar nicht sonderlich sicher, aber dieser Hotspot sollte generell nur im sehr kleinen Umfeld und nicht 24/7 aktiv sein.

Um www-data sudo Rechte zu geben führen wir als erstes

sudo visudo

aus und fügen nun in diese Datei in die letzte Zeile

www-data ALL=(ALL) NOPASSWD: ALL

ein. Fügt danach noch eine freie Zeile hinzu und speichert das ganze.

Als nächstes müsst ihr die Datei “raspi hotspot.zip” herunterladen(Hier klicken zum DownloadenVirustotal) und die darin enthaltenden Dateien in das /var/www/ Verzeichnis auf eurem Pi kopieren (Stichwort FTP). An dieser Stelle noch einmal einen herzlichen Grüß an meigrafd aus dem Raspberry Pi Forum ohne deren Hilfe der Hotspot nur halb so praktisch wäre.

Nun müsst ihr in die Datei /var/www/login.php reingucken und “admin” und “Passwort” zu euren Anmeldedaten ändern.

Danach könnt ihr optional eine automatische Änderung des Passworts erstellen durch

sudo crontab -e

. Danach gebt ihr am Ende der Datei einen neuen Cronjob ein. Das geht durch folgendes Format:

*     *     *     *     *  sudo /generatepass.py
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Wochentag (0 - 7) (Sonntag ist 0 und 7)
|     |     |     +------- Monat (1 - 12)
|     |     +--------- Tag (1 - 31)
|     +----------- Stunde (0 - 23)
+------------- Minute (0 - 59)

. Um z.B. das Passwort jeden Sonntag um 3 Uhr zu aktualisieren:

0  3 * * 0 sudo /generatepass.py

Danach könnt ihr die Datei speichern und schon ist euer Gastzugang fertig!

— Benutzung —

Die Benutzung des Gastzugangs ist ziemlich einfach:

Ich habe in meinem Fall den Hostname des Raspberry Pi in “hotspot” umbenannt (durch raspi-config)

Geht nach dem Starten des Raspis auf “hotspot.local” oder auf die IP Adresse eures Raspis in eurem Browser und meldet euch unter “Melde dich an” mit den vorher definierten Nutzernamen und Passwort an. Geht nun auf “hostspot.local/exec.php”. Auf dieser Seite könnt ihr (wenn ihr angemeldet seid) Kommandos ausführen. Gebt nun “sudo /generatepass.py” ein und klickt auf “Ausführen”. Damit wurde das erste Passwort generiert.

Nun geht ihr wieder auf “hostpot.local” und klickt bei “hostapd” und “isc.dhcp-server” auf starten.

Leider kann man nicht direkt schauen, ob “isc-dhcp-server” läuft, weswegen “dhcpd” ebenfalls in der Liste steht: Ist “dhcpd” an, so ist auch “isc-dhcp-server” an. Starten und stoppen von “isc-dhcp-server” geht aber trotzdem durch den Eintrag “isc-dhcp-server”

Und schon läuft euer Hotspot!

— Schlusswort —

Ich hoffe ich konnte euch mit diesem Tutorial weiterhelfen

Bennett

Comments

    1. Post
      Author
      admin

      Dafür bräuchte der Rooter natürlich die Funktion, dass er über ein externes Script angesteuert und verändert werden kann. Am besten zu dem Thema einfach mal Google durchsuchen, ich habe damit noch keine Erfahrungen

  1. Martin

    Wie kann man kopiert man hotspot.zip in den /var/www/ Ordner?
    Es kommt immer eine Fehlermeldung “Permission denied”!

    1. Post
      Author
      admin

      Bitte führe das Kommando als root aus indem du “sudo ” davor stellst oder dich vorher mit “su” in den root Akkount anmeldest

Leave a Reply

Your email address will not be published. Required fields are marked *