Apache Security

Wie kann man seinen Apache-Webserver besser konfigurieren?

Das Ziel soll sein einen möglichst sicheren Apache in einer Produktivumgebung zu konfigurieren.

Die Apache version nicht senden (Set ServerTokens)

Zum Beispiel in der Datei /etc/apache2/sites-available/main

NameVirtualHost *:80
ServerTokens Prod

Die folgenden Werte sind möglich für ServerTokens:

  • ServerTokens Prod displays “Server: Apache”
  • ServerTokens Major displays “Server: Apache/2″
  • ServerTokens Minor displays “Server: Apache/2.2″
  • ServerTokens Min displays “Server: Apache/2.2.17″
  • ServerTokens OS displays “Server: Apache/2.2.17 (Unix)”
  • ServerTokens Full displays “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (Wenn nichts angegeben wird ist das der Standard)

Die Server Signatur ausschalten

Zum Beispiel in der Datei /etc/apache2/sites-available/main

ServerSignature Off


Damit wird die $_SERVER[‚*‘] vars eingeschränkt und folgendes fällt u.a. raus:

  • [‚HTTP_HOST‚]78.46.107.204
  • [‚PATH‚]/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • [‚SERVER_SIGNATURE‚]
    Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11 mod_ssl/2.2.3 OpenSSL/0.9.8c Server at 78.46.107.204 Port 443
  • [‚SERVER_SOFTWARE‚]Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11 mod_ssl/2.2.3 OpenSSL/0.9.8c

Zugriff auf das Root-Verzeichnis blocken

Zum Beispiel in der Datei /etc/apache2/sites-available/main

<Directory />
    Options None
    Order deny,allow
    Deny from all
</Directory>

Hierbei wird u.a. folgendes eingestellt:
– Disable Directory Browsing
– Don’t allow .htaccess

Die folgenden Werte können für Options gesetzt werden:

  • Options All – All options are enabled (except MultiViews). If you don’t specify Options directive, this is the default value.
  • Options ExecCGI – Execute CGI scripts (uses mod_cgi)
  • Options FollowSymLinks – If you have symbolic links in this directory, it will be followed.
  • Options Includes – Allow server side includes (uses mod_include)
  • Options IncludesNOEXEC – Allow server side includes without the ability to execute a command or cgi.
  • Options Indexes – Disable directory listing
  • Options MultiViews – Allow content negotiated multiviews (uses mod_negotiation)
  • Options SymLinksIfOwnerMatch – Similar to FollowSymLinks. But, this will follow only when the owner is same between the link and the original directory to which it is linked.

Es sollte niemals ‘Options All’ verwendet werden. Besser ist es immer die oben genannten Optionen einzeln zu setzten, diese können auch kombiniert werden, siehe Beispiel.

Options Includes FollowSymLinks

Den Server prüfen:

Entweder auf der Seite Header Check Tool oder direkt auf der Console:

curl -I http://blog.blix0r.de
 
HTTP/1.1 200 OK
Date: Tue, 29 May 2012 12:56:10 GMT
Server: Apache
Last-Modified: Tue, 29 May 2012 12:53:44 GMT
Accept-Ranges: bytes
Content-Length: 71314
Cache-Control: max-age=3, must-revalidate, proxy-revalidate
Expires: Tue, 29 May 2012 12:56:13 GMT
Vary: Accept-Encoding,Cookie
Content-Type: text/html; charset=UTF-8
 
curl -I http://blog.blix0r.de/index.php
 
HTTP/1.1 301 Moved Permanently
Date: Tue, 29 May 2012 12:56:25 GMT
Server: Apache
X-Powered-By: PHP/5.2.6-1+lenny16
X-Pingback: http://blog.blix0r.de/xmlrpc.php
Location: http://blog.blix0r.de/
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

Quelle:

http://www.thegeekstuff.com/2011/03/apache-hardening/

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.