wpa_supplicant.conf über PHP ändern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich bin noch Anfänger und bräuchte eure Hilfe.

    Ich hab also Apache und PHP nach der Anleitung von "Make Tech Easier" auf Youtube installiert und alles funktioniert super bis jetzt. Das PHP-Skript kann richtig ausgeführt werden. Es kann aber die wpa_supplicant.conf nicht finden. Anscheinend gibt es ein Problem mit dem Zugriffsrecht oder Ähnliches. Ich poste mal hier mein PHP-Skript.

    Freue mich auf eure Hilfe und vielen Dank im Voraus!

  • Ja, da gibt es ein Problem mit den Zugriffsrechten.

    Der User www-data unter dem der Apache läuft darf in /etc/ nicht schreiben, und das ist auch gut so.
    Such mal hier im Forum nach "sudowebscript" von "meigrafd".

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Da gibt es noch ein ganz anderes Problem.

    Der PSK wird aus der SSID und dem Passwort generiert.

    Die SSID ist der Salt, das Passwort wird als Passwort verwendet.

    Als Algorithmus wird pbkdf_hmac mit sha1, 4069 Iterationen und eine Länge von 32 Bytes verwendet.

    D.h. du hast gleich zwei Probleme.

    • Du könntest das Programm wpa_passphrase nutzen, um den PSK zu generieren.
    • Du könntest den Algorithmus selbst implementieren
    • Du könntest für PHP eine fertige Library nehmen, die das kann

    Mit Python sieht das so aus:

    Problem 2 kannst du aber erst lösen, sobald du Zugriff auf die Datei wpa_supplicant.conf hast.

    Das würde ich über Berechtigungen machen.

  • Also, zuerst muss ich das Problem mit dem Zugriff auf die Datei wpa_supplicant.conf lösen. Erst danach das Problem mit dem Skript usw. Hab ich da schon richtig verstanden?

    zu Problem 1 (Zugriff auf die config): ich hab versucht, die Zugriffsrechte bei "Berechtigungen" zu ändern. Bekam aber "Diese Operation ist nicht erlaubt" als Rückmeldung.

    Hätte auch eine Nebenfragen: falls ich das über wpa_passphrase mache, dann brauche ich nicht mehr, die Zugriffsrechte zu ändern, oder?

    Einmal editiert, zuletzt von sykb (9. Dezember 2020 um 13:38)

  • Läuft PHP mit einem speziellen user oder ist das mod_php und alles läuft unter www-data?

    Du könntest mit chown wpa_suuplicant einem anderen user zuweisen.

    Code
    chown www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf

    Dann hat der Webserver Zugriff auf die Datei. Damit öffnet man auch potenzielle Sicherheitslücken, da dann auch andere PHP-Prozesse die Datei verändern dürfen, sofern mod_php verwendet wird und der User auf www-data gesetzt worden ist.

    Besser wäre es, wenn es ein extra User ist, mit dem das PHP-Script läuft.

    Google: fcgi php apache2 php-fpm

  • Dann wird der user www-data sein.

    Kannst ja deinen Webserver starten und mit top/htop nachsehen.

    ps aux geht auch.

  • Dann halt www-data

    Code
    chown www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf

    Beschäftige dich aber auch mal damit das ggf. später zu ändern. Also den PHP Prozess für diesen einen virtuellen Host einem eigenen User zuzuweisen.

    Ich habe immer Bauchschmerzen mit Ratschlägen, die die Sicherheit gefährden können.

  • Ich würde eher diese Anleitung verwenden: https://tecadmin.net/install-apache-php-fpm-debian-10/

    Debian 10 kommt dem Raspberry Pi mit Raspberry OS noch am nächsten. Also Raspberry OS basiert momentan auf Debian 10.

    Was ich bei all diesen Anleitungen vermisse, ist die Möglichkeit den User vorzugeben.

    Ich habe das mal vor 10 Jahren manuell gemacht. Da musste ich mir das Script noch selbst anlegen,

    welches den PHP-Interpreter unter einem anderen User startet. Für jeden vHost hatte ich einen eigenen User.

    Aber seit 10 Jahren hat sich sehr viel geändert.

  • Hallo, schönen guten Morgen.

    Ich hab PHP-FPM schon installiert und es funktioniert jetzt. Dabei hab ich aber die Standardkonfiguration benutzt, die in der Anleitung steht.

    Zitat

    Also den PHP Prozess für diesen einen virtuellen Host einem eigenen User zuzuweisen.

    Meine Frage nun: soll ich einen neuen virtuellen Host benutzen oder kann ich einfach diesen Standart-vHost benutzen? Falls der Standard-vHost schon reicht, brauche ich einen neuen User, oder kann ich einfach den User pi benutzen?

    Der Besitzer für die Dateien index.html und xxx.php im Ordener /var/www/html ist jetzt pi.

    Zitat

    Dann hat der Webserver Zugriff auf die Datei. Damit öffnet man auch potenzielle Sicherheitslücken, da dann auch andere PHP-Prozesse die Datei verändern dürfen, sofern mod_php verwendet wird und der User auf www-data gesetzt worden ist.

    Ich hab am Anfang vergessen, zu sagen, dass das ganze hier nur lokal laufen soll. Ist das trotdem unsicher, wenn ich chown www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf ausführe?

    Einmal editiert, zuletzt von sykb (10. Dezember 2020 um 12:21)

  • Der Besitzer für die Dateien index.html und xxx.php im Ordener /var/www/html ist jetzt pi.

    Sollte der gleiche User wie vom Webserver sein, sonst könnte es sein, dass der Webserver die index.php gar nicht lesen darf (chmod).


    Ich hab am Anfang vergessen, zu sagen, dass das ganze hier nur lokal laufen soll. Ist das trotdem unsicher, wenn ich chown www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf ausführe?

    Wenn es nur lokal läuft, nicht im Internet exponiert wird, dann hat man nicht viel zu befürchten.

    Ich gehe immer von aus, dass so etwas früher oder später irgendwann im Internet verfügbar ist.

    In dem Fall ist es schlecht, wenn der Webserver zu viel darf.

  • Ich hab gerade den Befehl chown www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf eingegeben. Als Antwort bekam ich wieder "Die Operation ist nicht erlaubt"

    Edit: hat sich erledigt. Hab es mit "sudo" eingegeben und hat sofort geklappt!

    Einmal editiert, zuletzt von sykb (10. Dezember 2020 um 14:53)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!