Apache VirtualHost Directory Direktive

iceview

Lieutenant
Registriert
Jan. 2008
Beiträge
683
Hallo zusammen,

ich habe mir einmal nach einer Neuinstallation meine alte Definition meines Virtual Hosts angeschaut.
Könntet Ihr einmal draufschauen bzgl. der Directroy Direktiven. Gibts noch Sicherheitslücken?

Hierzu völlig unlogisch, warum wird in dieser während der Installation erstellten Datei folgendes eingebaut:

<Directory /> und <Directory "/usr/share/doc/">

Danke fürs Helfen.



Code:
<IfModule mod_ssl.c>

<VirtualHost *:443>
	AddDefaultCharset utf-8 
        ServerName www.mydomain.de
	ServerAlias mydomain.de
	ServerAdmin hostmaster@mydomain.de
	DocumentRoot /var/www
	
	<Directory />
		Options None
		AllowOverride None
		Order deny,allow
		deny from all
	</Directory>
	
	
	<Directory /var/www/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/ssl_access.log own

	Alias /doc/ "/usr/share/doc/"
	<Directory "/usr/share/doc/">
		Options Indexes MultiViews FollowSymLinks
		AllowOverride None
		Order deny,allow
		Deny from all
		Allow from 127.0.0.0/255.0.0.0 ::1/128
	</Directory>

	#   SSL Engine Switch:
	#   Enable/Disable SSL for this virtual host.
	SSLEngine on
	SSLCertificateFile    /etc/apache2/myssl/www.mydomain.de.crt
	SSLCertificateKeyFile /etc/apache2/myssl/www.mydomain.de.key

	#   Server Certificate Chain:
	SSLCertificateChainFile /etc/apache2/myssl/gs_chain.pem

	#   Certificate Authority (CA):
	#SSLCACertificatePath /etc/ssl/certs/
	SSLCACertificateFile /etc/apache2/myssl/gs_root.pem

	#   Certificate Revocation Lists (CRL):
	#SSLCARevocationPath /etc/apache2/ssl.crl/
	#SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl

	#   SSL Engine Options:
	<FilesMatch "\.(cgi|shtml|phtml|php)$">
	SSLOptions +StdEnvVars
	</FilesMatch>
	<Directory /usr/lib/cgi-bin>
		SSLOptions +StdEnvVars
	</Directory>

	#   SSL Protocol Adjustments:
	BrowserMatch "MSIE [2-6]" \
		nokeepalive ssl-unclean-shutdown \
		downgrade-1.0 force-response-1.0
	# MSIE 7 and newer should be able to use keepalive
	BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>
 
Guck dir die Verweise auf / und /usr/share/doc doch mal genau an. Wichtig ist "deny" und "allow". Sieht alles ziemlich gut aus.

Was mir auffällt:
Kein separater Ordner (z.B. Unterordner von /var/www) für deinen Host. Macht Sinn, wenn die Maschine nur eine einzige Seite anbieten soll. Man verbaut sich damit etwas die Flexibilität.

Unter welchem User läuft die Seite? Gut, wenn eh nur eine auf dem Server liegt, dann tuts auch www-data, andernfalls solltest du nachbessern.
 
Ja es wird nur eine Seite gehostet. Es wird daher nur der www-data genutzt.

Mir ist bei / und /usr/share/doc nur nicht klar, warum diese (in dieser example Datei) währen der Installation angelegt werden.

Will man hier auf Nummer sicher gehen und den Zugriff auf diese Ordner explizit hiermit unterbinden?
 
Genau das machen die Direktiven doch. / hat ein "deny from all" und der andere Ordner ein "deny from all"+"allow from [localhost]". Das ist vollkommen sicher.
 
Zurück
Oben