|
Tutorial
: Installation sécurisée, automatisée
en globalité ou manuelle de Apache
pour Linux avec Openssl, Php4, Mysql,
Mod_ssl,
Mod_rewrite, Mod_perl , DSO
&
Mod_security avec les rêgles de l'IDS
Snort
Par Xavier
Poli, SecuObs.com
Le 03/05/2004
|
|
Pages : 1
- 2
- 3
- 4
- 5
- 6
- 7
----------------------------------------
Mod_security vous permet aussi de chrooter votre
serveur web en interne (après le chargement
des bibliothéques dynamiques & l'ouverture
des fichiers de logs). Le chroot permet de modifier
l'emplacement de la racine du système de
fichier afin que des utilisateurs malintentionnés
ne puissent pas accéder à la véritable
racine de votre système.
La procédure via Mod_security est trés
simple alors que c'est une opération généralement
plutôt complexe pour les non initiés
aux techniques de chrooting. Ajoutez la directive
suivante dans la section mod_security à votre fichier de configuration
apache /usr/local/apache/conf/httpd.conf
SecChrootdir
/home/chroot/
|
L'ordre dans lequel
les modules apaches sont chargés (selon
la conf du httpd.conf) est primordial, mod_security devant être placé et chargé en premier avant les autres modules (voir le fichier httpd.conf d'exemple en bas de la page). Créer le directory
/home/chroot/usr/local/ puis faite un move de votre install d'apache vers les directory chroot puis créer le lien symbolique dans /usr/local vers ces directory.
mkdir -p /home/chroot/usr/local/
cd /usr/local/
mv apache /home/chroot/usr/local/
ln -s /home/chroot/usr/local/apache
|
Vous
pouvez également changer la signature
de votre server web sans avoir à changer
le code source d'apache, ce qui vous permettra
de ne pas divulguer d'informations confidentiels
à propos du serveur et de sa version
à des attaquants potentiels. ajouter
la directive suivante à votre fichier
de configuration apache /usr/local/apache/conf/httpd.conf
:
SecServerSignature
"Microsoft-IIS/4.0"
|
Cette directive n'est pas nécéssaire pour les utilisateurs souhaitant utiliser mod_security avec apache 2.x.
La directive suivante doit être mise à jour en conséquence dans apache 1.x:
-----------------------------------------------------------------------------------------------------------------
Votre fichier httpd.conf pourrait
ressembler à ça, ajuster en fonction
de vos paramêtres personnels (ip, nom du serveur, répertoire, mail) :
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
LoadModule security_module libexec/mod_security.so
LoadModule env_module libexec/mod_env.so
LoadModule config_log_module libexec/mod_log_config.so
LoadModule mime_module libexec/mod_mime.so
LoadModule negotiation_module libexec/mod_negotiation.so
LoadModule status_module libexec/mod_status.so
LoadModule includes_module libexec/mod_include.so
LoadModule autoindex_module libexec/mod_autoindex.so
LoadModule dir_module libexec/mod_dir.so
LoadModule cgi_module libexec/mod_cgi.so
LoadModule asis_module libexec/mod_asis.so
LoadModule imap_module libexec/mod_imap.so
LoadModule action_module libexec/mod_actions.so
LoadModule userdir_module libexec/mod_userdir.so
LoadModule alias_module libexec/mod_alias.so
LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule setenvif_module libexec/mod_setenvif.so
<IfDefine SSL>
LoadModule ssl_module libexec/libssl.so
</IfDefine>
LoadModule php4_module libexec/libphp4.so
LoadModule perl_module libexec/libperl.so
ClearModuleList
AddModule mod_security.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine SSL>
AddModule mod_ssl.c
</IfDefine>
AddModule mod_php4.c
AddModule mod_perl.c
Port 80
<IfDefine SSL>
Listen 80
Listen 443
</IfDefine>
ExtendedStatus On
ServerSignature Off
ServerTokens Full
User apache
Group apache
ServerAdmin root@site.com
DocumentRoot "/usr/local/apache/htdocs"
PerlTaintCheck On
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/usr/local/apache/www.site.com/www/">
AllowOverride None
Options none
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/local/apache/www.site.com/cgi-bin/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/local/apache/www.site.com/secure">
AllowOverride AuthConfig
Options none
Order allow,deny
Allow from all
</Directory>
ErrorDocument 500 "erreur 500"
ErrorDocument 400 "erreur 400"
ErrorDocument 404 "erreur 404"
ErrorDocument 402 "erreur 402"
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.php index.php3 index.php4
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
UseCanonicalName On
<IfModule mod_mime.c>
TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile /usr/local/apache/conf/magic
</IfModule>
HostnameLookups Off
ErrorLog /usr/local/apache/logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/local/apache/logs/access_log combined
<IfModule mod_alias.c>
Alias /icons/ "/usr/local/apache/icons/"
<Directory "/usr/local/apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</IfModule>
<IfModule mod_autoindex.c>
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README
HeaderName HEADER
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
<IfModule mod_security.c>
SecFilterEngine On
SecServerSignature "Microsoft-IIS/4.0"
SecChrootdir /home/chroot/
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding On
SecFilterForceByteRange 0 255
SecAuditEngine RelevantOnly
SecAuditLog logs/modsec_log
SecFilterDebugLog logs/modsec_debug_log
SecFilterDebugLevel 0
SecFilterScanPOST On
SecFilterDefaultAction "deny,log,status:401"
# include /usr/local/apache/conf/modsec.conf
</IfModule>
<IfModule mod_mime.c>
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cs .cz .cs
AddLanguage ru .ru
AddLanguage zh-TW .zh-tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8
<IfModule mod_negotiation.c>
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>
AddType application/x-tar .tgz
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
AddHandler cgi-script .cgi .pl
AddType text/html .shtml
AddHandler server-parsed .shtml
</IfModule>
<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
</IfModule>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
</Location>
AddType application/x-httpd-php .php .php3 .php4
AddType application/x-httpd-php-source .phps
AddType text/html .shtml
AddType application/xml .rss .xml
AddHandler server-parsed .shtml
<IfDefine SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>
<IfModule mod_ssl.c>
SSLPassPhraseDialog builtin
SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache/logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLLog /usr/local/apache/logs/ssl_engine_log
SSLLogLevel info
</IfModule>
NameVirtualHost 192.168.1.1
<IfDefine SSL>
NameVirtualHost 192.168.1.1:443
<VirtualHost 192.168.1.1:443>
DocumentRoot /usr/local/apache/www.site.com/www/
ServerName www.site.com
ServerAdmin root@kiko.adsl.nerim.net
ErrorLog /usr/local/apache/logs/error_log
TransferLog /usr/local/apache/logs/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/usr/local/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
</IfDefine>
<VirtualHost www.site.com>
ServerAdmin postmaster@site.com
DocumentRoot /usr/local/apache/www.site.com/www/
ScriptAlias /usr/local/apache/www.site.com/cgi-bin/
ServerName www.site.com
ErrorLog logs/www.site.com-error_log
CustomLog logs/www.site.com-access_log combined
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
|
Vous pouvez récupérer ce modéle,
puis ajuster la configuration de votre fichier
/usr/local/apache/conf/httpd.conf en fonction
:
rm -fr /usr/src/httpd.conf.exemple
cd /usr/src/
wget http://www.secuobs.com/tutoriels/httpd.conf.exemple
mv /usr/src/httpd.conf.exemple /usr/local/apache/conf/httpd.conf
|
Pages : 1
- 2
- 3
- 4
- 5
- 6
- 7
----------------------------------------
|
|
|
|
|
| Mini-Tagwall | | | |
Revue de presse : security, microsoft, windows, vulnérabilité, network, google, vulnerability, hacker, attack, inject, remote, mobile, server
+ de mots clés pour la revue de presse
Annuaires des videos : virus, spyware, vmware, firmware, biometric, lockpicking, wimax, password, kernel, malware, spammer, windows, iphone
+ de mots clés pour les videos
| | |
|
|