lundi 7 février 2022

Jeedom: "fail2ban or not to ban" là est la question ;-)



En fait, je fais cet article parce que suite à certaines installations de JeedomV4 hébergeant le fail2ban dans Raspbian 10 (donc sur Pi ;-) je suis tombé sur un hic... pour 2 raisons...

1) J'avais un plugin qui me généré des bannings :-(

2) Puis ensuite sur mobile avec Safari, j'avais encore eu des bannings... 

Donc je me suis rendu compte de cela dans mes logs (en allant fouiner en SSH):

2022-02-07 17:28:50,710 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,713 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,715 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,718 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,720 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,895 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,900 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,904 fail2ban.actions        [446]: NOTICE  [apache-multiport] Ban 192.168.0.67

Avec la commande suivante: 

sudo tail -f /var/log/fail2ban.log

Je me fesais bannir même mes IPs locales :-(

Donc pour faire simple, en cherchant un peu, je me suis rendu compte que le fichier de conf n'était pas parfait :-(...

Je l'ai modifié avec la commande suivante : sudo nano /etc/fail2ban/jail.d/jeedom.conf 

Et j'ai rajouté mon range d'IP locale :

[DEFAULT]
#Ne pas bloque localhost ni s'auto-bloquer.
ignoreip = 127.0.0.1/8 192.168.1.0/24 192.168.0.0/24

# ban de  60 minutes
bantime  = 28800

# on regarde les attaques sur les 2 dernières heures. Les 5 minutes par défaut, ça ne marche plus, les pirates se sont adaptés
findtime = 7200
maxretry = 3

# on surveille tous les ports
banaction = iptables-multiport

# action a prendre: ban + log détaillé
action = %(action_)s

[apache-multiport]
enabled = true
port      = http,https
filter    = apache-auth
logpath   = /var/www/html/log/http*.error
maxretry = 3

[apache-botsearch]
enabled  = true
port     = http,https
filter   = apache-botsearch
logpath   = /var/www/html/log/http*.error
maxretry = 6

[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath   = /var/www/html/log/http*.error
maxretry = 2
.....
Et j'avais dans les logs HTTP d'apache ceci aussi:

[Mon Feb 07 22:05:40.787174 2022] [access_compat:error] [pid 1431] [client 192.168.0.151:55326] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m
[Mon Feb 07 22:05:46.658984 2022] [access_compat:error] [pid 1422] [client 192.168.0.151:55327] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m
[Mon Feb 07 22:05:52.529226 2022] [access_compat:error] [pid 1390] [client 192.168.0.151:55328] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m

Ensuite j'ai du débannir avec la commande suivante :

sudo fail2ban-client set apache-multiport unbanip 192.168.0.67

Attention, il y a un autre fichier ici (/var/www/html/install/fail2ban.jeedom.confmais il ne semble pas être utilisé dans mon cas (l'installation a merdé peut être ?!) mais je pense surtout que c'est un exemple.. mais j'ai pas tout compris je crois ;-) donc faite comme moi !!!

Enjoy !!!