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 23/03/2022, à 20:19

RidingAround

Fail2Ban : besoin d'une failregex pour Open Web Analytics [RESOLU]

Bonsoir à tous,

pour ce genre de lignes :

123.123.123.123 - - [23/Mar/2022:19:33:51 +0100] "POST /index.php?owa_do=base.loginForm&owa_site_id=& HTTP/1.1" 200 1449 "[url]https://siteinternet.fr/index.php?owa_do=base.loginForm&owa_site_id=&[/url]" "Mozilla/5.0 (X11; Ubuntu; Linux x>

J'aurais donc besoin d'une failregex. Ce sera ma première custom pour protéger un serveur de stats open source assez peu répandu, mais tout de même.

J'ai tenté ceci, sans succès :

failregex = <HOST> - - \[(\d{2})/\w{3}/\d{4}:\1:\1:\1 -\d{4}\] "POST /index.php?owa_do=base.loginForm&owa_site_id=& HTTP/1.1" 200

ou ceci

failregex = <HOST> - - \[\d{2}/\w{3}/\d{4}:\d{2}:\d{2}:\d{2} -\d{4}\] "POST /index.php?owa_do=base.loginForm&owa_site_id=& HTTP/1.1" 200

Pour information, je teste avec cette commande :

sudo fail2ban-regex /var/log/apache2/access.stats.log /etc/fail2ban/filter.d/owa.conf 

Sans résultat.

Ma jail est :

[owa]
enabled = true
filter = owa
logpath = /var/log/apache2/access.stats.log
port = 80,443

Et s'il existe une règle proche un peu connue, ce serait celle-ci :

file_preserved = wp-login\.php|xmlrpc\.php
failregex = ^<HOST> -.*(POST|GET) /%(file_preserved)s HTTP.*200.*

Avec cette jail :

[apache-wp]
enabled = true
port    = http,https
filter  = apache-wp
logpath = /var/log/apache2/access.*.log
maxretry = 3
findtime =  60
bantime = 120

Pour ce genre de lignes :

123.123.123.123 - - [23/Mar/2022:19:41:02 +0100] "POST /wp-login.php HTTP/1.1" 200 5880 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"


Merci à ceux qui pourront trouver la bonne formule.

Dernière modification par RidingAround (Le 24/03/2022, à 09:44)


RAID 5 luks 4x1To - SSD M2 120 - RX 480 - 4x4 DDR4 - Xeon
24 ans de Linux ! Ubuntu aux particuliers -> puis aux entreprises -> monter des serveurs -> sécuriser les entreprises -> des armoires -> des clusters -> des conteneurs ... que du bonheur :}

Hors ligne

#2 Le 24/03/2022, à 08:05

bruno

Re : Fail2Ban : besoin d'une failregex pour Open Web Analytics [RESOLU]

Bonjour,

Tu peux effectivement t'inspirer d'un filtre pour wordpress avec une regexp du type :

failregex = ^<HOST> -.*(POST|GET) .*/index\.php\?owa_do*

Cela devrait fonctionner avec ta ligne de logs, mais cela risque de bloquer toute tentative de connexion. Il vaudrait mieux baser le filtre sur une erreur dans les logs plutôt qu'une simple requête de connexion sur une page web (idem pour Wordpress).

Attention tout de même au faux sentiment de sécurité. fail2ban ne « protège » pas ton serveur de stats, au niveau sécurité cela diminue juste la probabilité de réussite d'une attaque par force brute sur un service accessible par des couples nom d'utilisateur /mot de passe faibles.

Dernière modification par bruno (Le 24/03/2022, à 09:28)

#3 Le 24/03/2022, à 09:10

RidingAround

Re : Fail2Ban : besoin d'une failregex pour Open Web Analytics [RESOLU]

Salut,
un grand merci pour ta contribution.
En effet, ce serveur bénéficie d'un protocole de déploiement assez sécurisé. SSH restreint et par clés - (ed_25519), iptables (ufw), unattended-upgrades, msmtp, zabbix.
Fail2Ban est la dernière étape. Qaund j'aurais réglé ce problème, j'implémenterai les durées de bannissement variables pour gêner les bots.

Alors je viens de tester ta règle, elle me bannit bien, en effet au bout de x tentatives. Toutefois, je suis aussi banni au logout. Tu penses que c'est juste l'histoire du code http 200 qui manquerait ?

Dernière modification par RidingAround (Le 24/03/2022, à 09:10)


RAID 5 luks 4x1To - SSD M2 120 - RX 480 - 4x4 DDR4 - Xeon
24 ans de Linux ! Ubuntu aux particuliers -> puis aux entreprises -> monter des serveurs -> sécuriser les entreprises -> des armoires -> des clusters -> des conteneurs ... que du bonheur :}

Hors ligne

#4 Le 24/03/2022, à 09:34

bruno

Re : Fail2Ban : besoin d'une failregex pour Open Web Analytics [RESOLU]

J'ai pris la partie la plus courte possible de l'URL qui était dans tes logs, mais il faut sûrement prendre quelque chose de plus spécifique, exemple :

failregex = ^<HOST> -.*(POST|GET) .*/index\.php\?owa_do=base\.loginForm

Il faudrait voir des lignes de logs après des tentatives de connexion échouées sur la page d'authentification d'Open Web analytics, pour savoir quel est le meilleur motif de filtrage.

#5 Le 24/03/2022, à 09:35

RidingAround

Re : Fail2Ban : besoin d'une failregex pour Open Web Analytics [RESOLU]

Yep  !

J'ai trouvé celle-ci qui fonctionne pour mon /etc/fail2ban/filter.d/owa.conf  :

[Definition]
failregex = ^<HOST> -.*(POST|GET) .*/index\.php\?owa_do=base.loginForm&owa_site_id=& HTTP/1.1" 200
ignoreregex =

Tu verras peut-être mieux que moi des conditions d'assouplissement à y placer.

Pour ceux qui veulent, j'ai une jail rédigée comme ceci :

[owa]
enabled = true
filter = owa
logpath = /var/log/apache2/access.stats.log
port = 80,443
ignoreip = 123.123.mon.ip
findtime = 1m
bantime = 1m
maxretry = 5
destemail = contact@moi.chezmoi
action = %(action_mwl)s
mta = mail

Il ne me reste donc plus qu'à ajouter la notion de random time avec ce genre de directives :

bantime.increment = true
bantime.rndtime = 30m
bantime.maxtime = 10d
bantime.factor = 2
bantime.formula = ban.Time * math.exp(float ban.Count+1)*banFactor)/math.exp(1*banFactor)
bantime.overalljails = true

Je vois qu'on écrivait en même temps !

Merci à toi, je le place en [RESOUDU] wink

Dernière modification par RidingAround (Le 24/03/2022, à 09:44)


RAID 5 luks 4x1To - SSD M2 120 - RX 480 - 4x4 DDR4 - Xeon
24 ans de Linux ! Ubuntu aux particuliers -> puis aux entreprises -> monter des serveurs -> sécuriser les entreprises -> des armoires -> des clusters -> des conteneurs ... que du bonheur :}

Hors ligne