Aktionen

Fail2Ban mit ISPConfig und open basedir restriction in effect

Aus znilwiki

Changelog:

  • 15.03.2026 erste Version

Vorwort

Ich betreibe schon seit Jahren Webserver mit diversen Webseiten. Basis ist bei mir immer Ubuntu-Server, schon länger setze ich dabei ISPConfig als Verwaltungssoftware ein.
Über diese kann ich bequem die Subdomäne anlegen. ISPConfig sorgt dann dafür das die Webseiten immer unter einem jeweils eigenen Benutzer laufen, mit der gewählten PHP-Version oder auch ganz ohne.

Gerade diese Seite hier wird dabei regelmäßig nach Sicherheitslücken aller Art abgesucht.
ISPConfig führt die Logs pro Webseite, diese finden sich unter

/var/www/znil.net/log/access.log
/var/www/znil.net/log/error.log

bzw. die echten Pfade

/var/www/clients/client*/web*/log/access.log
/var/www/clients/client*/web*/log/error.log


Gerade im error.log find ich ständig Versuche irgendwelche Shell/Bash Befehle auszuführen:

[Sun Mar 15 09:35:37.043222 2026] [fcgid:warn] [pid 368061] [client 85.208.96.195:64110] mod_fcgid: stderr: PHP Warning:  file_exists(): open_basedir restriction in effect.
File(/bin/bash) is not within the allowed path(s):(/var/www/clients/client0/web1/web:/var/www/clients/client0/web1/private:/var/www/clients/client0/web1/tmp ...

Ich habe beschlossen, die Quelladressen solcher Versuche für 2h zu sperren.
Nachfolgend ist die Lösung dafür.


Voraussetzungen

Voraussetzung ist für dieses Beispiel, ein Webserver mit Apache2 und installierten Fail2Ban.
Ich habe vor Begin der nachfolgenden Befehle per

sudo -i

dauerhaft zum root gewechselt!


Filter erstellen

nano /etc/fail2ban/filter.d/apache-basedir.conf

Inhalt:

[Definition]
# Erläuterung der Regex:
# ^          = Zeilenanfang
# .* = Beliebige Zeichen (Datum/PID)
# \[client <ADDR>(:\d+)?\] = Sucht nach [client IP] oder [client IP:Port]
# .* = Beliebige Zeichen dazwischen
# open_basedir restriction in effect = Der Zieltext
failregex = ^.*\[client <ADDR>(:\d+)?\].*open_basedir restriction in effect.*$

ignoreregex =