13 liens privés
🩺Symptômes
- Impossible d'aller sur mon site.
- Voire : impossible d'ouvrir une session ssh vers le serveur.
- Toujours des messages de refus.
❓Raison
Je l'ignore. Je n'ai pas encore compris pourquoi. 🙁
Tout ce que je sais, c'est que fail2ban a banni mon ip.
🪢Liens
- Quelle est sont mes IP (IPv4 & IPv6) ? : je vais avoir besoin de connaître mon IP pour la débannir.
- Fail2ban : comment débannir une adresse IP
💉Remède
2 possibilités
Cas 1 : je peux ouvrir une connexion ssh
Se connecter en root puis à l'aide des commandes suivantes :
tail -20 /var/log/fail2ban.log
➡️ pour trouver les dernières ip bannies dans quels jails
grep " Ban " /var/log/fail2ban.log
➡️ pour trouver toutes les ip bannies dans quels jails
On peut débannir sa propre IP avec la commande :
fail2ban-client set <JAIL> unbanip <IP>
Ça fonctionne aussi bien avec les IPv4 et IPv6.
Ex. :
- Si mon IP est 1.2.3.4
tail -20 /var/log/fail2ban.log
me renvoie entre autres lignes :2024-09-01 14:00:56,063 fail2ban.actions [184064]: NOTICE [nextcloud] Ban 1.2.3.4
- C'est bien mon IP, et le jail est nextcloud (entre les crochets)
- Je peux débannir l'IP avec
fail2ban-client set nextcloud unbanip 1.2.3.4
💡Pour éviter que l'IP ne soit rebannie trop rapidement (et si je ne suis pas sur un IP tournante), il est possible de la mettre sur liste blanche avec la commande : fail2ban-client set <JAIL> addignoreip <IP>
Cas 2 : Même la connexion ssh ne répond plus 😭
⚠️☠️La manipulation décrite ici consiste à couper temporairement le service fail2ban ! Il faut agir vite pour le réactiver dès que possible et limiter la surface d'attaque.
Lancer le client tor browser pour passer par le réseau tor et utiliser une autre ip. Aller sur l'interface d'administration de mon site puis dans le menu Outils > Services > fail2ban, cliquer sur le bouton d'arrêt du service.
Il est maintenant possible d'ouvrir la connexion ssh qui doit être débloquée. Sinon, je n'ai pas la solution, dans ce cas, il faut relancer le service fail2ban et continuer à chercher une autre façon de débloquer la situation.
Le service étant arrêté, la commande fail2ban-client
ne fonctionne plus. Il faut agir directement dans les fichiers de configuration.
Ouvrir le fichier /etc/fail2ban/jail.conf
avec les droits d'admin et chercher la ligne commençant par ignoreip
. Compléter ladite ligne, en y ajoutant ses IP v4 et v6, séparées par des espaces ou des virgules. Puis quitter le fichier en l'enregistrant (évidemment 😇).
Ouvrir le fichier (le créer s'il n'existe pas) /etc/fail2ban/jail.d/yunohost-whitelist.conf
et y ajouter/compléter les lignes suivantes :
[DEFAULT]
ignoreip = 127.0.0.1/8 XXX.XXX.XXX.XXX #<= l'adresse IP (on peut en mettre plusieurs, séparées par un espace et/ou une virgule) que vous voulez passer en liste blanche / whitelist
On peut/doit relancer, sur l'interface d'administration, le service fail2ban et tester le bon fonctionnement des accès : fail2ban-client reload
.
Les messages suivants apparaissent lorsque la mise ajour de shaarli échoue ...
ERROR - Impossible de mettre à jour shaarli : Une erreur s’est produite durant l’exécution du script de mise à niveau de l’application
633 processing action [28699.1]: yunohost.backup.create with args={'methods': None, 'description': None, 'apps': ['shaarli'], 'system': None, 'output_directory': None, 'name': 'shaarli-pre-upgrade2'}
WARNING - 640 Une archive de sauvegarde avec ce nom existe déjà.
WARNING - Backup failed, the upgrade process was aborted.
Effectivement, ces fichiers
- shaarli-pre-upgrade2-old.info.json
- shaarli-pre-upgrade2-old.tar.gz
... existent déjà dans/home/yunohost.backup/archives/
Je résouds le problème avec les commandes suivantes :
mv /home/yunohost.backup/archives/shaarli-pre-upgrade2.info.json /home/yunohost.backup/archives/shaarli-pre-upgrade2-old.info.json
mv /home/yunohost.backup/archives/shaarli-pre-upgrade2.tar.gz /home/yunohost.backup/archives/shaarli-pre-upgrade2-old.tar.gz
Impossible d'accéder directement à mon serveur depuis chez moi ... Que ce soit en ssh ou https, ça me renvoi un timeout. Fail2ban est en cause ici !
En passant par le serveur secondaire (ça aurait aussi fonctionné avec le partage de connexion de mon tél.), j'ai pu ouvrir une connexion ssh sur le principal.
-
1 - recherche des IP bannies :
root@principal.glacan.fr /var/log # cat fail2ban.log|grep NOTICE
2019-06-02 12:51:31,684 fail2ban.actions [1902]: NOTICE [nextcloud] Ban 91.164.189.44
2019-06-02 13:01:32,684 fail2ban.actions [1902]: NOTICE [nextcloud] Unban 91.164.189.44
2019-06-02 13:52:25,734 fail2ban.actions [1902]: NOTICE [nextcloud] Ban 91.164.189.44
2019-06-02 14:02:25,775 fail2ban.actions [1902]: NOTICE [nextcloud] Unban 91.164.189.44
2019-06-02 14:52:44,686 fail2ban.actions [1902]: NOTICE [nextcloud] Ban 91.164.189.44
2019-06-02 15:02:44,728 fail2ban.actions [1902]: NOTICE [nextcloud] Unban 91.164.189.44
2019-06-02 16:52:44,286 fail2ban.actions [1902]: NOTICE [nextcloud] Ban 91.164.189.44
2019-06-02 17:02:44,335 fail2ban.actions [1902]: NOTICE [nextcloud] Unban 91.164.189.44
2019-06-02 18:51:32,602 fail2ban.actions [1902]: NOTICE [nextcloud] Ban 91.164.189.44
2019-06-02 18:51:33,567 fail2ban.actions [1902]: NOTICE [recidive] Ban 91.164.189.44
2019-06-02 19:01:32,659 fail2ban.actions [1902]: NOTICE [nextcloud] Unban 91.164.189.44
2019-06-02 19:40:42,814 fail2ban.actions [1585]: NOTICE [recidive] Ban 91.164.189.44
2019-06-06 11:09:51,142 fail2ban.actions [1610]: NOTICE [recidive] Ban 91.164.189.44 -
2 - Quelle est mon IP externe ?
Sur le site https://mon-ip.io/, je trouve : 91.164.189.44
Comme par hasard :-( -
3 - Lecture des règles iptables en vigueur sur le serveur :
root@principal.glacan.fr /var/log # iptables -L --line-numbers
[...]
Chain f2b-recidive (1 references)
num target prot opt source destination
1 REJECT all -- 91-164-189-44.subs.proxad.net anywhere reject-with icmp-port-unreachable
2 RETURN all -- anywhere anywhere
[...] -
4 - Réhabilitation de mon IP :
root@principal.glacan.fr /var/log # iptables -D f2b-recidive 1
Ici, "1" est le numéro de la ligne retournée par la commande précédente ;-)
Et voilà le travail :-)