 installation sécurisation apache2 sur une debian sarge   installation des packages  aptget install apache2 aptget install openssl aptget install php4cli apget install php4mysql aptget install libapache2modsecurity aptget install awstats contrôle  dans un navigateur verifier si apache tourne http localhost  création du certificat pour le mode ssl apache2sslcertificate répondre aux questions qui sont posées contrôle  vérifier la création du fichier etc apache2 apcahepem 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  editer le fichier etc apache2 httpdconf et ajouter les lignes cidessous sslprotocol all sslv2 sslciphersuite sslv2 high medium low exp sslcertificatefile etc apache2 ssl apachepem editer le fichier etc apache2 portsconf et ajouter si elle n existe pas déjà la ligne cidessous listen 443 configuration des sites par défault pour fonctionner en mod ssl cp etc apache2 sitesavailable default cp etc apache2 sitesavailable defaultssl editer le fichier etc apache2 sitesavailable defaultssl et modifier ajouter comme ci dessous ajout de la ligne sslengine on et ajout de 443 après namevirtualhost et virtualhost namevirtualhost 443 sslengine on activer le site avec la commande suivante a2ensite defaultssl activer le mod ssl d apache avec la commande suivante a2enmod ssl forcer apache à relire son fichier de configuration etc initd apache2 reload contrôle  dans un navigateur verifier si apache tourne en mode ssl https localhost  pour créer une partie du site chemin physique var www secret uniquement accessible en https editer le fichier etc apache2 sitesavailable defaultssl et ajouter entre les tags virtualhost alias secret var www secret directory var www secret allowoverride none order deny allow allow from all forcer apache à relire son fichier de configuration etc initd 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  pour voir les modules disponibles tapez la commande a2enmod puis pour activer le module a2enmod pour voir les modules chargés tapez la commande a2dismod puis pour désactiver le module a2dismod forcer apache à relire son fichier de configuration etc initd apache2 reload activation désactivation site répertoire virtuel  dans le répertoire etc apache2 sitesavailables créez un fichier de configuration de site dans l exemple suivant je créé un répertoire virtuel dans le fichier monrepertoirevirtuel alias test var www test options indexes multiviews followsymlinks allowoverride none order deny allow allow from all pour activer ce répertoire virtuel tapez la commande a2ensite monrepertoirevirtuel et forcer apache à relire son fichier de configuration etc initd apache2 reload pour désactiver ce répertoire virtuel tapez la commande a2dissite monrepertoirevirtuel et forcer apache à relire son fichier de configuration etc initd apache2 reload les commandes a2ensite et a2dissite créent suppriment des liens symboliques dans le répertoire etc apache2 sitesenabled  configuration du modsecurity d apache  editer le fichier etc apache2 httpdconf et rajouter les lignes suivantes 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 secfilter space script necessite headers httpuseragent ou httppost secfilterselective httpuseragent httphost server masking is optional secserversignature microsoftiis 50 secuploaddir tmp secuploadkeepfiles off only record the interesting stuff secauditengine relevantonly secauditlog logs auditlog you normally won t need debug logging secfilterdebuglevel 0 secfilterdebuglog logs modsecdebuglog only accept request encodings we know how to handle we exclude get requests from this because some automated clients supply text html as contenttype secfilterselective requestmethod get head chain secfilterselective httpcontenttype application xwwwformurlencoded multipart formdata do not accept get or head requests with bodies secfilterselective requestmethod get head chain secfilterselective httpcontentlength require contentlength to be provided with every post request  