Fail2Ban是一个非常有效的安全工具,基于Python编写用于监视系统日志文件并防止恶意攻击者通过暴力破解等方式登录到你的服务器或者应用程序上。它不是禁用密码身份验证或更改服务器的SSH端口的替代品。
本文将介绍如何安装Fail2Ban和一些初始配置。 Fail2Ban将扫描日志文件并禁止恶意IP地址。 然后,Fail2Ban可以用于自动更新服务器上的防火墙规则以解释这些IP地址。 在系统上运行的多个服务有过滤选项,包括SSH服务器,HTTP服务器,FTP服务器,邮件服务器等。
安装 :
CentOS 7
第1步: 首先,更新系统并安装EPEL存储库。
yum update
yum install epel-release
第2步: 接下来,安装Fail2Ban。
yum install fail2ban
第3步: 最后,启动,然后启用Fail2Ban。
systemctl start fail2ban
systemctl enable fail2ban
Ubuntu / Debian
第1步: 首先,更新系统。
apt-get update
apt-get upgrade -y
第2步: 接下来,安装Fail2ban。
apt-get install fail2ban
(仅限Ubuntu)
第3步: 最后,您将需要允许通过UFW进行SSH访问。 然后启用防火墙:
ufw allow ssh
ufw enable
Fedora
第1步: 首先,更新系统。
dnf update
第2步: 接下来,安装Fail2ban。
dnf install fail2ban
第3步: 最后,启动,然后启用Fail2Ban。
systemctl start fail2ban
systemctl enable fail2ban
创建.local文件:
第1步: 创建一个名为fail2ban.local的fail2ban.conf副本。
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
现在,您已复制了Fail2ban的默认配置配置文件。 Fail2Ban将使用fail2ban.local中的设置,而不是fail2ban.conf中的设置,并且fail2ban.conf应该保持不变。
第2步: 创建一个命名监狱的jail.conf副本。 当地的。
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
同样,Fail2Ban将使用Jail中的设置。 本地在监狱中的设置。 CONF和监狱。 Conf应该保持不变。
配置.local文件设置
fail2ban.local: 在fail2ban.local中,您可以选择重新定义以下值:
- 日志级别
- 值可以是:
- 危急
- 错误
- 警告
- 信息
- 调试
- 不推荐调试 – 它可能导致Fail2Ban落入无限循环,不断使用非信息线送入。
- 值可以是:
- 对数目标
- 值可以是文件,SYSLOG,STDERR或STDOUT。
- 只能指定一个日志目标。
- 默认值= /var/log/fail2ban.log
- 插座
- 这用于与fail2ban守护程序进行通信。 删除此文件将使无法与fail2ban服务器进行通信。
- 值可以是文件。
- 默认值= /var/run/fail2ban/fail2ban.sock
- pid文件
- 这用于存储fail2ban服务器的进程ID。
- 默认值= /var/run/fail2ban/fail2ban.pid
- 数据库文件
- 这用于存储fail2ban持久数据。
- 值可以是文件或”:内存”。
- 默认值= /var/lib/fail2ban/fail2ban.sqlite3
- :memory:将导致数据库存储在内存中,因此当fail2ban停止时,数据将丢失。
- durge
- 这确定了从数据库清除禁令的年龄。
- 默认值= 1d(24小时)
- syslogsocket(*仅在日志目标是syslog时使用)
- 值可以是”自动”或文件。
- 自动使用平台。 系统()以确定预定义路径
监狱。 当地的: 在监狱里。 本地定义 [默认] 将为每个监狱定义该选项。 在每个监狱中重新定义这些选项(即 [sshd])将覆盖下的定义 [默认].
这意味着 [apache-auth] 监狱可以使用 [默认] 禁令时间, 找时间和 最大尝试,而每一个都可以在 [sshd] 监狱。
*重要的提示: 默认情况下, 已启用 [DEFAULT]下的选项设置为false。 这意味着默认情况下所有监狱都被禁用。 应该通过定义 已启用 特定监狱中的选项:
enabled = true