Projet

Général

Profil

Actions

Wiki

fail2band : une api qui permet de remonter ses ip bannies et de les télécharger depuis ses autres serveurs ... voir à terme de les partager avec d'autres utilisateurs (de confiance) ...

Pour l'instant l'idée est la suivante:

  • un utilisateur (administrateur) créé autant de clé d'API qu'il a de serveur sur lesquels fail2ban tourne
  • il ne faut surtout pas utiliser la même clé d'API sur 2 serveurs, car c'est un élément qui permet de ne pas "boucler" (ie renvoyer la blacklist du serveur 1 sur serveur 1)

Configuration initiale

En automatique via le script et l'option --setup

Directement sur votre serveur, téléchargez l'assistant de configuration https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2band.sh et lancez le avec l'option --setup : il créé votre compte utilisateur et si vous en avez déjà un vous génère la clé d'accès à l'api pour le serveur et créé le fichier de configuration /etc/fail2band/config !

fail2band.sh --setup

Vous pouvez aussi lancer fail2band.sh --help qui devrait vous donner toute l'aide intégrée !

Configuration pour uploader sa blacklist

(faire la Configuration initiale comme indiqué dans le paragraphe "Configuration initiale")

[sshd]
enabled = true
banaction = %(banaction_allports)s
        fail2band     <------------------------ c'est ça qu'il faut ajouter à vos blocs banaction

  • 3. Relancez fail2ban et vérifiez sur le fichier log local de fail2ban que les nouvelles IP bannies sont aussi "poussées" sur le serveur fail2band.com ... (vérifiez sur le panneau d'admin du serveur web dans la section fail2ban que les ip remontées sont bien là)

Configuration pour télécharger sa blacklist sur un autre serveur

(faire la Configuration initiale comme indiqué dans le paragraphe "Configuration initiale")

Rappel: le principe de base est que la blacklist est commune pour le compte utilisateur mais différentiée pour les clés d'api utilisées ...

[fail2band-remote]
enabled = true
banaction = iptables-allports
filter = fail2band-remote
protocol = all
logpath = /var/log/fail2band-remote.log
maxretry = 1
findtime = 1h
bantime = 1d

  • 4. Relancez fail2ban et vérifier sur le fichier log local de fail2ban que tout marche bien

Ensuite il faut que le fichier /var/log/fail2band-remote.log se remplisse à partir de la base centrale ... il faut lancer le script fail2band.sh avec l'option --get via un cron par exemple: (dans le futur on regardera de plus près les websockets ou autres bricoles permises par http2)

/usr/local/bin/fail2band.sh --get --filter ssh

En résumé condensé ce que je fais actuellement pour déployer fail2band sur mes serveurs ...

Mis à jour par Eric Seigne il y a 2 mois · 18 révisions

Go to top
Ajouter une image à partir du presse-papier (Taille maximale: 50 Mo)