Fail2ban
fail2ban - 特定於虛擬主機
是否可以設置 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>
- 編輯您的 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