fail2ban tourne mais ne fait rien! [Réglé]

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
J'ai un serveur qui tourne avec Mageia 8 et un serveur LAMP.
Pour sécuriser ce dernier, j'ai installé et configuré fail2ban.
Il s'avère que ce dernier se lance, prend apparemment bien la config, mais ne fait rien: Après 2 jours de fonctionnement, aucun bannissement alors que les tentatives de log sont légion.
A noter que j'ai bien installé et fais tourner rsyslog afin que le fichier de log /var/log/auth.log soit alimenté.
Voici mon fichier /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1 88.162.112.128
findtime = 600
bantime = 86400
banaction = shorewall
maxretry = 3
# send email
action = %(action_mwl)s
# Uncomment to ignore local connections from 192.168.x.y (example)
#ignoreip = 192.168.0.0/16
usedns = warn
port = 0:65535
Et mon fichier /etc/fail2ban/jail.d/custom.conf
[sshd]
enabled = true
# port = 2222
logpath = /var/log/auth.log
maxretry = 5
[ssh-iptables]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
[sshd-ddos]
port = ssh
# logpath = %(sshd_log)s
logpath = /var/log/auth.log
[dropbear]
port = ssh
logpath = %(dropbear_log)s
[selinux-ssh]
port = ssh
logpath = %(auditd_log)s
maxretry = 5
# HTTP servers
[apache-auth]
enabled=true
port = http,https
logpath = %(apache_error_log)s
[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port = http,https
logpath = %(apache_access_log)s
bantime = 172800
maxretry = 1
[apache-noscript]
enabled=true
port = http,https
logpath = %(apache_error_log)s
maxretry = 6
[apache-overflows]
enabled=true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-nohome]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-botsearch]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-fakegooglebot]
port = http,https
logpath = %(apache_access_log)s
maxretry = 1
ignorecommand = %(ignorecommands_dir)s/apache-fakegooglebot <ip>
[apache-modsecurity]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-shellshock]
port = http,https
logpath = %(apache_error_log)s
maxretry = 1
# Traitement des récidives
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
banaction = %(banaction_allports)s
bantime = 1w
findtime = 1d
La réponse à: systemctl status fail2ban
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Je n'arrive pas à trouver ce qui cloche, une idée ?
Édité par holly76 Le 07/12/2022 à 11h00

squid-f Membre non connecté
-
- Voir le profil du membre squid-f
- Inscrit le : 03/04/2016
- Groupes :
-
Membre d'Honneur

Désolé, mais je vais commencer par une série de questions :
* Quand tu dis que tu vois des tentatives d’accès, quels services sont visés ? ssh ? Apache ? Autres ?
* As-tu moyen de tester, ssh au moins, depuis une autre machine ?
* Que donne systemctl status fail2ban (je pense que tu as donné la sortie de fail2ban-client status sshd) ?
* Que donne fail2ban-client status (en root) ?
* Tu as activé rsyslog mais ce n’est pas obligatoire avec systemd. D’ailleurs, la sortie de fail2ban-client status sshd montre que c’est le journal système qui est analysé. Du coup, le logpath pointant vers auth.log, je me demande si cela ne pourrait pas générer un conflit.
* Dans tes filtres apache , je rajouterais bien :
backend = polling
Journalmatch =
* Est-ce que en root la commande shorewall show dynamic montre des ip bloquées ?
* Tu demandes l’envoi d’email en cas de détection. Qu’as-tu installé en mail agent ? Postfix ?
A+

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Accès ssh
ssh par une autre machine: Oui, le serveur est dans le local de l'asso et je travaille de chez moi.
Résutat de fail2ban-client status:
● fail2ban.service - fail2ban attack scanner
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: dis
abled)
Active: active (running) since Wed 2022-12-07 17:14:24 CET; 12h ago
Process: 1520241 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=0/SU
CCESS)
Main PID: 1520251 (fail2ban-server)
Tasks: 5 (limit: 19122)
Memory: 10.8M
CPU: 14.750s
CGroup: /system.slice/fail2ban.service
└─1520251 /usr/bin/python3 /usr/bin/fail2ban-server --async -b -s /var/run/fa
il2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x --loglevel INFO --logtarget /var
/log/fail2ban.log --syslogsocket auto
déc. 07 17:14:24 serveur.geneacaux.loc systemd[1]: Starting fail2ban attack scanner...
déc. 07 17:14:24 serveur.geneacaux.loc fail2ban-client[1520241]: 2022-12-07 17:14:24,376 f
ail2ban.configreader [1520241]: WARNING 'allowipv6' not defined in 'Definition'. Using d
efault one: 'auto'
déc. 07 17:14:24 serveur.geneacaux.loc fail2ban-client[1520241]: Server ready
déc. 07 17:14:24 serveur.geneacaux.loc systemd[1]: Started fail2ban attack scanner.
Pour éviter toute confusion, j'ai fait un essai en simplifiant pour surveiller uniquement sshd, et ça ne change rien au problème.
shorewall show dynamic ne donne rien de probant:
Counters reset mar. 06 déc. 2022 09:48:42 CET
Chain dynamic (4 references)
pkts bytes target prot opt in out source destination
Sur ce serveur, encore pas installé, mais oui ce sera postfix.

gustine Membre non connecté
-
- Voir le profil du membre gustine
- Inscrit le : 26/09/2010
- Site internet
- Groupes :
Grâce à ce fil https://www.mageialinux-online.org/forum/topic-29226+regle-fail2ban-et-mageia-7.php
j'utilise fail2ban depuis 15 mois mais sur Mageia 7.
Si ça peut aider, j'ai dans mon fichier jail.local une section [INCLUDES] avec before = paths-fedora.conf
et autant que je me souvienne, dans [DEFAULT] le paramètre backend = polling avait été déterminant dans la résolution du problème.
Mais je ne sais pas si c'est pertinent avec Mageia 8.

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Grâce à ce fil https://www.mageialinux-online.org/forum/topic-29226+regle-fail2ban-et-mageia-7.php
j'utilise fail2ban depuis 15 mois mais sur Mageia 7.
Si ça peut aider, j'ai dans mon fichier jail.local une section [INCLUDES] avec before = paths-fedora.conf
et autant que je me souvienne, dans [DEFAULT] le paramètre backend = polling avait été déterminant dans la résolution du problème.
Mais je ne sais pas si c'est pertinent avec Mageia 8.
Merci pour cette réponse.
Ça marche maintenant, avec rsyslogd et un include debian. J'ai aussi mis le backend.
L'intérêt pour moi, c'est que j'ai un autre serveur VPN pour mon asso, tournant avec Ubuntu, et ça me permet de comparer.
Je teste ainsi encore un peu avec uniquement sshd puis je rependrai les autres jails.
En tous cas grand merci pour cette aide.

Édité par holly76 Le 08/12/2022 à 16h58

squid-f Membre non connecté
-
- Voir le profil du membre squid-f
- Inscrit le : 03/04/2016
- Groupes :
-
Membre d'Honneur
Comme je l’indiquait plus haut, le défaut pour le filtre ssh pour Mageia est systemd et log dans le journal. En activant rsyslog , tu changes de configuration et les fichiers log ne sont plus les mêmes.
J’ai remis de l’ordre dans le paquet lors de sa dernière mise à jour pour qu’il installe un paths-mageia.conf
Ni paths-debian.conf ni paths-fedora.conf ne conviennent parfaitement.
Avec paths-debian.conf, tu risques d’avoir des problèmes avec les autres services.
Tu as aussi un exemple d’activation du filtre ssh dans /etc/fail2ban/jail.d/01-ssh.local
Tu n’as rien besoin d’autre si tu restes avec la configuration par défaut.
Normalement, tu ne devrais pas avoir besoin de backend = polling pour le filtre sshd.
Si cela fonctionne maintenant, tant mieux, mais vigilance.
A+

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Comme je l’indiquait plus haut, le défaut pour le filtre ssh pour Mageia est systemd et log dans le journal. En activant rsyslog , tu changes de configuration et les fichiers log ne sont plus les mêmes.
J’ai remis de l’ordre dans le paquet lors de sa dernière mise à jour pour qu’il installe un paths-mageia.conf
Ni paths-debian.conf ni paths-fedora.conf ne conviennent parfaitement.
Avec paths-debian.conf, tu risques d’avoir des problèmes avec les autres services.
Tu as aussi un exemple d’activation du filtre ssh dans /etc/fail2ban/jail.d/01-ssh.local
Tu n’as rien besoin d’autre si tu restes avec la configuration par défaut.
Normalement, tu ne devrais pas avoir besoin de backend = polling pour le filtre sshd.
Si cela fonctionne maintenant, tant mieux, mais vigilance.
A+
J'ai suivi tes indications et j'obtiens un fonctionnement apparemment correct.
Voici ce que j'ai fait:
Fichier custom.conf:
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
enabled = true
maxretry = 5
Fichier jail.local:
ignoreip = 127.0.0.1 88.162.112.128
findtime = 600
bantime = 86400
banaction = shorewall
maxretry = 3
backend = polling
action = %(action_mwl)s
usedns = warn
port = 0:65535
[INCLUDES]
before = paths-mageia.conf
In fine, j'en déduis que le package fourni tourne à vide si on ne retouche pas la config; je pensais que par défaut il protégeait au moins sshd, bonne leçon pour moi.

squid-f Membre non connecté
-
- Voir le profil du membre squid-f
- Inscrit le : 03/04/2016
- Groupes :
-
Membre d'Honneur
Le choix de quoi protéger est laissé à l’utilisateur. Par contre, j’ai ajouté des fichiers d’exemples pour guider. Il suffit de décommenter les lignes.
Tu n’as pas besoin d’ajouter paths-mageia dans ton jail.local
Il est déjà dans le jail.conf
A+

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
J'ai remis mes 6 jails et tout est OK.
Merci à tous deux pour votre aide efficace


squid-f Membre non connecté
-
- Voir le profil du membre squid-f
- Inscrit le : 03/04/2016
- Groupes :
-
Membre d'Honneur
Cela permet de les différencier de celles qui viennent des sources.
Soit custom.local plutôt que custom.conf, dans l’exemple de holly76.
A+

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Cela permet de les différencier de celles qui viennent des sources.
Soit custom.local plutôt que custom.conf, dans l’exemple de holly76.
A+
Effectivement, c'est bien cette extension que j'ai utilisée
