当前位置: 首页 > news >正文

安装Fail2ban的过程与遇到的问题

前言

fail2ban是一款安全保护工具,触发限制后会创建防火墙规则封锁IP,诸如对ssh暴力破解、ftp/http密码穷举等场景提供强有力的保护,主要作用概要为以下几点:

  • 避免被穷举攻击(brute force)
  • 查看验证失败的日志
  • 自动创建防火墙规则封锁IP
  • 支持多种服务
  • 高度可定制

一、安装

1.软件源安装

发行版

安装命令

Arch

pacman -Sy fail2ban/yay -Sy fail2ban

CentOS/Redhat

yum install -y fail2ban

Debian

apt-get install fail2ban

2.源码安装

代码语言:shell

 

AI代码解释

 

git clone https://github.com/fail2ban/fail2ban.git

cd fail2ban

sudo python setup.py install

这会将fail2ban安装到python库目录中。可执行脚本放在 /usr/bin中,配置目录在/etc/fail2ban。

 

我的系统为CentOS7, 本以为这样就能轻松的完成安装了。

结果当我敲出:systemctl status fail2ban 时候显示并不存在该服务

 

问题一:fail2ban采用的为python3,而我的系统为默认的python2

解决方法:

安装依赖包

关于Python3.7以上的版本,需要多安装一个依赖包:

代码语言:javascript

AI代码解释

> yum install -y libffi-devel

否则会出现ModuleNotFoundError: No module named _ctypes的报错。

安装python 3.7.3

代码语言:javascript

AI代码解释

# 下载

> wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

# 解压

> tar -zxf Python-3.7.3.tgz

# 安装依赖包

> yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc  libffi-devel

# 进入python目录

> cd Python-3.7.3

# 编译

> ./configure --prefix=/usr/local/python3.7

#安装

> make && make install

 

备份Python2版本

由于系统有些软件还是依赖Python2运行,所以不能删除Python2,需要对原来的python软连接指向python3

> ln -s /usr/local/python/bin/python3.7 /usr/bin/python

这里注意,你下载安装的python3路径可能是这样的。

> /usr/local/python3.7/bin/python3.7

并不是上面的那条路径,软链接最终指向应该为python安装路径bin目录下的python3.7可执行文件

查看Python版本

> python -V

更改yum配置

因为yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置。

  • 编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2
  • > vim /usr/bin/yum

·        > vim /usr/libexec/urlgrabber-ext-down

问题二:ln命令失效

在执行创建python软链接的时候,我多次敲命令发现无任何回显。测试单纯输入ln命令也没有任何回显,使用file命令查看ln文件情况显示为empty

  • > file /usr/bin/ln

解决方案

方法 1:使用 yum 强制重装(即使“Nothing to do”)

sudo yum reinstall -y coreutils

如果还是报 Nothing to do,那是因为 yum 认为“已安装且无需更改”。我们需要先移除再重装,但注意:coreutils 是系统核心包,不能直接 yum remove(会连带删掉整个系统!)。

方法 2:手动下载 RPM 包并强制覆盖安装

1.  确认你的系统版本和架构:

cat /etc/redhat-release    # 查看 CentOS/RHEL 版本

uname -m                   # 通常是 x86_64

2.  从官方镜像下载对应 coreutils RPM 包例如,如果你是 CentOS 7 x86_64:

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/coreutils-8.22-24.el7.x86_64.rpm

3.  强制重新安装 RPM 包(不依赖 yum):

sudo rpm -Uvh --force --replacefiles coreutils-*.rpm

4.  验证是否恢复:

ls -l /bin/ln

/bin/ln --help   # 应该有输出了

 

问题三:通过源代码安装的方式安装fail2ban,结果安装之后systemctl status fail2ban显示没这个服务

在执行了安装之后,其实已经完成好了安装步骤,通过查看源码目录的build文件夹确认是否存在fail2ban.service验证。

ls -l build/fail2ban.service

同时校验配置文件是否已存在

Ls /etc/fail2ban/

 

将 build/fail2ban.service 复制到 systemd 目录:

sudo cp build/fail2ban.service /etc/systemd/system/

创建运行目录(避免启动失败)

sudo mkdir -p /var/run/fail2ban

sudo chmod 755 /var/run/fail2ban

 

重载 systemd 并启动

sudo systemctl daemon-reload

sudo systemctl enable --now fail2ban

sudo systemctl status fail2ban

现在应该就能看到 active (running) 了!

http://www.jsqmd.com/news/269150/

相关文章:

  • 『NAS』让工作和休息都「沉浸式」,在群晖部署高颜值白噪音工具-moodist
  • TypeScript 与后端开发Node.js - 指南
  • 【干货收藏】智能体并行化实战指南:让任务处理速度提升300%!
  • SQL数据可视化:从查询到图表的实战指南
  • 实体商业新出路:商圈共赢模式——我店模式
  • 基于大数据爬虫+Hadoop用户评论主题挖掘的旅游景点推荐系统设计与实现开题报告
  • 基于SpringBoot的智慧医疗管理系统设计与实现开题报告
  • 淘宝API SDK快速开发指南
  • 推三返本模式:3个月破亿的商业新玩法
  • Git的快速使用
  • 【2026年AI Agent爆发年】从Java Agent到AI Agent,一文读懂智能代理技术的演进与未来,收藏不迷路!
  • 拒稿率腰斩!虎贲等考 AI:期刊论文从构思到见刊的智能通关密码
  • 大模型学习宝典:理论、实践与应用三维度解析,值得收藏的完整指南
  • 5 款 AI 写论文哪个好?实测见真章!虎贲等考 AI 凭硬核实力稳坐头把交椅
  • GDB反汇编命令用法详解
  • 用户体验设计公司:兰亭妙微|什么是用户体验设计?不止于“好用”的设计哲学
  • Protocol Buffers C++ 进阶数据类型与应用逻辑深度解析
  • python基于vue的仓库综合管理与数据可视化分析平台 仓库火灾监测预警系统 仓库销售数据可视化分析系统
  • 提示工程架构师实战:用AI上下文工程优化社交媒体内容创作的3个技巧
  • 写论文软件哪个好?实测封神!虎贲等考 AI 凭真材实料成毕业党首选
  • python基于vue的摄影跟拍预约系统
  • 深入解析:为何虚拟机/服务器中MySQL优先选择Docker安装?
  • 深度对比:PostgreSQL与MySQL的核心差异及选型指南
  • day152—回溯—电话号码的字母组合(LeetCode-17)
  • python基于vue的电力集团企业员工职称评定系统
  • AI 写论文哪个软件最好?实测封神!虎贲等考 AI 成毕业通关 “学术引擎”
  • python基于vue美剧观影点评网站的设计与实现
  • 上海靠谱嵌入式开发怎么选,实邦电子值得考虑吗?
  • 9 款 AI 写论文哪个好?实测虎贲等考 AI:毕业论文的学术通关全能王
  • 魔果云课|寒假录课变现密码[特殊字符]