Apache2: Unterschied zwischen den Versionen

Aus crazylinux.de
Zur Navigation springen Zur Suche springen
Zeile 65: Zeile 65:


Für bestimmte Verzeichnisse kann man den Filter auch ausstellen:
Für bestimmte Verzeichnisse kann man den Filter auch ausstellen:
#
  <Location /upload.php>
  <Location /upload.php>
     # Do not inherit filters from the parent folder
     # Do not inherit filters from the parent folder
     SecFilterInheritance Off
     SecFilterInheritance Off
  </Location>
  </Location>
[http://www.infosecwriters.com/texts.php?op=display&id=255Defending Web Services using Mod Security (Apache) Methodology and Filtering Techniques  by  Shreeraj Shah on  19/01/05]


==mod_php==
==mod_php==

Version vom 10. Januar 2006, 00:39 Uhr

als Webserver verwenden wir Apache2 mit PHP4, mod_security, mod_auth_pam, mod_deflate und ZendOptimizer. Desweiteren lassen wir die Logfiles nach einem Tag rotieren. Rotiert wird nach UTC, d.h. wir müssen eine Stunde wieder abziehen (-60).

virt. Host

bsp site-conf /etc/apache2/sites-available/xxxtemplate:

Listen 62.146.xxx.xxx:80
<VirtualHost 62.146.xxx.xxx:80>
       ServerAdmin webmaster@xxx
       ServerName www.xxxx
       ServerAlias xxxx2
       DocumentRoot /home/www/xxxx/htdocs
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       ErrorLog "|/usr/sbin/rotatelogs /home/www/xxxx/logs/error.log.%Y.%m.%d 86400 -60"
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
       CustomLog "|/usr/sbin/rotatelogs /home/www/xxxx/logs/access.log.%Y.%m.%d 86400 -60" combined
</VirtualHost>

mod_auth_pam/Verzeichnisschutz

Für den Verzeichnisschutz verwenden wir mod_auth_pam, d.h. wir können die gleichen Logindaten wie am System nutzen. Damit man eine Gruppe nutzen kann, wird libapache2-mod-auth-sys-group benötigt!

eine bsp. .htaccess:

AuthPAM_Enabled on
AuthType Basic
AuthName "secure area"
require group staff

mod_security

/etc/apache2/mods-avaible/mod-security.conf:

<IfModule mod_security.c>
   # Turn the filtering engine On or Off
   SecFilterEngine On
   # Make sure that URL encoding is valid
   SecFilterCheckURLEncoding On
   # Only allow bytes from this range
   SecFilterForceByteRange 1 255
   # The audit engine works independently and
   # can be turned On of Off on the per-server or
   # on the per-directory basis
   SecAuditEngine RelevantOnly
   # The name of the audit log file
   SecAuditLog /var/log/apache2/audit_log
   SecFilterDebugLog /var/log/apache2/modsec_debug_log
   SecFilterDebugLevel 0
   # Should mod_security inspect POST payloads
   SecFilterScanPOST On
   # Action to take by default
   SecFilterDefaultAction "deny,log,status:406"
   # Prevent OS specific keywords
   SecFilter /etc/ password
   SecFilter /bin/ ls
   # Prevent path traversal (..) attacks
   SecFilter "\.\./"
   # Weaker XSS protection but allows common HTML tags
   SecFilter "<( |\n)*script"
   # Prevent XSS atacks (HTML/Javascript injection)
   #SecFilter "<(.|\n)+>"
</IfModule>

Für bestimmte Verzeichnisse kann man den Filter auch ausstellen:

<Location /upload.php>
   # Do not inherit filters from the parent folder
   SecFilterInheritance Off
</Location>

Web Services using Mod Security (Apache) Methodology and Filtering Techniques by Shreeraj Shah on 19/01/05

mod_php

Aus Sicherheitsgründen vestecken wir die PHP-Version im HTTP-Header /etc/php4/apache2/php.ini

expose_php = off
memory_limit = 50M      ; Maximum amount of memory a script may consume (8MB)
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/lib/php4/Zend/lib/Optimizer-2.5.10
zend_extension_manager.optimizer_ts=/usr/lib/php4/Zend/lib/Optimizer_TS-2.5.10
zend_optimizer.version=2.5.10a
#zend_extension=/usr/lib/php4/Zend/lib/ZendExtensionManager.so
zend_extension=/usr/lib/php4/20020429/php_accelerator_1.3.3r2.so
#zend_extension_ts=/usr/lib/php4/Zend/lib/ZendExtensionManager_TS.so
phpa.ignore_files ="graph_image.php"
phpa.shm_user = www-data
phpa.shm_group = www-data

mod_dav

WEBDAV-Modul für Apache. Damit ist es möglich Dateien über https zu manipulieren (ändern, löschen, erstellen usw.).

Alias /phparea /home/gstein/php_files
Alias /php-source /home/gstein/php_files
DavLockDB /tmp/DavLock.myvhost
<Location /php-source>
 Dav On
 AuthType Basic
 AuthName DAV
 AuthPAM_Enabled on
 require group staff
 php_flag engine off # oder  ForceType text/plain
</Location>


Links

http://httpd.apache.org/docs/2.0/programs/rotatelogs.html
http://www.php-accelerator.co.uk/
PHPACA Web Front End http://www.modsecurity.org/