Entries tagged jail apache php5

Apache2, mod_security, mod_chroot und OpenID

Posted on 5. November 2010 Comments

So, das war eine lange Nacht…

Ein Debian Server mit OpenID auf der Dockstar sollte es werden, garnicht so einfach. Ich hatte mich für phpmyopenid, einer Installation des populären phpmyid entschieden, das Ganze läuft über apache2.

Den hatte ich hier schonmal so sporadisch am laufen, aber ich hatte mir nie wirklich Gedanken um Sicherheit gemacht, da ich den immer nur kurz an und dann gleich wieder ausgestellt hatte. Hier also ein paar Tricks zum Sichern eines Apaches(keine Garantie für irgendwelche Schäden bzw. Entschädigung für Hacks etc!)

Diese nette Anleitung von petefreitag.com: 20 ways to Secure your Apache Configuration

Das Modul mod_security, dafür gibt es folgendes Debian Paket: libapache-mod-security und mod-security-common

Das Modul mod_chroot, dafür gibt es ebenfalls ein Debian Paket: libapache2-mod-chroot und mod-chroot-common

Die müssen erstmal installiert werden. Am besten mal Google danach fragen, da muss man sich einfach reinlesen, und zwar nicht grade wenig;)

Dann kann man eigl dieser Anleitung auf howtoforge folgen.

Ich hab mich für 3.2 entschieden, da eh nur eine Instanz bei mir läuft. Den Link zu dem PID File brauchts aber trotzdem. einfach in /etc/apache2/sites-available/default von /var/www zu / tauschen.

Nun müssen die richtige Rechte gesetzt werden, da bin ich mir nicht ganz sicher. Damit phpmyopenid läuft muss, natürlich, php5 installiert sein.

Im Jail geht das nun aber eigl nicht, also hab ich mal den Ordner in /var/www kopiert, erstmal alle Rechte gegeben und dann so eingestellt, dass nur Eigentümer und Gruppe drauf zugreifen können. Apache läuft bei mir nicht mehr unter der Standartgruppe und der User hat auch keine shell sondern /dev/null.

#cp -r /var/lib/php5 /var/www/var/lib
#chmod -R 777 /var/www/var
#chmod -R o-rwx /var/www/var

Das müsste ja insofern sicher sein, als dass das Ding ja eh in ner Art Sandbox läuft oder? Vll kann das ja mal jmd kommentieren oder mir ’ne Mail schicken. Selbst wenn jetzt der OpenID Server komprimitiert wird, ist der Server an sich ja sicher.

Damit man die Fehlermeldung noch umgeht hab ich in /etc/httpd.conf (wird von apache2.conf eingebunden) noch

ServerName alice.bob.org

geschrieben mit alice.bob.org als meinem dyndns Namen.

phpmyopenid war nicht wirklich schwierig:

  • mit wget runterladen
  • mit unzip entpacken
  • ordner nach /var/www verschieben
  • aus dem Versionsordner so entpacken: http://bob.alice.org/phpmyopenid
  • http://bob.alice.org/phpmyopenid/install.php
  • #rm /var/www/phpmyopenid/install.php

So das war’s hoffentlich, auf Rückmeldung bin ich immer gespannt:)

Anmeldungen sind natürlich witzlos ohne Verschlüsselung, deswegen wird das nächste Projekt wohl SSL sein, natürlich ein eigenes Zertifikat(s. Alternativlos Folge 5)

update:

Tipp: damit der Workload nicht so gross wird, einfach in der /etc/apache2/httpd.conf die Paramter StartServers und die folgenden ein bisschen runtersetzen, ausser man betreibt tatsächlich eine Homepage.