Fail2ban 是一个用于防止恶意登录尝试的安全工具,它可以监控系统日志文件,检测到恶意行为后,暂时封锁相关的IP地址。
#加载源
yum -y install epel-release
#安装fial2ban
yum -y install fail2ban
#启动fail2ban
systemctl start fail2ban
以下是 Fail2ban 的基本配置文件说明:
/etc/fail2ban/jail.conf
或 /etc/fail2ban/jail.local
:
这是 Fail2ban 的主要配置文件之一,jail.local
通常用于用户定义的自定义配置。如果在 jail.local
中定义了与 jail.conf
中相同的规则,将会覆盖 jail.conf
中的配置。
在这个文件中,你可以配置 jails,也就是定义监视和响应规则的地方。每个 jail 代表一个特定的监视规则。
例如,你可以定义针对SSH登录尝试的监视规则、针对HTTP请求的监视规则等。
需要注意的是,配置规则时需要谨慎,避免封锁了合法用户。
/etc/fail2ban/action.d/
:
这个目录包含了 Fail2ban 可用的动作(actions)。动作定义了在检测到恶意行为时应该执行的操作,比如封锁IP地址、发送邮件通知等。
例如,iptables
是一个常用的动作,用于在防火墙中添加规则以阻止恶意IP。
/etc/fail2ban/filter.d/
:
这个目录包含了 Fail2ban 可用的过滤器(filters)。过滤器用于定义如何在日志中匹配恶意行为。
比如,针对 SSH 登录失败的过滤器会匹配相关日志中的错误消息,从而确定是否有恶意登录尝试。
/etc/fail2ban/jail.d/
:
这个目录包含了 Fail2ban 针对特定 jails 的自定义配置。
你可以在这里创建单独的配置文件以覆盖默认的 jails 配置。
/etc/fail2ban/fail2ban.conf
:
/etc/fail2ban/fail2ban.local
:
fail2ban.conf
中相同的选项,将会覆盖 fail2ban.conf
中的配置。以上是 Fail2ban 的主要配置文件和目录,它们用于配置监视规则、动作、过滤器等,以保护系统免受恶意登录尝试的攻击。在进行配置时,请务必小心谨慎,以避免误封锁合法用户或导致其他问题。
Fail2ban 的配置规则是在 jail.local
或 jail.conf
文件中定义的。这些规则用于监视日志文件并触发相应的动作以响应恶意行为。
Fail2ban 读取配置文件的顺序如下,.local 会覆盖 .conf:
以下是一个基本的 Fail2ban 配置规则示例,用于防止 SSH 恶意登录尝试:
打开 jail.local
文件:
#复制自定义配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
添加一个新的 jail 规则:
在文件中添加以下内容:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
[sshd]
是一个自定义的标识符,它定义了这个 jail 的名称。enabled = true
表示启用这个 jail 规则。port = ssh
指定了监视的端口,这里是 SSH 的默认端口。filter = sshd
指定了使用的过滤器,即 sshd.conf
中定义的过滤器。logpath = /var/log/auth.log
指定了监视的日志文件路径。maxretry = 3
表示在一定时间内,如果有3次登录失败尝试,则触发动作。bantime = 3600
表示封锁时间,单位为秒,这里是1小时。保存并关闭文件:
保存文件并退出编辑器。
重新加载 Fail2ban 服务:
sudo systemctl restart fail2ban
这会重新加载配置,使新的规则生效。
查看防护状态
sudo systemctl fail2ban-client status sshd
这个配置示例针对SSH的恶意登录尝试,当在一小时内有3次登录失败时,将封锁相关IP地址。你可以根据需要修改maxretry
和bantime
参数,以及添加其他的 jail 规则来适应不同的场景。
请注意,在进行配置时要小心谨慎,避免误封锁合法用户或导致其他问题。