Pages : 1
#1 Le 30/11/2019, à 22:31
- Taormina
{Résolu} Fail2ban filtre subsonic
Résolu - SOLUTION pour écrire le filtre /etc/fail2ban/filter.d/subsonic.conf:
[Definition] failregex = ^.*INFO LoginFailureLogger.*from \[<HOST>\]$
Bonsoir,
Je souhaiterais obtenir de l'aide pour configurer un filtre fail2ban en surveillant mon log situé à l'emplacement: /var/subsonic/subsonic.log
J'accède à subsonic par l'adresse https://mondomaine.com:4443 (je n'arrive pas à comprendre la mise en place du reverse proxy pour subsonic, mais c'est un autre problème je pense.)
j'ai volontairement fait une connexion erronée depuis mon téléphone portable en 4G, je trouve la ligne suivante dans mon log:
[2019-11-30 22:27:49,900] INFO LoginFailureLogger - Login failed for [Gargantua] from [**.***.***.*]
(**.***.***.*--> ip de mon téléphone en 4G)
J'ai créé dans mon /etc/fail2ban/jail.local la section suivante:
[subsonic]
enabled = true
filter = subsonic
logpath = /var/subsonic/subsonic.log
J’ai créé le fichier /etc/fail2ban/filter.d/subsonic.conf contenant:
# fail2ban filter configuration for subsonic
[Definition]
failregex = .* INFO LoginFailureLogger * from <HOST>
ignoreregex =
Lorsque je teste le filtre avec la commande:
fail2ban-regex /var/subsonic/subsonic.log /etc/fail2ban/filter.d/subsonic.conf
celle-ci me retourne:
Running tests
=============
Use failregex filter file : subsonic, basedir: /etc/fail2ban
Use log file : /var/subsonic/subsonic.log
Use encoding : UTF-8
Results
=======
Failregex: 0 total
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [1200] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T| ?)24hour:Minute:Second(?:[.,]Microseconds)?(?:\s*Zone offset)?
`-
Lines: 1429 lines, 0 ignored, 0 matched, 1429 missed
[processed in 0.19 sec]
Missed line(s): too many to print. Use --print-all-missed to print all 1429 lines
Je pense que c'est dans la rédaction de la règle du le filtre /etc/fail2ban/filter.d/subsonic.conf que j'ai besoin d'aide. Comment me suggéreriez-vous de rédiger cette règle ?
Les autres modifications apportées par rapport au /etc/fail2ban/jail.conf original sont:
ignorself = true
ignoreip = 127.0.0.1/8 ::1
bantime = -1
maxretry = 2
action = %(action_mwl)s
[apache-auth]
enabled=true
[apache-badbots]
enabled=true
[apache-noscript]
enabled = true
[apache-overflows]
enabled = true
[apache-nohome]
enabled = true
[apache-botsearch]
enabled = true
[apache-fakegooglebot]
enabled = true
[apache-modsecurity]
enabled = true
[apache-shellshock]
enabled = true
Ubuntu version: Ubuntu 18.04.3 LTS
Fail2ban installé depuis le dépôt ubuntu (version 0.10.2)
Merci
T.
Dernière modification par Taormina (Le 01/12/2019, à 18:29)
Hors ligne
#2 Le 30/11/2019, à 23:42
- metalux
Re : {Résolu} Fail2ban filtre subsonic
Bonsoir,
Ne te manquerait-t-il pas un point devant le deuxième astérisque?
failregex = .* INFO LoginFailureLogger .* from <HOST>
au lieu de:
failregex = .* INFO LoginFailureLogger * from <HOST>
Hors ligne
#3 Le 30/11/2019, à 23:53
- Taormina
Re : {Résolu} Fail2ban filtre subsonic
Merci pour la suggestion, cependant le résultat ne varie pas (j'ai retenté de nouvelles fausses connexions au cas-où, d'où le passage de 1429 lines à 1432 lines):
Lines: 1432 lines, 0 ignored, 0 matched, 1432 missed
fail2ban-regex /var/subsonic/subsonic.log /etc/fail2ban/filter.d/subsonic.conf
Running tests
=============
Use failregex filter file : subsonic, basedir: /etc/fail2ban
Use log file : /var/subsonic/subsonic.log
Use encoding : UTF-8
Results
=======
Failregex: 0 total
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [1203] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T| ?)24hour:Minute:Second(?:[.,]Microseconds)?(?:\s*Zone offset)?
`-
Lines: 1432 lines, 0 ignored, 0 matched, 1432 missed
[processed in 0.20 sec]
Missed line(s): too many to print. Use --print-all-missed to print all 1432 lines
Hors ligne
#4 Le 01/12/2019, à 09:05
- bruno
Re : {Résolu} Fail2ban filtre subsonic
Bonjour,
Cela ne peut pas fonctionner ainsi :
- fail2ban utilise des motifs prédéfinis comme <HOST> qu'il faut d'abord définir (INCLUDES) ;
- ton expression régulière ne correspond pas à la ligne de log (manque les crochets pour l'hôte/adresse IP)
[INCLUDES]
before = common.conf
[Definition]
failregex = ^.*INFO LoginFailureLogger.*from \[<HOST>\]$
Dernière modification par bruno (Le 01/12/2019, à 17:15)
#5 Le 01/12/2019, à 15:39
- Taormina
Re : {Résolu} Fail2ban filtre subsonic
Super, merci beaucoup Bruno, ta solution marche parfaitement
Hors ligne
#6 Le 01/12/2019, à 16:01
- metalux
Re : {Résolu} Fail2ban filtre subsonic
Bonjour,
J'en profites pour demander des précisions:
J'ai certains filtres fail2ban n'ont pas les crochets ni de section [INCLUDES] mais fonctionnent quand même, est-ce que ça vient de la version de F2B?
fail2ban-client version
0.9.6
Hors ligne
#7 Le 01/12/2019, à 16:52
- bruno
Re : {Résolu} Fail2ban filtre subsonic
Les crochets étaient dans les logs.
La section [INCLUDES] était déjà présente dans ta version mais elle n'est nécessaire que si le filtre utilise des variables définies dans d'autres fichiers de configuration.
D'ailleurs, contrairement à ce que j'ai dit en #4, INCLUDES common.conf n'est pas nécessaire pour interpréter <HOST>. Ce type de motif est défini dans le code même de fail2ban, pas dans les fichiers de configuration.
La doc officielle : https://github.com/fail2ban/fail2ban/wiki
#8 Le 01/12/2019, à 17:52
- metalux
Re : {Résolu} Fail2ban filtre subsonic
@bruno
Effectivement les crochets étaient dans les logs, j'étais passé à côté hier soir et j'ai cru que c'était une caractéristique de notation de la version 0.10.2.
Pour [INCLUDES], c'est bien ce que je pensais mais je n'en étais pas sûr. Merci pour ton compléments d'info, ça complète ta réponse que j'avais interprété de travers.
Hors ligne
Pages : 1