2022年9月25日星期日

Debian或Ubuntu系统如何使用 fail2ban 防止恶意破解

fail2ban 可以有效的防止 ssh 暴力密码破解攻击. 对于公网中开放ssh端口的服务器安全至关重要.

以下教程为最小可用方式, 也是最实用的方式, 即在使用 ssh 账户和密码登录的情况下, 防止ssh暴力破解.

Ubuntu/Debian 安装:

首先更新和升级服务器,

sudo apt-get update
sudo apt-get upgrade

安装fail2ban:

sudo apt install -y fail2ban

使用以下命令启动并启用该服务:

sudo systemctl start fail2ban                # 启动fail2ban
sudo systemctl status fail2ban              # 查看fail2ban 是否正常启动 
sudo systemctl enable fail2ban             # 允许fail2ban 开机启动
sudo systemctl enable fail2ban             # 允许fail2ban 开机启动
sudo service fail2ban stop                    # fail2ban 停止
sudo service fail2ban restart                 # fail2ban 重启

配置jail.local 文件:

创建一个新配置文件jail.local,它将覆盖jail.conf中的任何同类设置.
同时将监视/var/log/auth.log,

使用以下命令创建配置文件, 

sudo vim /etc/fail2ban/jail.local 

在此新文件中,粘贴以下内容:

[sshd]               
enabled = true # 启用规则
port = 22 # 将SSH端口设置为22
filter = sshd # 使用fail2ban sshd过滤器,
logpath = /var/log/auth.log # 记录 log 在这个文件里
maxretry = 10 # 将最大重试次数设置为10, 超过就 ban 它的 ip

重新启动fail2ban:

sudo systemctl restart fail2ban

通过命令 sudo systemctl status fail2ban 查看服务运行状态: 如下反馈表示正常运行

root@ubuntu:~# sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-25 09:03:35 UTC; 10s ago
Docs: man:fail2ban(1)
Main PID: 8733 (fail2ban-server)
Tasks: 3 (limit: 9429)
Memory: 10.2M
CPU: 80ms
CGroup: /system.slice/fail2ban.service
└─8733 /usr/bin/python3 /usr/bin/fail2ban-server -xf start


使用命令 sudo vim /etc/fail2ban/jail.local 修改配置文件并检查是否设置正确.

全部设置完毕
如果有机器试图通过SSH登录您的Ubuntu服务器,并且失败了三次,那么将通过iptables阻止其IP地址阻止它们进入。

取消禁止的IP:

可以使用以下命令取消已被自动禁止的IP地址:

sudo fail2ban-client set sshd unbanip IP_ADDRESS    
# IP_ADDRESS是已被禁止的IP地址

更多:

要了解更多信息, 可输入以下命令

man fail2ban
# 提供了fail2ban可以执行的操作的完整概述