怎么使用 Fail2Ban 阻止 IP 地址

举报
Tiamo_T 发表于 2022/03/09 16:36:15 2022/03/09
【摘要】 Fail2ban 扫描各种服务(SSH、FTP、SMTP、Apache 等)的日志文件,并禁止出现过多密码失败的 IP。它还会更新防火墙规则以拒绝这些 IP 地址。 Fail2ban 是一个用 Python 编程语言编写的入侵防御框架。 Fail2ban 的主要目的是防止暴力登录攻击。

Fail2ban 扫描各种服务(SSH、FTP、SMTP、Apache 等)的日志文件,并禁止出现过多密码失败的 IP。它还会更新防火墙规则以拒绝这些 IP 地址。

Fail2ban 是一个用 Python 编程语言编写的入侵防御框架。

Fail2ban 的主要目的是防止暴力登录攻击。

安装 Fail2ban

要从源代码安装 fail2ban,请从sourceforge官网下载它。

使用 apt-get 在基于 Debian 的系统上安装 Fail2ban,如下所示。

# apt-get install fail2ban

您也可以通过下载fail2ban deb 包手动安装 Fail2ban 。

# dpkg -i fail2ban_0.8.1-1_all.deb

如何配置fail2ban

所有 Fail2ban 配置文件都位于 /etc/fail2ban 目录下。

/etc/fail2ban/fail2ban.conf

该文件的主要目的是配置fail2ban 日志相关的指令。

  • Loglevel:设置日志级别输出。
  • logtarget :指定日志文件路径

Fail2ban 采取的行动记录在 /var/log/fail2ban.log 文件中。您可以将 conf 文件中的详细程度更改为以下之一:1 – ERROR、2 – WARN、3 – INFO 或 4 – DEBUG。

/etc/fail2ban/jail.conf

jail.conf 文件包含服务配置的声明。此配置文件分为不同的上下文。默认设置适用于所有部分。

jail.conf的以下默认部分表示,在600秒或10分钟内从单个IP地址(查找措施)之后尝试五次IP地址后,该地址将自动阻止600秒(Bantime)。

[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 5
findtime = 600
bantime = 600
  • IGNOREIP:这是一个空格分离的IP地址列表,无法通过FAIL2BAN阻止。
  • maxRetry:在after2ban阻止主机之前的最大登录尝试失败次数最大数量。
  • bantime:时间(秒),如果它是由捕获的fail2ban主机被阻塞(600秒= 10分钟)。

服务配置

默认情况下,某些服务将作为模板插入。以下是SSH服务部分的示例。

[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
action = iptables
  • 启用:启用Fail2Ban检查SSH服务
  • 端口:服务端口(中提到的/ etc / services文件)
  • 由服务所使用的过滤器的名称,以检测匹配:过滤器。此名称对应于“/etc/fail2ban/filter.d”文件名; 没有“的.conf”延伸。例如:“过滤器= sshd的”是指“/etc/fail2ban/filter.d/sshd.conf”。
  • 日志路径:日志文件,对失败的登录尝试的fail2ban检查。
  • 操作:该选项告诉的fail2ban采取一次过滤器匹配其行动。此名称对应于“/etc/fail2ban/action.d/”文件名没有“的.conf”延伸。例如:“动作的iptables =”是指/etc/fail2ban/action.d/iptables.conf”。

的fail2ban将监视失败的访问尝试的/var/log/auth.log文件,如果发现重复来自同一IP地址或主机失败的ssh登录尝试的fail2ban来自该IP地址/主机通过阻止它停止进一步的登录尝试的fail2ban iptables防火墙规则。

fail2ban过滤器

该目录/etc/fail2ban/filter.d包含用于检测闯入尝试,密码故障等,各种服务正则表达式。

例如:

  • sshd.conf - 的fail2ban SSH相关的过滤器
  • Apache的auth.conf - 的fail2ban Apache服务的过滤器

我们还可以添加自己的正则表达式查找不必要的动作。

fail2ban操作

directory /etc/fail2ban/action.d包含不同的脚本,定义了一旦过滤器匹配将执行的操作。每次服务仅允许一次过滤器,但可以在单独的行上指定多个操作。

例如:

  • iptables.conf - 块和解锁IP地址
  • mail.conf - 将邮件发送到已配置的用户

启动/停止的fail2ban服务

使配置更改后停止和启动的fail2ban守护程序,如下图所示。

# /etc/init.d/fail2ban stop

# /etc/init.d/fail2ban start
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。