Damit Ihr Server SSL tauglich wird müssen Sie folgende Direktiven verwenden:
| SSLEngine on | Aktiviert SSL |
| SSLRequireSSL | Erlaubt ausschließlich SSL Verbindungen |
| SSLCACertificateFile | Zertifikatdatei(en) der CA |
| SSLCACertificatePath | Zertifikatsverzeichnis der CA |
| SSLCertificateFile | Lokales Serverzertifikat |
| SSLCertificateKeyFile | Lokale Schlüsseldatei |
Mit openssl können Sie Schlüsseldateien und Zertifikate erstellen, welche Sie dann in den bereits vorgefertigten Verzeichnissen des Apache2 hinterlegen. Achten Sie darauf, dass Ihre CA immer erreichbar ist, da Hosts eine Gültigkeitsabfrage starten und die Site nicht öffnen, wenn das Zertifikat nicht als gültig erkannt wird.
Absichern des Apache im chroot-Jail
Neben der Zugriffsbeschränkung und dem zertifikatsbasierten Absichern des Apache2 können Sie ein weiteres Sicherheitsfeature nutzen, die chroot Umgebung.
Chroot macht überall dort Sinn, wo Sie absolut sicherstellen wollen/müssen, dass Nutzer des Apache auf gar keinen Fall auf Ihr Dateisystem zugreifen. Es gibt hierfür auch andere Möglichkeiten, wie ACLs und Co, doch können diese nicht verhindern, dass ein PHP-Script sich selbstständig macht. Es soll aber auch User geben, welche die Berechtigung Ihres Verzeichnisses auf 777 setzen, Sie wollen sicherlich nicht, dass ein anderer User dann in diesem Verzeichnis arbeitet, oder?
chroot erfordert Planungsaufwand, da Sie eine vollständige Arbeitsumgebung für den Dienst, welcher im chroot laufen soll, schaffen müssen. Hierzu gehören neben einer angepassten passwd und shadow Datei, auch sämtliche Bibliotheken, Module und sonstige Dateien/Verzeichnisse. Je nachdem wie sicher es sein darf, können noch Kernel- und initrd-Anpassungen hinzukommen.
Kopieren Sie hierbei immer mit der Option -p um die Berechtigungen zu erhalten.
Starten Sie das chroot mit dem chroot Kommando, gefolgt vom neuen "Wurzelverzeichnis" und dem Kommando(s), welches im chroot starten soll. Starten Sie im chroot das Kommando und versuchen Sie aus dem chroot herauszukommen.
Alternativ können Sie mit makejail arbeiten, welches in der Regel vom Apache2 mitgeliefert wird. Hier stehen Ihnen Konfigurationsdateien zur Verfügung, welche Sie entsprechend einstellen müssen.
Logging
Mit Hilfe der Direktive ErrorLog Direktive können Sie definieren, wohin Logmeldungen geschrieben werden sollen. Dies kann eine Datei, ein Script oder der Syslog sein.
Mit der Direktive LogLevel definieren Sie die Prioritätsstufe des Logvorgangs.
CustomLog als Direktive erlaubt es Ihnen selbst zu definieren, was Sie wann und wohin loggen wollen. Sie sollten allerdings ein Log Format mit LogFormat definieren. Die entsprechenden Substitutionszeichen können Sie sich unter http://localhost/manual ansehen.
ErrorDocument erlaubt es Ihnen HTTP-Fehlercodes mit eigenem Text, Scripten oder Sites zu füllen.
Apache2 Starten/Stoppen
Der Apache2 wird über das Programm apache2ctl gesteuert. Mit Hilfe von Parametern können Sie vom Neustart, über diverse ServerRoot Verzeichnisse bis hin zu Direktiven an den Apache2 beim Start/während des Betriebes senden.
Die interessantesten Optionen zusammengefasst:
-k Sendet start/stop/restart/gracefull an den httpd. Aufruf: apache2ctl -k restart
-d Übergibt ein Verzeichnis als ServerRoot.
-f Übergibt eine Datei als Konfigdatei.
-C Übergibt Direktive an httpd und nutzt diese vor dem Start
-c Übergibt Direktive an httpd und nutzt diese nach dem Start
-V Auflistung der Kompilierungsparameter
-l Auflisten der enthaltenen Module
-L Auflisten aller Direktiven
Keine Kommentare:
Kommentar veröffentlichen