怎么使用 Fail2Ban 阻止 IP 地址
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
- 点赞
- 收藏
- 关注作者
评论(0)