• Debian 11 is approaching its end-of-life (vendor EOL date - August 31, 2026). Plesk Obsidian 18.0.80 will be the last release to support it.
    If you are running Plesk Obsidian on Debian 11, we recommend you upgrade those servers to Debian 12 using our dist-upgrade tool.
  • We plan to deprecate and remove the support for XML RPC protocol versions earlier than 1.6.9.1 in Plesk Obsidian 18.0.82. We strongly recommend that you update all existing integrations using earlier versions of the XML RPC protocol to comply with the version 1.6.9.1 specification.

Resolved Can't configure Fail2ban for Nginx Auth

Miguel Nunes

New Pleskian
I have a website which uses the authentication provided by the protected directory setting and I am using Nginx fully. There are no fail2ban jails for Nginx so I decided to create one.

This is what I did:

Created a Jail Filter named "nginx-auth":
Code:
[Definition]
failregex = no user/password was provided for basic authentication.*client: <HOST>
    user .* was not found in.*client: <HOST>
    user .* password mismatch.*client: <HOST>
ignoreregex = </host></host></host>

Then created the Jail and named it "nginx-auth":

Code:
[nginx-auth]
enabled = true
filter = nginx-auth
action = iptables-multiport[name="nginxauth", port="http,https", protocol="tcp"]
logpath = /var/www/vhosts/system/*/logs/error_log
/var/log/httpd/*error_log
maxretry = 3

I am looking for errors in the log with

Code:
# tail -f /var/www/vhosts/system/site.domain.tld/logs/error_log

But when the browser authentication pops up and I enter wrong login information, nothing happens. After 3 failed attempts, it's still going.

What could be wrong? I am not using Plesk's Firewall extension because my host has it's own firewall but Iptables is enabled.
 
It was the log path which was set to look for Apache's error logs instead of Nginx's.

Should be this:

Code:
/var/www/vhosts/system/*/logs/proxy_error_log
/var/log/nginx/*error.log
 
Back
Top