summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2013-08-10 12:42:21 +0200
committerSébastien Dailly <sebastien@chimrod.com>2013-08-10 12:42:21 +0200
commit131bc140ba021016fa81aa5eb54f5bfbbfd4b7e8 (patch)
treec11f7d5b6688e5f87eec1736394466b199157d30
parent1d2d5494574f1f613fba1d684c9ddfc671f2edce (diff)
Updated article on fail2ban
-rw-r--r--content/Informatique/fail2ban.rst52
1 files changed, 41 insertions, 11 deletions
diff --git a/content/Informatique/fail2ban.rst b/content/Informatique/fail2ban.rst
index 951f030..cee3534 100644
--- a/content/Informatique/fail2ban.rst
+++ b/content/Informatique/fail2ban.rst
@@ -55,7 +55,7 @@ paramètres supplémentaires :
port = http #On ne bloque que le port 80
filter = apache-block # le nom du fichier que l'on a créé juste avant
action = %(action_)s
- logpath = /tmp/log/apache*/*access.log
+ logpath = /tmp/log/apache/access.log
maxretry = 1 #Nombre de tentatives
banaction = iptables-redirect # L'action à appliquer sur l'IP
bantime = 3600 # Le temps pendant lequel l'ip sera bannie.
@@ -72,7 +72,8 @@ l'adresse, et une autre règle qui supprime ce blocage.
Nous allons maintenant jouer avec iptables pour réaliser quelques
effets intéressant avec nos IPs à bannir :
-Relancer la durée du blocage :
+Relancer la durée du blocage
+++++++++++++++++++++++++++++
Par défaut, fail2ban retire le blocage sur l'IP une fois que la durée
spécifiée est écoulée. Je trouve ceci limité car cela n'empêche pas
@@ -93,17 +94,32 @@ présentera comme suit :
.. code-block:: bash
#On crée une nouvelle table
- actionstart = iptables -N fail2ban-<name>
- #On bloque les connexions 2 fois sur 3
- iptables -A fail2ban- -m statistic --mode random --probability .33 -j REJECT --reject-with icmp-host unreachable
- iptables -A fail2ban-<name> -j DROP
- #On insère une nouvelle règle qui met à jour le compteur à chaques nouvelles tentatives tant que le délai n'est pas écoulé
- iptables -I INPUT -p <protocol> -m multiport --dports <port> -m recent --update --seconds 360000 --name fail2ban-- -j fail2ban-<name>
+ actionstart = iptables -N fail2ban-<name>
+ iptables -A fail2ban-<name> -j DROP
+ #On insère une nouvelle règle qui met à jour le compteur à chaques nouvelles tentatives tant que le délai n'est pas écoulé
+ iptables -I INPUT -p <protocol> -m multiport --dports <port> -m recent --update --seconds 360000 --name fail2ban-- -j fail2ban-<name>
- #Pour bannir une IP, il suffit de l'écrire dans le fichier de configuration de mod-recent
- actionban = echo <ip> > /proc/net/ipt_recent/fail2ban-<name>
+ actionstop = iptables -D INPUT -p <protocol> -m multiport --dports <port> -m recent --update --seconds 360000 --name fail2ban-- -j fail2ban-<name>
+ iptables -F fail2ban-<name>
+ iptables -X fail2ban-<name>
-Mettre un message d'alerte :
+ # Pour bannir une IP, il suffit de l'écrire dans le fichier de configuration de mod-recent
+ actionban = echo +<ip> > /proc/net/xt_recent/fail2ban-<name>
+
+ # On ne retire pas de l'unban, cela se fera tout seul une fois que l'attaquant aura terminé de se connecter
+ actionunban =
+
+Il nous suffit de l'enregister dans le fichier `/etc/fail2ban/action.d/iptables-recent.conf`
+
+Si l'on veut bloquer une ip manuellement, il suffit d'éxécuter la dernière
+ligne, à savoir
+
+.. code-block:: console
+
+ # echo +${IP} > /proc/net/xt_recent/fail2ban-<name>
+
+Mettre un message d'alerte
+++++++++++++++++++++++++++
On peut décider d'annoncer à notre utilisateur bloqué que nous avons
banni son IP. Cela peut être utile si nous avons mis en place des règles
@@ -150,6 +166,20 @@ ralentir le temps d'affichage de la page
Les règles d'unban et de stop se font en symetrique de ban et start, en
supprimant des règles crées.
+
+Utiliser les nouvelles règles
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Cela se fait simplement en utilisant les nouveaux noms de fichier à la place
+des anciens. Dans le fichier `/etc/fail2ban/jail.conf`, il suffit d'utiliser la
+directive :
+
+.. code-block:: bash
+
+ banaction = iptables-recent
+
+pour utiliser les nouvelles directives à la action de filtrage.
+
Voilà, cela permet de mettre en place une sécurité personnalisée et
adaptée, qui sort déjà des outils et configuration standards (ce qui
est toujours une bonne chose en matière de sécurité). Les exemples que