Der Lighttpd ist ein schlanker durch Module erweiterbarer Webserver. Besonders wenn man nur eine oder wenige Webseiten auf einem Server liegen hat finde ich den den Lighttpd deutlich besser wie den Apache Webserver. Mit einigen Wenigen eingriffen in der Konfiguration lasst sich nochmal so einiges optimieren.
Alle Beschriebenen Änderungen müssen in /etc/lighttpd/lighttpd.conf gemacht werden.
Server Tag ändern
Mit jedem Response Header wird der Name des Webservers ausgegeben, ein Angreifer könnte die Information nutzen um bekannt gewordene Sicherheitslücken auszunutzen. Aus diesem Grund ist es Sinnvoll den Server-Tag in irgendwas zu ändern was keine Rückschlüsse auf den verwenden Webserver zulässt. Dazu trägt man folgendes in die Konfiguration ein:
server.tag = "Mein Webserver"
Wenn man sich jetzt den Header anschaut der vom Webserver zurückgegeben wird stellt man fest das als Server "Mein Webserver" ausgegeben wird.
Zugriff auf Backups verbieten
Wenn man nicht aufpasst landen vom Editor automatisch angelegte Backups von PHP-Dateien auf dem Webserver. Das Problem daran ist das diese Dateien von PHP nicht interpretiert werden und so der Code samt evtl. enthaltenen Passwörtern im Browser angezeigt werden. Mit einem kleinen Eintrag in der Konfiguration kann man den Zugriff auf solche Dateien verbieten.
url.access-deny = ( "~", ".inc", ".old", ".bak", ".php~" )
HTTPS erzwingen
Wenn man auf allen seinen Webseiten SSL-Zertifikate installiert hat kann man grundsätzlich alle Zugriffe auf HTTPS umleiten. Dazu wird mod_redirect benütigt das man erst mal oben in der Konfiguration einfügen muss:
server.modules = ( ... "mod_redirect", ... )
Jetzt kann man weiter unten in der Konfiguration den Redirect einfügen so das alle Anfragen die über HTTP kommen auf HTTPS umgeleitet werden.
$HTTP["scheme"] == "http" { $HTTP["host"] =~ ".*" { url.redirect = (".*" => "https://%0$0") } }
Inhalte komprimiert ausgeben
Um Traffic zu sparen und die Ladezeit zu verkürzen kann man einige Dateien wie JavaScripte oder CSS-Dateien komprimiert ausgeben, dazu wird das Modul mod_compress benötigt das man oben in der Konfiguration einbinden muss.
server.modules = ( ... "mod_compress", ... )
Jetzt kann man weiter unten in der Konfiguration das Modul konfigurieren. Hier wird angegeben welche encodings benutzt werden sollen, wo die komprimierten Dateien gecached werden und welche Dateitypen automatisch komprimiert werden sollen.
compress.allowed-encodings = ("bzip2", "gzip", "deflate") compress.cache-dir = "/var/cache/lighttpd/compress/" compress.filetype = ("text/plain", "text/html", "text/css", "application/xml", "text/javascript", "application/javascript", "application/x-javascript")
Kommentare