Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Linux


PHP-Anwendungen unter eigenen Benutzern ausführen

Kaum einer meiner Server läuft nur mit einer einzigen Anwendung. Der Webserver, auf dem dieser Blog läuft, beherbergt nicht nur thomas-leister.de, sondern auch noch zwei andere Blogs und weitere PHP-basierte Webdienste, die ich zur Verfügung stelle. Aus Sicht eines Hackers ein lohnenswertes Ziel: Wird über eine PHP-Anwendung wie z.B. einen schlecht gepflegten WordPress-Blog Zugriff auf das Dateisystem des Servers erlangt, kann der Hacker nicht nur die unsichere Webapplikation angreifen, sondern auch alle anderen Anwendungen, die unter dem PHP-User laufen. Aus diesem Grund ist es sinnvoll, die PHP-Anwendungen etwas voneinander abzuschotten, sodass ein Angreifer von der einen PHP-Anwendung aus keine andere PHP-Anwendung beeinträchtigen kann. Dies erreicht man, indem man für jede Anwendung einen eigenen User anlegt, der PHP ausführt. Die Verzeichnisrechte werden so gesetzt, dass nur der jeweils zugedachte PHP-User Zugriff auf die Anwendungsdateien hat und keine weiteren Änderungen im Dateisystem vornehmen kann.

Weiterlesen ›


Anleitung für Let’s Encrypt: Kostenlose TLS Zertifikate für alle

Das Let’s Encrypt Projekt (hinter dem unter anderem Mozilla, Facebook und Cisco als Sponsoren stecken) ist gestern in den Public Beta Betrieb übergegangen. Von nun an können nach belieben kostenlose TLS (aka SSL)-Zertifikate für die eigenen Domains erstellt werden. Für den Erhalt eines Zertifikats sind nur wenige, einfache Schritte erforderlich, die ich im Folgenden erkläre:

Weiterlesen ›


Linux Server: Geschwindigkeit der Internetverbindung prüfen (Uplink & Downlink)

Neben der Verfügbarkeit und der verfügbaren Hardwareressourcen spielt bei der Wahl des richtigen Server-Pakets bei einem Hoster natürlich auch die Netzanbindung eine bedeutende Rolle. Nur mit einer schnellen und zuverlässigen Anbindung lassen sich Fluten von Anfragen bewältigen. Da bei Hostern hier und da gerne getrickst oder nicht die erwartete Leistung bereitgestellt wird, ist ein kurzer Test der Netzwerk-Bandbreite zu empfehlen.

Für Desktop-Computer und Smartphones wird gerne das speedtest.net Netzwerk zusammen mit der gleichnamigen Website genutzt. Eine Flash-freie Alternative dazu wäre speedof.me, das auf HTML5 basiert. Da fähige Admins einen Linux Server natürlich niemals mit GUI administrieren würden ;) , sind die beiden Browser-basierten Speedtests jedoch uninteressant. Für speedtest.net gibt es zwar eine Python-Anwendung für das CLI – allerdings misst diese die Bandbreite für Up- und Downlink völlig unzuverlässig.

Weiterlesen ›


Mit Yubikey unter Arch Linux einloggen (Challenge-Response, offline)

Vor ein paar Tagen habe ich mir einen Yubikey Neo zugelegt. Dabei handelt sich um eine Kombination aus One-Time-Passwort-Generator (OTP-Generator) und PGP-Smartcard. Außerdem können auch statische Passwörter hinterlegt werden. Der Yubikey unterstützt eine Fülle an Authentifizierungsmechanismen, egal ob online, über fremde oder eigene Server, oder offline.

In diesem Beitrag soll es um den Login an einem Arch Linux Rechner gehen – abgesichert mit dem Yubikey, oder Passwort + Yubikey (Two-Factor-Auth). Für eine PAM-basierende Authentifizierung, wie wir sie unter Linux und Mac OS haben, stellt Yubico ein Open Source PAM Modul zur Verwendung mit dem Yubikey bereit. Das Modul kann in zwei verschiedenen Betriebsmodi genutzt werden: Entweder in Kombination mit dem Yubico-OTPs über Yubico-eigene Server oder über ein HMAC-SHA1-basiertes Challenge-Response Verfahren, das auch offline (und damit unabhängig von Servern) funktioniert.  Ich ziehe die offline-Methode vor, denn der große Nachteil der online-Variante ist: Wenn die Server offline sind (oder mein Rechner) kann ich mich nicht mehr einloggen.

Weiterlesen ›


Google Music Manager öffnet sich nicht unter Linux

Für den Download meiner bei Google Music erstandenen Musik nutze ich den Google Music Downloader. Man kann die MP3s zwar auch einzeln als MP3-Datei herunterladen – das geht aber nur 2x bei jedem Titel. Mit dem Downloader kann man seine MP3s so oft downloaden wie man will. Gut, dass Google auch eine Linux-Version seines Music Managers (oder eigentlich: -Downloaders) bereitstellt.

Unter Arch Linux kann man den Manager aus dem AUR installieren:

yaourt -S google-musicmanager

Mein Problem war, dass ich nach der Installation und der Verbindung mit meinem Google Konto den Manager nicht öffnen konnte. Nach einem Klick auf das Tray-Icon für den Manager passierte nichts. Den Kommentaren zum AUR Paket konnte ich entnehmen, dass das ein bekannter Bug sei, den man aber relativ einfach beheben kann. Dazu muss man jedoch zuerst einmal seine Google Music Manager Einstellungen zurücksetzen:

Weiterlesen ›


Nginx: Passwortschutz für Unterverzeichnis

In einigen Fällen ist es sinnvoll, den Zugriff auf vestimmte Verzeichnisse einer Website nur für bestimmte Nutzer zu erlauben. Die einfachste Möglichkeit für einen Passwortschutz ist die sog. HTTP Base Auth. Dabei wird dem Benutzer beim besuch einer bestimmten URL vom Browser ein Eingabefenster für Benutzername und Passwort angezeigt. Stimmen die Daten überein bzw sind im System vorhanden, wird der Zugriff ermöglicht – ansonsten wird er abgewiesen.

Weiterlesen ›


Nginx Proxy für TVHeadend mit Unterverzeichnis

Meine TVHeadend Instanz Zuhause sollte über das Internet erreichbar werden. Hinter dem DSL Router ist ein Webserver erreichbar, den ich dafür als Proxy zu meinem TVHeadend-Server nutzen will. Über den Webserver laufen allerdings noch ein paar andere Dienste, sodass ich TVH nicht das Rootverzeichnis überlassen will. Das THV Webinterface soll stattdessen über ein Unterverzeichnis „/tv/recorder“ erreichbar sein, also z.B. so: https://server.tld/tv/recorder.

TVHeadend läuft auf dem Server mit der IP 192.168.2.111 auf Port 9981. Die Konfiguration von Nginx kann z.B. so aussehen:

Weiterlesen ›


Nginx: Anderes Rootverzeichnis für Unterverzeichnis

In der Nginx Konfiguration kann neben dem default Rootverzeichnis „root“ auch für jedes Unterverzeichnis ein root-Pfad gewählt werden. Das ermöglicht es z.B. für http://server.tld/ die Dateien unter /var/www zu lagern, während sich die Dateien für http://server.tld/webuser/ unter /home/webuser/ befinden. Realisieren lässt sich das über die „alias“ Direktive:

server {
    server_name server.tld;
    
    listen 80;
    listen [::]:80;
   
    root /var/www;

    location /webuser {
        alias /home/webuser;
    }
}

Natürlich muss dabei sichergestellt werden, dass das Zielverzeichnis für den User, unter dem Nginx läuft, zugänglich ist.