Fail2ban

fail2ban - 特定於虛擬主機

  • May 27, 2016

是否可以設置 fail2ban 僅禁止某些虛擬主機的 IP 地址?例如,我有一個過濾器,可以檢測在網站結構中執行 *.php 文件的各種嘗試。我想禁止。我在伺服器上有多個網站。

不可以。Fail2ban 在防火牆上禁止 IP 地址。虛擬主機是在協議棧的 HTTP/SSL 級別定義的,而 Linux 防火牆只在 IP/TCP 級別起作用。

因此,防火牆對虛擬主機一無所知,也不知道是否允許流量。

您可以在 apache 虛擬主機定義中分離您的日誌文件。然後你可以告訴 fail2ban 只考慮這些特定的日誌文件:

例如

1)編輯apache2虛擬主機定義日誌路徑:

<VirtualHost *:80>
 ServerName www.foo.com

 # if you want this vhost to listen to extra names, uncomment the next line
 # ServerAlias foo.com www.bar.com bar.com

 DocumentRoot /var/www/www.foo.com/htdocs

 CustomLog /var/log/apache/www.foo.com-access.log combined
 ErrorLog /var/log/apache/www.foo.com-error.log
</VirtualHost>
  1. 編輯您的 Fail2ban jail.local 設置:

隨意配置Fail2ban。這裡有一些很好的例子:https ://www.digitalocean.com/community/tutorials/how-to-protect-an-apache-server-with-fail2ban-on-ubuntu-14-04

對於 jail.local 中日誌路徑上方的範例虛擬主機應該如下所示:

logpath  = /var/log/apache/www.foo.com-*.log

引用自:https://serverfault.com/questions/778671