ubuntu系统
Fail2ban 是一种多功能的安全工具。虽然它主要用于防止针对 SSH 的暴力攻击,但它也可用于保护其他服务。
在安装EPEL之前,请确保您的Ubuntu版本支持EPEL。EPEL目前支持以下Ubuntu版本:
sudo apt-get install epel-release
sudo apt-get install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
添加完EPEL仓库后,更新软件包索引以获取新的软件包列表:
sudo apt-get update
sudo apt install fail2ban -y
提示:使用apt包在线安装的fail2ban会默认开启sshd的监禁配置,具体参考下图
sudo systemctl start fail2ban.service
sudo systemctl status fail2ban.service
sudo systemctl stop fail2ban.service
sudo systemctl enable fail2ban.service
1、安装 Fail2ban
sudo apt-get install fail2ban
2、Debian 12 及以上的版本需要手动安装 rsyslog
sudo apt-get install rsyslog
3、启动 Fail2ban 服务
sudo systemctl start fail2ban
4、开机自启动
sudo systemctl enable fail2ban
5、查看 Fail2ban 服务状态。
sudo systemctl status fail2ban
# 安装sqlite3
yum install -y sqlite
# 安装依赖
yum install -y python2 python3
# 下载Fail2ban源码
wget -c https://github.com/fail2ban/fail2ban/archive/refs/tags/1.0.2.tar.gz
# 解压Fail2ban
tar xvf 1.0.2.tar.gz
# 进入解压后的Fail2ban目录
cd fail2ban-1.0.2
# 安装Fail2ban
python3 setup.py install --record fail2ban_install.log
# 如果是1.0以下低版本,请使用python2安装
python2 setup.py install --record fail2ban_install.log
#复制fail2ban服务脚本
cp /root/fail2ban-1.0.2/files/redhat-initd /etc/init.d/fail2ban
#设置fail2ban服务为自启动服务
systemctl enable fail2ban
#启动fail2ban服务
systemctl start fail2ban
# 卸载Fail2ban
cat fail2ban_install.log | xargs rm -rf
如果你遇到错误 no directory /var/run/fail2ban to contain the socket file /var/run/fail2ban/fail2ban.sock
,
请手动创建下面目录:
mkdir /var/run/fail2ban
切换到目录 /etc/fail2ban/jail.d/
创建或编辑文件defaults-debian.conf
cd /etc/fail2ban/jail.d/
sudo vi defaults-debian.conf
提示:新版已经默认多句话了,参考上方安装部分
修改为:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 10m
解读:
上面配置组合意思就是 同一个ip过来登录ssh,在10分钟内错误5次封锁10分钟
设定好配置后重启fail2ban服务
sudo systemctl restart fail2ban.service
首先登录到另一台Linux服务器,运行以下命令模拟登录失败,确保将192.168.1.110替换为你自己安装fail2ban服务的服务器的IP地址。
for i in {1..6}; do ssh [email protected]; done
登录尝试失败后,去安装了Fail2Ban软件服务器检查Fail2ban日志以查看IP地址是否已被禁止,命令如下:
通过日志查看
sudo tail -f /var/log/fail2ban.log
通过禁用服务查看IP
sudo fail2ban-client status sshd
手动解除锁定
sudo fail2ban-client set sshd unbanip 192.168.1.111
通过xshell 访问指定服务器,然后错误5次得到下面响应
查看某个服务下封锁ip情况
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 114.114.114.114
https://blog.xqlee.com/article/2312121940053698.html