FAQ french

From Fail2ban
Revision as of 11:52, 6 November 2011 by Lostcontrol (talk | contribs) (Reverted edits by Henryut (talk) to last revision by 81.251.148.195)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Général

Qu'est-ce que Fail2ban?

Fail2ban lit des fichiers de log comme /var/log/pwdfail ou /var/log/apache/error_log et bannit les adresses IP qui ont obtenu un trop grand nombre d'échecs lors de l'authentification. Il met à jour les règles du pare-feu pour rejeter cette adresse IP. Ces règles peuvent êtres défines par l'utilisateur. Fail2ban peut lire plusieurs fichiers de log comme ceux de sshd ou du serveur Apache.

Est-ce que Fail2ban est un logiciel libre?

Fail2ban est un logiciel libre; vous pouvez le distribuer et/ou le modifier sous les termes de la licence GNU General Public License comme publiée par la Free Software Foundation; soit dans la version 2 de cette licence, ou (selon votre choix) dans les termes d'une version postérieure.

De quoi ai-je besoin pour utiliser Fail2ban?

Les prérequis sont énoncés à la section Requirements.

Que signifient les numéros de version de Fail2ban?

La structure des numéros de version est majeur.mineur.revision. Actuellement le chiffre majeur est 0. La politique pour mineur est:

  • nombres impairs (0.5, 0.7, etc) pour les versions de développement.
  • nombres pairs (0.6, 0.8, etc) pour les versions stables.

Les nouvelles fonctions, reconstructions du code, configurations ou modifications de l'API sont principalement effectuées dans les versions de développement. Les versions stables contiennent des corrections relatives à la sécurité et de légères améliorations qui ont peu de chance de poser des problèmes.

Les révisions sont appelées alpha, beta, release candidate et stable. Les versions stables, même en version mineur sont toujours appelées stable. Les versions de développement sont d'abord appelées alpha, puis quand leur stabilité s'améliore, beta et finalement release candidate quand l'application est proche de la stabilité.

Comment demander de l'aide ou signaler un bug, ou proposer une nouvelle fonction?

Premièrement, essayez de trouver une réponse sur ce site. Lisez la FAQ, le Manuel et regardez les HOWTOs. Recherchez sur les archives des mailing lists et regardez sur les trackers. Si vous ne trouvez aucune réponse, inscrivez-vous à cette mailing list et posez votre question. L'inscription est obligatoire afin d'éviter le spam.

Si vous êtes convaincu d'avoir trouvé un bug, vous pouvez créer directement un nouveau billet ici.

Si vous voulez demander une nouvelle fonction, créez un nouveau billet ici.

Dans les deux cas, merci de vérifier d'abord qu'aucun bug similaire ou qu'une telle demande n'aie déjà été faite.

Dans n'importe quel cas, si vous demandez de l'aide, merci de donner les informations suivantes:

  • La version de Fail2ban que vous utilisez (essayez -V ou --version)
  • Votre version de Python
  • La façon dont vous avez installé Fail2ban (sources, .deb, .rpm, etc)
  • Les parties importantes de vos fichiers de configuration de Fail2ban
  • Le contenu des logs de Fail2ban en utilisant le mode DEBUG (-vvv et loglevel = 4)

Et bien sûr, n'oubliez pas de décrire clairement votre problème.

Installation

Existe-t-il des paquets RPM/DEB pour Fail2ban?

Évidemment. Merci de regarder la section Downloads.

Comment est-ce que je peux installer Fail2ban depuis un paquet RPM/DEB/gentoo?

Si vous utilisez rpm :

rpm -ivh fail2ban-X.X.X.rpm

Si vous devez installer un src.rpm (paquet source), utilisez les instructions suivantes :

rpm --rebuild fail2ban-X.X.X.src.rpm

Après ceci, un rpm binaire sera placé dans le répertoire /usr/src/RPM/RPMS/ix86.

rpm -ihv /usr/src/RPM/RPMS/ix86/fail2ban-X.X.X.rpm

Contrôlez au préalable que votre PATH correspond bien à /usr/src/RPM/RPMS/ix86/ avant d'effectuer une autre opération

Si vous désirez installer Fail2ban à l'aide d'un paquet .deb :

dpkg -i fail2ban-X.X.X.deb

Si vous désirez installer Fail2ban sur gentoo:

emerge fail2ban

Comment est-ce que je peux lancer Fail2ban sans l'installer?

Il est possible de lancer Fail2ban sans l'installer? Fail2ban est écrit en Python et ne nécessite pas d'être compilé. Si vous voulez tester rapidement Fail2ban ou si vous l'avez déjà installé et voulez tester une nouvelle version, suivez ces instructions (pour les versions supérieures ou égales à la 0.7.x):

  • Téléchargez la source (release ou nightly)
  • Décompressez-la quelque part dans votre système.
  • Vous devriez obtenir un dossier nommé fail2ban-*. Entrez dans ce dossier.
  • Modifiez la configuration dans config/.
    • Modifiez l'option socket dans fail2ban.conf.
    • Modifiez l'option logtarget dans fail2ban.conf.
    • N'oubliez pas de modifier jail.conf également.
  • Utilisez fail2ban-client pour démarrer fail2ban-server. N'oubliez pas de lui indiquer où trouver la configuration:
./fail2ban-client -c config/ start
  • Utilisez toujours l'option -c pour d'autres appels à fail2ban-client. N'oubliez pas non plus le ./ avant. Voici un autre exemple:
./fail2ban-client -c config/ status
  • Arrêtez Fail2ban avec:
./fail2ban-client -c config/ stop

Les gens souhaitant bidouiller Fail2ban peuvent également suivre cette procédure pour tester rapidement leurs modifications.

Configuration

Quel est le principal fichier de configuration de Fail2ban?

Le processus de configuration de Fail2ban est très simple. Il n'y a qu'un fichier de configuration, où Fail2ban peut être entièrement configuré; ce fichier est: /etc/fail2ban/fail2ban.conf

Vous pouvez modifier ce fichier en utilisant l'éditeur de votre choix: vim, emacs, joe, ae...

Le fichier de configuration doit être modifié par le root.

Comment dois-je faire pour configurer Fail2ban?

Cette étape est entièrement décrite dans le chapitre HOWTOs.

Sécurité

A quoi dois-je faire attention quand j'utilise Fail2ban?

Particulièrement sur les systèmes qui donnent accès aux services SSH/CGI/PHP à des utilisateurs inconnus, il est possible de bloquer d'autres utilisateurs de SSH et probablement d'autres services. Comment un utilisateur ferait-il? Cela pourrait ressembler à:

logger -p auth.warning -t 'sshd[123]' 'Illegal user user1 from 1.2.3.4'

Ou bien l'utilisateur malveillant pourrait écrire via la fonction openlog()/syslog() de PHP vers le syslog.

Solution #1: Ce problème de sécurité peut être réglé via l'appartenance/les permissions de /dev/log, qui par défaut autorise le logging à tous les utilisateurs. Créez simplement un groupe log, et tous les démons de ce groupe ainsi que le root en seront ravis.

Qu'en est-il du log injection?

Fail2ban analyse les fichiers de log d'autres services et il peut ainsi être vulnérable au log injection. Daniel.B Cid décrit ce type de problème dans Attacking Log analysis tools. Je vous recommande fortement de lire cet article. Nous essaierons toujours de fournir les meilleurs fichiers de configuration. Cependant, vous pouvez utiliser fail2ban-regex pour vérifier si votre configuration résiste à ce type d'attaque.

Dépannage

J'utilise Postfix sur mon système mais je n'ai pas de commande "mail". Comment recevoir les notifications par mail?

Vous disposez probablement de la commande sendmail. Copiez /etc/fail2ban/action.d/mail-whois.conf vers /etc/fail2ban/action.d/mail-whois.local, modifiez ce fichier et remplacez mail par sendmail. Voici un exemple:

actionban = echo -en "From:root <fail2ban>
            To: <dest>
            Subject: [Fail2Ban] <name>: banned <ip>
            Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here are more information about <ip>:\n
            `whois <ip>`\n
            Regards,\n
            Fail2Ban"|sendmail -t

mail.conf peut être également modifié.

Pourquoi les utilisateurs de mon CVS qui utilisent SSH sont bloqués?

Si vous utilisez l'intégration SSH de Eclipse CVS, alors chaque accès au CVS entraîne un échec de connexion avant qu'une bonne connexion soit établie. Par conséquent les utilisateurs de votre CVS sont bloqués de temps en temps.

J'ai l'erreur "Please check the format and your locale settings"

L'erreur ressemble à ceci:

ERROR: time data did not match format: data=Mar 21 10:00:50 fmt=%b %d %H:%M:%S
ERROR: Please check the format and your locale settings.

C'est un bug connu. Depuis la version 0.6.1, Fail2ban utilise vos paramètres locaux pour déterminer le format de la date et de l'heure. Cependant, certains démons ne prennent pas ces paramètres en compte et écrivent leurs logs en utilisant le standard POSIX. Jetez un coup d'œil à ce bug pour plus de détails.

Vous pouvez essayer d'outrepasser la variable LANG:

# LANG=en_US /etc/init.d/fail2ban restart

Vous pouvez afficher toutes les valeurs possibles pour locale avec:

# locale -a

Comment augmenter la verbosité?

Pour rendre Fail2ban plus bavard, vous pouvez utiliser l'option -vvv avec fail2ban-client et fail2ban (seulement pour la version 0.6.x). Paramètrez loglevel à 4 dans /etc/fail2ban/fail2ban.conf (seulement pour les versions > 0.6.x).


Comment voir les bannissements en cours?

avec la commande iptables iptables -L

Comment mettre fin à un bannissement non-terminé?

Il suffit d'utiliser la commande :

  1. pour les connexions ftp

iptables -D fail2ban-proftpd -s <IP> -j DROP

  1. pour les connexions ssh

iptables -D fail2ban-ssh -s <IP> -j DROP

en remplacant <IP> par l'ip bannie.

Comment empêcher le bannissement d'ip de son réseau local?

Editer le fichier /etc/fail2ban/jail.conf

Puis dans la section [DEFAULT], modifier la ligne comme suit :

ignoreip = ***.***.***.0/24

Où ***.***.***.0 correspond à l'IP de votre réseau local. Par exemple : 192.168.0.0/24


Comment obtenir la ligne du fichier log ayant déclenché le bannissement ?

Utiliser les actions contenant le terme "lines", par exemple sendmail-whois-lines.conf

Ce qui donne par exemple pour le fichier jail.conf :

[apache-404]
enabled = true
filter = apache-404
port = http,https
maxretry = 3
logpath  = /home/log/httpd/*-access_log
bantime  = 172800
action   = iptables-multiport[name=apache-404]
          sendmail-whois-lines[name=apache-404, lines=5, dest=monadresse@mondomaine.com]