Fail2Ban 配置官方建议

编程教程 > Linux > Linux Security (2) 2025-04-24 20:33:29

前言

如果不手动配置,Fail2ban将从/etc/Fail2ban目录加载配置文件。您可以在那里找到许多名为*.conf的文件。
在首次启动fail2ban服务之前,您应该进行一些适合您系统的配置。至少应该为你想用fail2ban保护的服务启用Fail2Ban。
 

如何自定义配置

[提问]:我应该直接在jail.conf和fail2ban.conf中进行配置吗?

[回答]:不建议!!!您应该避免更改fail2ban安装时创建的.conf文件。您应该创建扩展名为.local的新配置文件

由于这些库存文件可能会被软件包升级覆盖,或者因为您的更改可能与某些未来版本不兼容,您不应该在原地编辑它。

因此,要设置jail配置,不要更改jail.conf。要自定义某些过滤器配置,不要修改filter.conf。相反,请创建一个扩展名为.local的新文件,并仅插入要覆盖的设置或要附加到默认配置的设置。例如,jail.local中定义的任何值都将覆盖jail.conf中相同部分中的值(例如[DEFAULT])。

例如,如果原始.conf文件包含:

[DEFAULT]
logpath = /path/to/log

[section1]
logpath = /other/path
enabled = true

[section2]
enabled = true
 

您自己将创建一个.local文件,其中包含:

[DEFAULT]
logpath = /my-path/to/log
运行环境取值情况:
  • 参数logpath 值为: /other/path.
  • 参数logpath 值为:/my-path/to/log 

The value of parameter logpath in section1 will be still /other/path.
But value of parameter logpath in section2 will be changed to /my-path/to/log (because it was not specified in the section itself, so the new default value will be used).

如何配置保护某个服务

[提问] 要让 fail2ban 保护某个服务,需要什么样的配置?

[回答] 您应当创建一个 jail.local 文件,并至少启用相应的监禁(默认情况下所有监禁都是禁用的),或者覆盖您想要更改的默认设置,甚至创建您自己的监禁(和/或)过滤器(如果这些在 fail2ban 的默认配置中是不存在的)。

例如,如果您打算监控在 sshd 和 nginx 中发生的授权失败情况,但您的 nginx 实例的 error.log 被配置为 /var/log/my-nginx/error.log ,那么除了在 [nginx] 部分启用它之外,您还应相应地设置 logpath 参数。

因此,您的 jail.local 文件内容如下:

[nginx]
logpath = /var/log/my-nginx/error.log
enabled = true

[sshd]
enabled = true
 
如果您使用的是由您的发行版维护者提供的 fail2ban 的其他版本,您应该检查其他参数(这些参数通常在某些发行版配置文件中指定),例如
  • fail2ban 服务自身的几个路径参数(在 fail2ban.conf 或包含文件中指定):
[Definition]
logtarget = /var/log/fail2ban.log
socket =    /var/run/fail2ban/fail2ban.sock
pidfile =   /var/run/fail2ban/fail2ban.pid
dbfile =    /var/run/fail2ban/fail2ban.sqlite3
  • 其他jail参数(jail.conf包含),比如后端(例如systemd日志的使用预期的systemd后端)、动作响应。Banaction(例如,如果你的系统不支持iptables,你就不能使用它)、logpath等。

You can also control resp. configure another optional configurations parameters, like ignoreip, etc.

如何查看当前运行环境的配置

[提问] 如何查看fail2ban将要使用的当前(合并后的)配置

[回答] 可以使用以下命令转储当前配置(fail2ban在启动时加载的所有参数):

# dump parameters:
fail2ban-client -d
# verbose: output config files will be loaded and dump parameters:
fail2ban-client -vd
fail2ban-client -vvd
 

如何让修改后配置生效

 

[提问] fail2ban配置已更改,如何生效更改后的配置

[回答] 您应该执行fail2ban-client reload(在0.10之前的版本中使用fail2ban-client restart)。
 

 您还可以使用fail2ban-client  服务器通信协议在运行时单独获取和设置参数。例如:

fail2ban-client set pam-generic logencoding UTF-8
fail2ban-client set nginx findtime 10m
 

如何修改fail2ban中监视日志文件位置

 

[提问] 我应该如何正确地修改日志文件的位置,而不是在监狱设置或搞乱主.conf文件?

[回答] 要修改默认的日志文件位置,您应该创建一个.local文件paths-common.conf或paths-debian.conf(无论您在jail.local中使用哪个文件),并且只在.local文件中进行更改,这可以使其保持良好的jail设置结构,并避免在更新Fail2Ban时出现问题
 

创建.local文件
 

请不要复制:

  • cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • cp /etc/fail2ban/paths-common.conf /etc/fail2ban/paths-common.local

用您喜欢的编辑器创建和编辑它,而不是直接复制一份

 

现在,如果你想要一个Nginx过滤器来读取多个网站的所有Nginx访问日志 

  • 在文件jail.local中编辑内容:

    [nginx]
    logpath = /var/log/nginx/*access*.log
    enabled = true 
  • 或者不要在监狱里使用 | Or instead of using in your jail:
    在文件paths-common.local 或者 paths-debian.local (取决于那个文件你在使用)  里面添加nginx_access_log 配置,参考下方:

    [DEFAULT]
    nginx_access_log = /var/log/nginx/*access*.log
    Then in your jail you would rather use
    logpath = %(nginx_access_log)s 

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
If not configured manually, Fail2ban will load configuration files from the dire
备份备份现有配置和数据库以便回滚备份配置sudo mkdir -p /opt/fail2ban-baksudo cp -R /etc/fail2ban /opt
前言通过上一篇Fail2Ban安装和使用保护SSH免受暴力攻击-XQLEE'Blog安装和基本使用已经能满足Linux服务器对于ssh服务的防护工作了。这里接着
环境说明ubuntu系统Fail2ban 是一种多功能的安全工具。虽然它主要用于防止针对 SSH 的暴力攻击,但它也可用于保护其他服务。安装Fail2Ban软件
错误描述pve8或ubuntu fail2ban 无法启动 Have not found any log file for sshd jail导致原因没有找到s
ddos攻击属于网络攻击的常见模式之一。这里写一个能简单防御的脚本ddos-deflate脚本的安装和卸载
1.安装ufw防火墙sudo apt-get install ufw提示:除开精简版一般云提供商LTS版本(18/22LTS)都是默认安装的。 2.查看防火墙启
一、规则分类1.进入本机,即访问本机规则2.出本机,即本机访问外面规则3.转发,即本地转发规则,如端口7001转发到80 二、使用1.允许来自IP 10.1.1
Linux(centos)系统远程(SSH)登录输入错误密码多次锁定账号时间PAM实现方式
Nginx 限流组件limit_req limit_req作用: 限制用户(同一个ip)在给定时间内HTTP请求的数量, 流量限制主要用作安全目的, 可以防止大量请求的...