Installation - Sécurisation Apache2 sur une Debian Sarge .
- Installation des packages :
apt-get install apache2
apt-get install openssl
apt-get install php4-cli
ap-get install php4-mysql
apt-get install libapache2-mod-security
apt-get install awstats
contrôle : dans un navigateur verifier si apache tourne (http://localhost)
Création du certificat pour le mode SSL
apache2-ssl-certificate
répondre aux questions qui sont posées
contrôle : vérifier la création du fichier /etc/apache2/apcahe.pem et d’un lien symbolique sur ce fichier. Ce fichier contient la clé publique et la clé privée qui seront utilisées par apache. Il existe une autre méthode plus complexe avec openssl pour créer ces clés.
Activation du mode SSL
SSLProtocol -all +SSLv2
SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
SSLCertificateFile /etc/apache2/ssl/apache.pem
Listen 443
Configuration des sites par défault pour fonctionner en mod ssl.
cp /etc/apache2/sites-available/default cp /etc/apache2/sites-available/default-ssl
NameVirtualHost *:443
SSLEngine on
...
...
a2ensite default-ssl
a2enmod ssl
/etc/init.d/apache2 reload
contrôle : dans un navigateur verifier si apache tourne en mode ssl https://localhost
......
Alias /secret "/var/www/secret/"
Directory "/var/www/secret/">
AllowOverride None
Order deny,allow
Allow from all
...
...
/etc/init.d/apache2 reload
contrôle : dans un navigateur verifier si https://localhost/secret fonctionne, et http://localhost/secret ne fonctionne pas .
Activation/désactivation des modules d’Apache
a2enmod
puis pour activer le module
a2enmod
a2dismod
puis pour désactiver le module
a2dismod
/etc/init.d/apache2 reload
Activation/désactivation site/répertoire virtuel
Alias /test/ "/var/www/test/"
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
a2ensite mon_repertoire_virtuel
et forcer Apache à relire son fichier de configuration
/etc/init.d/apache2 reload
a2dissite mon_repertoire_virtuel
et forcer Apache à relire son fichier de configuration
/etc/init.d/apache2 reload
Les commandes a2ensite et a2dissite créent/suppriment des liens symboliques dans le répertoire /etc/apache2/sites-enabled/
Configuration du mod_security d’Apache
# Turn ModSecurity On
SecFilterEngine On
# Reject requests with status 403
SecFilterDefaultAction "deny,log,status:403"
# Some sane defaults
SecFilterScanPOST On
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding Off
# Accept almost all byte values
SecFilterForceByteRange 1 255
#Injection SQL
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
#Attaque par chemin transversal
SecFilter "\.\./"
#Injection javascript
SecFilter "
#Attaques XSS
SecFilter "<.+>"
SecFilter "<[[:space:]]*script"
#Necessite headers HTTP_USER_AGENT ou HTTP_POST
SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"
# Server masking is optional
# SecServerSignature "Microsoft-IIS/5.0"
SecUploadDir /tmp
SecUploadKeepFiles Off
# Only record the interesting stuff
SecAuditEngine RelevantOnly
SecAuditLog logs/audit_log
# You normally won't need debug logging
SecFilterDebugLevel 0
SecFilterDebugLog logs/modsec_debug_log
# Only accept request encodings we know how to handle
# we exclude GET requests from this because some (automated)
# clients supply "text/html" as Content-Type
SecFilterSelective REQUEST_METHOD "!^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Type \
"!(^application/x-www-form-urlencoded$|^multipart/form-data;)"
# Do not accept GET or HEAD requests with bodies
SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Length "!^$"
# Require Content-Length to be provided with
# every POST request
Pour que tout fonctionne créez le répertoire logs dans /etc/apache2
Je n’ai pas inventé ces règles le les ai pêchées dans la doc directement sur le site de mod_security.
/etc/init.d/apache2 reload
Vérifier cycliquement ou mettre sous surveillance le fichier /etc/apache2/log/audit.log dans lequel apparaitront les tentatives d’intrusion.
Configuration de AWSTATS
Copier le fichier de configuration standard.de AWSTATS
cp /etc/awstats/awstats.conf.local /etc/awstats.mon_serveur.conf
Editer le fichier etc/awstats.mon_serveur.conf
et renseigner les lignes Logfile (fichier de log
d'apache) et SiteDomain (personnalisation affichage)
.......
LogFile="/var/log/apache2/access.log"
......
SiteDomain="Nom de mon serveur"
.......
LogFormat=1
Il existe bon nombre d’autres options que je vous laisse découvrir
Pour vérifier que tout fonctionne lancez la commande
/usr/lib/cgi-bin/awstats.pl -config= mon_serveur
Vous devriez avoir une réponse de ce style
Update for config "/etc/awstats/awstats.mon_serveur.conf"
With data in log file "/var/log/apache2/access.log"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record has fallen on another record.
So searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 17400
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 17400 new qualified records.
Il n’y a plus qu’a automatiser cette tache avec crontab
commande
crontab -e
ajouter la ligne suivante pour une mise à jour des stats tout les jours à minuit
0 0 * * * /usr/lib/cgi-bin/awstats.pl -config=mon_site
Pour atteindre les stats depuis un butineur
http://127.0.0.1/cgi-bin/awstats.pl?config=mon_site->http://127.0.0.1/cgi-bin/awstats.pl?config=mon_site
La configuration web de AWSTATS a été ajoutée au fichier /etc/apache2/httpd.conf
par mesure de sécurité restreindre l’accès web des stats en modifiant la ligne
....
....Allow from all
....
en
....
....Allow from 127.0.0.1
....
/etc/init.d/apache2 reload
Commentaires
Installation - Sécurisation Apache2 sur une Debian Sarge .
Voila ce que j’ai dans mon httpd.conf. Ca fonctionne avec Firefox2 ;-)
SSLProtocol all
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/apache.pem
Installation - Sécurisation Apache2 sur une Debian Sarge .
salut !
très bon tuto ca fonctionne impecablement
seul chose constaté, la version 2 de firefox nous dit que l’on utilise une ancienne version non sur du protocol ssl
je viens de faire le tuto alors je n’ai pas encore resolu le problème, donc je posterai à nouveau quand ca sera fait
en tous cas merci pour ce site exellent !!
Installation - Sécurisation Apache2 sur une Debian Sarge .
Vide le cache de ton navigateur.
Installation - Sécurisation Apache2 sur une Debian Sarge .
Attention erreur de frappe dans cette doc, dans la section "Configuration des sites par défault pour fonctionner en mod ssl."
La commande correcte est :
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
(Il y a un "cp" en trop)
Installation - Sécurisation Apache2 sur une Debian Sarge .
Salut !!
je viens de vivre ton problème, moi c’est sur Squirrelmail, quand je veux le tester, je reçois un message qui dit si je veux bien le télécharger ou enregistrer la page démandée sur le disque dure !
Hola hola ! Pout ton cas, Il serait bien de verifier si MySQl est installé sur ta machine car phpmyadmin fonctionne avec celui là ! dans ta commande je ne vois pas le module php4-mysql ? peux-tu verifier si tu as installé ce paquetage ?
# apt-get install php4-mysql a apporté la solution pour ce qui était le cas de mon installation, mais le message d’enregistrment persiste lors du test par un navigateur.
j’avais la meme complication ,et son installation a permis après l’installation de mon squirrelmail qui ne voulait pas s’installer avant.
En ceque qui est de commun, les deux environnement utilise bien le php.
Courage tu t’en sortira !!
Installation - Sécurisation Apache2 sur une Debian Sarge .
Vérifie si tu as cette ligne non commentée dans ton httpd.conf
AddType application/x-httpd-php .php
Installation - Sécurisation Apache2 sur une Debian Sarge .
Bonjour,
J’ai installé apache2 php4 mysql et phpmyadmin. J’utilise une Sarge
php a l’air de fonctionner mais quand je veux utiliser phpmyadmin, il me demande si je veux le telécharger.
Si quelqu’un a une idée je suis tout ouie. Cela fait plus d’une semaine que je cherche la soluce sur le net
PS : Bravo pour ce site :-)
> Installation - Sécurisation Apache2 sur une Debian Sarge .
Merci pour ce tutoriel, mais la regle :
SecFilter "<.+>"
entraine des erreurs avec squirrelmail 1.4.4
qui empeche d’ecrire des mails
(Erreur : forbidden /src/compose.php)