摘要
帮你速读文章内容
Fail2ban是一个用于防止恶意登录的安全工具,通过监控日志文件,检测到恶意行为后封锁相关IP。其配置文件包括基本配置文件、动作、过滤器和针对特定jails的自定义配置。配置规则时,需定义监视规则、端口、过滤器、日志文件路径、最大重试次数和封锁时间等。配置后需重新加载Fail2ban服务以使规则生效。
摘要由作者通过智能技术生成
有用

Fail2ban 是一个用于防止恶意登录尝试的安全工具,它可以监控系统日志文件,检测到恶意行为后,暂时封锁相关的IP地址。

安装

#加载源
yum -y install epel-release
#安装fial2ban
yum -y install fail2ban
#启动fail2ban
systemctl start fail2ban

一、 配置文件

以下是 Fail2ban 的基本配置文件说明:

  1. /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:

    • 这是 Fail2ban 的主要配置文件,包含了全局配置选项,如 loglevel、socket、pidfile 等。
  • /etc/fail2ban/fail2ban.local:

    • 这是一个用于用户自定义配置的文件。如果在此文件中定义了与 fail2ban.conf 中相同的选项,将会覆盖 fail2ban.conf 中的配置。

    以上是 Fail2ban 的主要配置文件和目录,它们用于配置监视规则、动作、过滤器等,以保护系统免受恶意登录尝试的攻击。在进行配置时,请务必小心谨慎,以避免误封锁合法用户或导致其他问题。

    二、 配置规则

    Fail2ban 的配置规则是在 jail.localjail.conf 文件中定义的。这些规则用于监视日志文件并触发相应的动作以响应恶意行为。

    Fail2ban 读取配置文件的顺序如下,.local 会覆盖 .conf:

    • /etc/fail2ban/jail.conf
    • /etc/fail2ban/jail.d/*.conf
    • /etc/fail2ban/jail.local
    • /etc/fail2ban/jail.d/*.local

    以下是一个基本的 Fail2ban 配置规则示例,用于防止 SSH 恶意登录尝试:

    1. 打开 jail.local 文件

      #复制自定义配置文件
      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

      sudo vim /etc/fail2ban/jail.local
    2. 添加一个新的 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地址。你可以根据需要修改maxretrybantime参数,以及添加其他的 jail 规则来适应不同的场景。

    请注意,在进行配置时要小心谨慎,避免误封锁合法用户或导致其他问题。

    举报/反馈

    行走的IDH

    8获赞 11粉丝
    人生苦短,我用python!
    关注
    0
    0
    收藏
    分享