|
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
----------------------------------------
Les
permissions se gérent à travers
les fichiers .htaccess qui sont à placer
dans le répertoire en question. La
section définissant les .htaccess dans
le fichier de configuration d'apache /usr/local/apache/conf/httpd.conf
:
AccessFileName
.htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
|
Exemple
de fichier .htaccess :
AuthUserFile
/chemin/vers/.htpasswd
AuthName ByPassword
AuthType Basic
<Limit
GET>
require user $user
</Limit> |
Les logins & mots de passe sont stockés
dans un fichier .htpasswd. Vous devez le placer
impérativement hors des répertoires
de votre site web. Vous devez générer
un fichier .htpasswd avec la commande suivante,
remplacer par $user par le login désiré
puis entrez le mot de passe au prompt :
/usr/local/apache/bin/htpasswd -c /chemin/vers/.htpasswd
$user |
Si le fichier .htpasswd existe déjà,
ne précisez pas l'option -c ni le fichier
:
/usr/local/apache/bin/htpasswd $user |
Vérifier
la présence des lignes suivantes dans
le fichier de configuration d'apache /usr/local/apache/conf/httpd.conf,
si non présentes ou différentes,
ajouter ou modifier les :
ServerSignature
Off
ServerTokens Prod
|
Cela
vous permet de ne pas divulguer d'informations
confidentielles sur la version de votre server
web. Pour parfaire cela vous devez également
modifier les options suivante dans ce même
fichier :
ErrorDocument
500 "erreur 500"
#ErrorDocument 404 /missing.html
ErrorDocument 400"erreur 400"
#ErrorDocument 404 /cgi-bin/missing_handler.pl
ErrorDocument 404 "erreur 404"
#ErrorDocument 402 http://www.example.com/subscription_info.html
ErrorDocument 402 "erreur 402"
|
Un Virtual Host ou serveur virtuel permet à
un même serveur d'héberger, sur
une même adresse IP, plusieurs sites différenciés
par leur nom. La section d'un Virtual Host accessible
en https doit être de la forme suivante
:
<IfDefine SSL>
NameVirtualHost
"votre ip":443
<VirtualHost "votre ip":443>
ServerAdmin postmaster@site.com
DocumentRoot /usr/local/apache/www.site.com/www
ScriptAlias /cgi-bin /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
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
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/server.crt
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
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> |
Changer "votre ip" par votre ip, privilégié
à un nom de domaine pour éviter
les problèmes en https en cas de panne de DNS
("domain name server" est un serveur
offrant la conversion des noms de domaine
en adresse IP ainsi que le reverse) et www.site.com
par le nom de votre site (exemple = www.secuobs.com),
ajouter chaque virtual host supplémentaire
dans la section <IfDefine SSL></IfDefine>.
Changez également
le nom des certificats en fonction des votres.
Un virtual host http classique se présente de la manière suivante :
<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
</VirtualHost>
|
L'ensemble des virtual host doit s'accompagner de la directive suivante (changer ip par votre ip), une seule directive pour l'ensemble des virtual host :
Vérifier
également la présence de la section
suivante :
<IfDefine
SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>
|
Mais
aussi de :
CustomLog /var/log/httpd/access_log
combined
|
Vous pouvez utiliser le fichier httpd.conf donné en modèle içi pour vous faire une idée de la configuration à apporter.
-----------------------------------------------------------------------------------------------------------------
Compiler puis
installer php-4.3.6 en tant que module dynamique
DSO :
:
cd
/usr/src/
tar -zxvf php-4.3.6.tar.gz
cd php-4.3.6
./configure --with-mysql=/usr/local/mysql
--with-apxs=/usr/local/apache/bin/apxs
make
make install
cp php.ini-dist /usr/local/lib/php.ini
|
Vous
pouvez installer ce qui a trait à php
d'un seul coup avec le fichier suivant. Nommez
le php.sh, passez un chmod +x php.sh, placez
le dans /usr/src/ puis éxécutez
le avec la commande ./php.sh en vous plaçant
au préalable dans /usr/src/ .
#!/bin/sh
cd
/usr/src/
tar -zxvf php-4.3.6.tar.gz
cd php-4.3.6
./configure --with-mysql=/usr/local/mysql
--with-apxs=/usr/local/apache/bin/apxs
make
make install
cp php.ini-dist /usr/local/lib/php.ini
|
PHP a été conçu pour vous
permettre de configurer certaines options afin
d'assurer la sécurité de vos systèmes,
vous pouvez par exemple :
-
vérifier les fichiers accédés
avec le safe_mode,
-
interdire l'utilisation de certaines commandes,
disable_functions,
- accepter l'affichage de la bannière
avec expose_php,
- max_execution_time et memory_limit pour empêcher
les Dénis de Service DoS,
- magic_quotes_gpc mets des quotes dans les
données reçues des cookies &
formulaires en GET & POST.
- vous pouvez également interdire l'affichage
des erreurs en cas de problème sur une
page avec display_error.
L'ensemble se configure dans le fichier php.ini
que vous venez de copier dans /usr/local/lib/
:
safe_mode
= On
expose_php = Off
max_execution_time = 30
memory_limit = 8M
disable_functions =
magic_quotes_gpc = On
display_errors = Off
[SQL]
sql.safe_mode = On
|
Vérifier
la présence des lignes suivantes dans
leur section respective du fichier de configuration
d'apache /usr/local/apache/conf/httpd.conf,
sinon ajouter les :
LoadModule
php4_module libexec/libphp4.so
AddModule mod_php4.c
AddType application/x-httpd-php .php
.php3 .php4
AddType application/x-httpd-php-source
.phps
|
Ajouter index.php, index.php3 & index.php4
dans la section suivante du fichier de configuration
:
<IfModule
mod_dir.c>
DirectoryIndex index.html index.htm
index.php index.php3 index.php4
</IfModule>
|
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
| | |
|
|