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 .
Ton tutorial ne marche plus du tout sous Debian Etch...
Le package "libapache2-mod-security" n’existe plus visiblement et la commande "apache2-ssl-certificate" ne fonctionne pas non plus... J’espère qu’il y aura une nouvelle version de ton tutorial actualisée bientôt...
Installation - Sécurisation Apache2 sur une Debian Sarge .
salut.
pour tout ceux etant sous debian etch 4.0 et voulant avoir le ssl, la commande apache2-ssl-certificate n’existe pas.
vous pouvez donc faire sa :
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
puis
chmod 600 /etc/apache2/apache.pem
et en adaptant SSLCertificateFile /etc/apache2/ssl/apache.pem
par SSLCertificateFile /etc/apache2/apache.pem
voila.
Installation - Sécurisation Apache2 sur une Debian Sarge .
Configuration des sites par défault pour fonctionner en mod ssl.
cp /etc/apache2/sites-available/default cp /etc/apache2/sites-available/default-ssl
c’est le fichier default que l’on duplique (changement de nom) donc :
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
Si je me trompe merci deme corriger
Installation - Sécurisation Apache2 sur une Debian Sarge .
Petite modification pour debian sarge
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/ssl/apache.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.
Installation - Sécurisation Apache2 sur une Debian Sarge .
Bonjour
Dans la partie installation de awstats il ya un oubli :
cp /etc/awstats/awstats.local.conf /etc/mon_sites.conf
qui doit etre
cp /etc/awstats/awstats.local.conf /etc/awstats/mon_sites.conf
Installation - Sécurisation Apache2 sur une Debian Sarge .
Bonjour,
1 - C’est que le répertoire secret est dans le repertoire par défaut du serveur web.
2 - pour SSL il faut parametrer le navigateur web pour fonctionner en SSL2
Outils > Options > Avancé décoché SSL3
@+
Installation - Sécurisation Apache2 sur une Debian Sarge .
Bonjour,
http://localhost/secret/
et
https://localhost/secret/
fonctionne, je ne comprend pas !
peut-on m’expliquer d’ou cela vient ?
Par ailleurs, firefox, me dit que c’est une ancienne version de ssl et ne veut pas se connecter, avez-vous une solution ?
Merci
Installation - Sécurisation Apache2 sur une Debian Sarge .
il manque un ’<’ dans :
......
Alias /secret "/var/www/secret/"
Directory "/var/www/secret/">
AllowOverride None
Order deny,allow
Allow from all
...
...
Installation - Sécurisation Apache2 sur une Debian Sarge .
J’ai remarqué le problème, après un upgrade de la distro , mod_security ne faisait plus parti de la distribution debian.
Installation - Sécurisation Apache2 sur une Debian Sarge .
slt après avoir fait la modification du fichier httpd.conf pr la configuration du mod_security, le reload ne fonctionne pas. j’ai comme message d’erreur :
Reloading web server config...Syntax error on line 11 of /etc/apache2/httpd.conf :
Invalid command ’SecFilterEngine’, perhaps mis-spelled or defined by a module not included in the server configuration
... jvoi s vraiment pas ...