Alouit.fr

Menu

Sécurité: Fail2ban et Varnish

Varnish Apache
Sécurité: Fail2ban et Varnish
4 (80%) 2 votes

Comment contrer les attaques sur votre serveur internet

Varnish Apache
Varnish Apache

 

Généralement, c’est MySQL qui aura tendance à « flancher » en premier par le flood (des milliers de connections sur le site dans un temps très court).

Il n’empêche qu’il faut protéger votre frontend.

Dans cet article nous vous expliquons pas à pas comment paramétrer votre serveur internet pour résister à ces attaques.

Vous trouverez ici des astuces non documentées en général qui permettent une protection efficace aux attaques de serveur causées par des milliers de connections sur votre serveur.


Configurer les logs Varnish pour Fail2ban

En premier lieu, nous allons vérifier le fichier de démarrage des logs varnish
/etc/init.d/varnishncsa
il faut qu’il contienne des valeurs similaires:
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME/$NAME.pid
LOGFILE=/var/log/varnish/varnishncsa.log
USER=varnishlog

Il est important que celui-ci arrive à démarrer tout seul, avec un simple
/etc/init.d/varnishncsa start
sinon, vous aurez un problème lors des rotations de logs.

(il est possible que vous ayez à créer le dossier/fichier logs manuellement)
mkdir /var/log/varnish
touch /var/log/varnish/varnishncsa.log
chown varnishlog:varnishlog -R /var/log/varnish/

Veillez à ce que le fichier
/etc/default/varnishncsa
contienne la variable
VARNISHNCSA_ENABLED=1
si elle est à 0, il ne démarrera pas au boot.

Configurer la rotation de logs Varnish

Editez le fichier
/etc/logrotate.d/varnish
Insérez-y:
/var/log/varnish/varnish.log /var/log/varnish/varnishncsa.log {
daily
rotate 7
missingok
compress
delaycompress
missingok
postrotate
for service in varnishlog varnishncsa; do
if /usr/bin/pgrep -P 1 $service >/dev/null; then
/usr/sbin/invoke-rc.d $service reload > /dev/null
fi
done
endscript
}

Configurer Fail2ban avec Varnish

Nous allons maintenant créer la règle pour Varnish,
Editez un fichier nommer
/etc/fail2ban/filter.d/http-get-dos.conf
Insérez-y:
[Definition]
failregex = ^<HOST>.*"GET
ignoreregex =

Editons maintenant le fichier de conditions:
nano /etc/fail2ban/jail.conf
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/varnish/varnishncsa.log
maxretry = 70
findtime = 120
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]

Il ne vous reste plus qu’à redémarrer fail2ban
/etc/init.d/fail2ban restart