Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Apache 2 / Durcir la sécurité d'un serveur Apache 2 sur Debian

Durcir la sécurité d'un serveur Apache 2 sur Debian

Par Pierre-Yves Landuré Dernière modification 29/10/2017 16:03

Apache 2 est un serveur robuste proposant de nombreuses fonctionnalités. Ce guide durcit la sécurité d'un serveur Apache 2 en appliquant des réglages basiques.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy
  • Ubuntu 17.10 Artful Aardvark

Prérequis

Ce guide nécessite:

Ce guide recommande:

Configuration

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'

Durcir la configuration du serveur HTTP Apache 2

Appliquez quelque règles durcissant la sécurité du serveur:

if [[ -d '/etc/apache2/conf-available' ]]; then
${cmdProxy} wget 'https://raw.github.com/biapy/howto.biapy.com/master/apache2/security-hardened.conf' \
--quiet --no-check-certificate --output-document='/etc/apache2/conf-available/security-hardened.conf'
${cmdProxy} a2enconf 'security-hardened'
else
test -d '/etc/apache2/conf.d' \
&& ${cmdProxy} wget 'https://raw.github.com/biapy/howto.biapy.com/master/apache2/security-hardened.conf' \
--quiet --no-check-certificate --output-document='/etc/apache2/conf.d/security-hardened'
fi

Rechargez la configuration du serveur:

${cmdProxy} service apache2 reload

Bloquer les attaques avec fail2ban

Installez fail2ban :

${cmdProxy} apt-get install fail2ban

Activez les protections spécifiques à Apache :

[[ ! -e '/etc/fail2ban/jail.local' ]] && ${cmdProxy} touch '/etc/fail2ban/jail.local'
while read jailRule; do
if [[ -n "${jailRule}" \
&& -z "$(command grep "\[${jailRule}\]" '/etc/fail2ban/jail.local')" \
&& -n "$(command grep "\[${jailRule}\]" '/etc/fail2ban/jail.conf')" ]]; then
${cmdProxy} tee -a '/etc/fail2ban/jail.local' <<< "[${jailRule}]
enabled = true"
fi
done <<< "apache
apache-auth
apache-badbots
apache-noscript
apache-overflows
apache-nohome
apache-botsearch
apache-fakegooglebot"

Rechargez la configuration :

${cmdProxy} service fail2ban restart

Désactiver le dossier cgi-bin

Le dossier cgi-bin est de moins en moins utilisé et peut éventuellement présenter un risque. Désactivez-le :

while read configFile; do
test -e "${configFile}" && ${cmdProxy} sed -i \
-e 's|^.*ScriptAlias.*/cgi-bin/.*$|#\0|' \
-e '/Directory.*cgi-bin/,/\/Directory/s/^.*/#\0/' \
"${configFile}"
done <<< "/etc/apache2/sites-available/default
/etc/apache2/sites-available/default-ssl
/etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/default-ssl.conf"

Rechargez la configuration :

${cmdProxy} service apache2 force-reload

Remerciements