Fail2Ban安装和使用保护SSH免受暴力攻击

编程教程 > Linux > Linux Security (924) 2025-04-25 11:01:38

环境说明

ubuntu系统

Fail2ban 是一种多功能的安全工具。虽然它主要用于防止针对 SSH 的暴力攻击,但它也可用于保护其他服务。

安装Fail2Ban软件

Ubuntu/Debian (apt包管理器安装方案)

安装 epel 源  (可选)

在安装EPEL之前,请确保您的Ubuntu版本支持EPEL。EPEL目前支持以下Ubuntu版本:

  • Ubuntu 18.04(Bionic Beaver)
  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 22.04(Jammy Jellyfish)
Ubuntu 18.04和20.04
sudo apt-get install epel-release
Ubuntu 22.04
sudo apt-get install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
更新软件包索引

添加完EPEL仓库后,更新软件包索引以获取新的软件包列表:

sudo apt-get update

安装fail2ban

sudo apt install fail2ban -y

提示:使用apt包在线安装的fail2ban会默认开启sshd的监禁配置,具体参考下图

Fail2Ban安装和使用保护SSH免受暴力攻击_图示-859db3cf495a41748f8971423d34c943.png

 

启动软件

sudo systemctl start fail2ban.service 

查看启动状态

sudo systemctl status  fail2ban.service 

操作示例图-b001e91754174f028f65ace370887447.png

停用

sudo systemctl stop fail2ban.service 

设置为开机启动

sudo systemctl enable fail2ban.service 

RedHat/CentOS

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

 

Fail2Ban 配置入门

针对SSHD登录服务配置

切换到目录 /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

解读:

  • enabled  = true  启用sshd服务的拦截
  • maxretry = 5 最大错误次数5次
  • findtime = 10m  错误检查周期时间10分钟
  • bantime  = 10m 封锁时间10分钟 ;其他参考: 10h-10天,1d - 1天 (时间格式:m - minutes, h - hours, d - days, w - weeks, mo - months, y - years,单一数字默认单位秒)

上面配置组合意思就是 同一个ip过来登录ssh,在10分钟内错误5次封锁10分钟

设定好配置后重启fail2ban服务

sudo systemctl restart fail2ban.service

 

验证测试

如果你有两台Linux

首先登录到另一台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

 

如果是是window + Linux主机

通过xshell 访问指定服务器,然后错误5次得到下面响应

可以看到错误

 

查看某个服务下封锁ip情况

sudo fail2ban-client status sshd
可以看到很多ip
可以看到很多ip

Fail2Ban解锁某个禁封ip

 

sudo fail2ban-client set sshd unbanip 114.114.114.114

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
环境说明ubuntu系统Fail2ban 是一种多功能的安全工具。虽然它主要用于防止针对 SSH 的暴力攻击,但它也可用于保护其他服务。安装Fail2Ban软件
前言通过上一篇Fail2Ban安装和使用保护SSH免受暴力攻击-XQLEE'Blog安装和基本使用已经能满足Linux服务器对于ssh服务的防护工作了。这里接着
备份备份现有配置和数据库以便回滚备份配置sudo mkdir -p /opt/fail2ban-baksudo cp -R /etc/fail2ban /opt
If not configured manually, Fail2ban will load configuration files from the dire
需求fail2ban 根据某个程序的日志文件进行监视,发现对应问题后进行监禁IP。具体需求示例:监控nginx示例,1分钟发现10个404页面访问则封禁该IP1
pve fail2ban 软件安装apt update -yapt install fail2ban -y 安装SSHD 日志模块apt-get install
错误描述pve8或ubuntu fail2ban 无法启动 Have not found any log file for sshd jail导致原因没有找到s
Linux(centos)系统远程(SSH)登录输入错误密码多次锁定账号时间PAM实现方式
Linux系统SSH命令基础用法,Linux,Linux系统
前言服务器安全是网络维护人员的重要工作,前面通过fail2ban添加了一套安全机制Fail2Ban安装和使用保护SSH免受暴力攻击-XQLEE'Blog,这里再
什么是alias (别名)命令别名就是为一条命令定义一个命令名,执行这个新的命令名就相当于执行这条命令。Linux 中“命令别名”涉及的命令为 alias 和
一、规则分类1.进入本机,即访问本机规则2.出本机,即本机访问外面规则3.转发,即本地转发规则,如端口7001转发到80 二、使用1.允许来自IP 10.1.1
Linux系统分区Linux系统挂载硬盘Linux系统Linux系统增加交换分区swap1.分区介绍 Linux系统分区不同于windows,Linux下[IE
Apine Linux 配置国内软件源echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/main" &gtl; /etc/apk/r...