Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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:

bruno a écrit :

[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 smile

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