Direkt zum Inhalt
MP-Development Code, Bikes and more

Joomla OSpam-a-not und fail2ban

Gespeichert von Michael am
fail2ban und joomla logos

Eine Erweiterung für Joomla um gegen Spam vorzugehen ist OSpam-a-not von Joomlashack. Ich gehe jetzt nicht weiter darauf ein wie dieses Plugin genau funktioniert, wichtig ist nur, dass ihr in seinen Einstellungen das logging aktiviert, solltet ihr es mit fail2ban kombinieren wollen. Das Plugin generiert die Datei spamanot.log.php im logs Ordner eurer Joomla Installation. Allerdings erst, wenn das erste mal ein Spammer auffällt. Entweder wartet ihr bis die Datei angelegt wurde, oder ihr legt sie manuell an.

fail2ban

filter

In fail2ban müssen wir dann einen Filter erzeugen, der die Log-Einträge per regex parsed, damit wir die IP bekommen die zu sperren ist.

Dafür legen wir unter /etc/fail2ban/filter.d die Datei ospamanot.conf an

 

[Definition]
failregex = .+NOTICE <HOST>.+honeypot.+

 

Den Filter können wir mit fail2ban-regex und der Log-Datei testen

 

# fail2ban-regex /PATH/TO/ospamanot.log.php /etc/fail2ban/filter.d/ospamanot.conf 
Running tests
=============
Use   failregex filter file : ospamanot, basedir: /etc/fail2ban
Use         log file : /PATH/TO/ospamanot.log.php
Use         encoding : UTF-8
Results
=======
Failregex: 295 total
|-  #) [# of hits] regular expression
|   1) [295] .+NOTICE <HOST>.+honeypot.+
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
|  [295] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T|  ?)24hour:Minute:Second(?:[.,]Microseconds)?(?:\s*Zone offset)?
`-
Lines: 295 lines, 0 ignored, 295 matched, 0 missed
[processed in 0.01 sec]

 

jail

Jetzt brachen wir noch ein Jail in /etc/fail2ban/jail.d/ dafür, diese Datei benennen wir ebenfalls wieder oaspamanot.conf

 

# Servicename
[ospamanot]
enabled = true
# was soll gesperrt werden
port = https,http
# Name des Filters
filter = ospamanot
logpath = /PATH/TO/ospamanot.log.php
# wie oft soll die IP gelistet sein bevor ban
maxretry = 3
findtime = 600
# für 10 Minuten bannen
bantime = 600

 

aktivieren und prüfen

Jetzt müssen wir nur noch fail2ban neu starten und prüfen ob die Neue Jail funktioniert

 

# service fail2ban restart
# fail2ban-client status ospamanot
Status for the jail: ospamanot
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- File list:	/PATH/TO/ospamanot.log.php
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:

 

Mit dieser einfachen Lösung sperren wir Formular Spammer erstmal für 10 Minuten komplett aus. Wer es länger möchte muss einfach den Wert in Jail dafür dementsprechen anpassen

Neuen Kommentar hinzufügen

CAPTCHA
Diese Sicherheitsfrage überprüft, ob Sie ein menschlicher Besucher sind und verhindert automatisches Spamming.