fail2ban – 虚拟主机特定

fail2ban – 虚拟主机特定

是否可以设置 fail2ban 以仅禁止某些虚拟主机的 IP 地址?例如,我有一个过滤器,可以检测在网站结构内运行 *.php 文件的各种尝试。我想禁止它。我在服务器上有多个网站。

答案1

不会。Fail2ban 禁止防火墙上的 IP 地址。虚拟主机在协议栈的 HTTP/SSL 级别上定义,而 Linux 防火墙仅在 IP/TCP 级别上工作。

因此,防火墙对虚拟主机一无所知,也不知道是否允许流量。

答案2

您可以在 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>

2)编辑您的Fail2ban jail.local设置:

按照您的喜好配置 Fail2ban。以下是一些很好的例子:https://www.digitalocean.com/community/tutorials/how-to-protect-an-apache-server-with-fail2ban-on-ubuntu-14-04

对于上面的 Virtualhost 示例,jail.local 中的日志路径应如下所示:

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

相关内容