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 # 启动fail2bansudo 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可以执行的操作的完整概述