WICHTIG: /cgi-bin/ wird verschoben!

  • Mit dem Update auf LiveConfig v1.5.2 (ab r1888) wird für alle Webspaces das Verzeichnis
    ~/cgi-bin/
    automatisch verschoben nach
    ~/htdocs/cgi-bin/


    Wir wissen, dass dies in bestehenden Setups vereinzelt Anpassungen erfordern kann und hätten das gerne vermieden - geht aber leider nicht anders.


    Ablauf:
    Beim Update auf 1.5.2-r1888 (und später) wird automatisch geprüft, ob diese Anpassung auf dem Webserver bereits durch LiveConfig vorgenommen wurde (ein Update ist also nach wie vor von jeder auf jede Version möglich). Ggf werden die notwendigen Rechteänderungen dann automatisch vorgenommen - darum kümmert sich das Script /usr/lib/liveconfig/lcservice.sh (Parameter "fix-permissions").
    Alle vHost-Konfigurationen werden beim Start von LiveConfig ebenfalls automatisch aktualisiert (sowohl für Apache als auch für NGINX).
    Betroffen ist übrigens ausschließlich Webspace, der Erlaubnis für CGI-Scripte besitzt; ohne CGI-Berechtigungen sorgt die neue Konfiguration dafür, dass Zugriffe auf die URL /cgi-bin/ nicht erlaubt sind (falls dort jemand sensible Dateien liegen hat werden diese also nicht versehentlich abrufbar gemacht). Für NGINX ist der Zugriff auf /cgi-bin/ komplett verboten.


    Hilfs-Befehle:
    Mit folgendem Befehl kann nach Verzeichnissen gesucht werden, die nicht automatisch verschoben wurden (das ist dann der Fall, wenn ~/htdocs/cgi-bin/ bereits existiert hat - so stellen wir sicher, dass nichts versehentlich überschrieben wird):

    Code
    ls -ld /var/www/*/cgi-bin


    Mit folgendem Befehl kann gesucht werden, ob in den erfolgreich verschobenen Verzeichnissen irgendwo die alten Verzeichnispfade hardcodiert enthalten waren:

    Code
    find /var/www/*/htdocs/cgi-bin -type f -print0 | xargs -0 grep '/var/www/.*/cgi-bin'


    Sollte sich da tatsächlich etwas finden, kann man das z.B. mit sed automatisch anpassen lassen (selbstverständlich stehen wir hierfür bei Fragen gerne zur Verfügung!)


    Hintergrund:
    Mit Version 1.5.2 werden die Web-Verzeichnisse noch besser geschützt - diese gehören dann root:root. Damit suexec aber Programme im cgi-bin-Verzeichnis ausführen kann, muss dieses dem Benutzer gehören (z.B. web1:web1). Damit der Apache-Webserver da aber auch lesend zugreifen kann (vor der Ausführung eines CGI-Scripts) müssten auch alle anderen Benutzer Leserechte dafür bekommen (0755) - was natürlich indiskutabel ist.
    Daher wird /cgi-bin/ eben nach /htdocs/cgi-bin/ verschoben: das htdocs-Verzeichnis gehört zB. web1:www-data mit Modus 0750 - somit kann der Webserver zwar darin lesen, aber kein anderer Benutzer zugreifen.


    Die einzige Alternative wäre gewesen, /cgi-bin/ mit ACLs zu schützen; das ist an sich einfach und sicher, nur müssen ACLs bei vielen Dateisystemen erst explizit aktiviert werden, die ACL-Tools sind standardmäßig oft nicht installiert, bei Backups werden ACLs häufig nicht berücksichtigt, und so weiter...
    Ein "anderes" Controlpanel löst das /cgi-bin/-Rechteproblem übrigens so, indem es ein modifiziertes suexec-Binary ausliefert, das wiederum auch alternative Gruppen-Besitzer für /cgi-bin/ erlaubt. Das erfordert aber auch ein modifiziertes mod_suexec für Apache - somit würde also wieder viel zu tief in die von der Distribution bereitgestellten Pakete eingegriffen werden (was wir aus Prinzip nicht möchten).


    Fazit:
    Wir gehen davon aus, dass in den allermeisten Umgebungen praktisch niemand die Veränderung bemerken wird :)
    Nur in den Fällen, in denen Benutzer CGI-Scripte mit hardcodierten Pfaden verwendet haben, ist eine Anpassung erforderlich - diese lassen sich aber mit o.g. find-Befehl schnell identifizieren.
    Sollten Fragen oder Probleme auftauchen, stehen wir gerne zur Verfügung.


    Das Update (v1.5.2-r1888+) wird in den nächsten Stunden noch mal als aktualisierte Preview bereitgestellt, derzeit testen wir den Updatevorgang auf knapp 10 produktiv betriebenen Servern durch, um Überraschungen zu vermeiden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!