Linux如何部署Fail2ban防护SSH暴力破解_Linux安全加固指南
发布时间 - 2025-11-22 00:00:00 点击率:次Fail2ban通过监控日志自动封禁恶意IP,有效防范SSH暴力破解。在Linux系统中可通过包管理器安装,配置jail.local文件启用SSHD防护,设置maxretry=3、bantime=86400等参数后启动服务,结合firewalld/iptables实现自动封禁,显著提升服务器安全性。
Fail2ban 是一款实用的开源入侵防御软件,能有效防止 SSH 暴力破解、FTP 弱口令尝试等常见攻击。它通过监控系统日志,自动识别异常登录行为,并临时封禁恶意 IP 地址。在 Linux 服务器上部署 Fail2ban 是安全加固的重要一步,尤其适用于开放了 SSH 服务的公网主机。
安装 Fail2ban
大多数主流 Linux 发行版都支持通过包管理器直接安装 Fail2ban。
- Debian/Ubuntu 系统:
sudo apt update
sudo apt install fail2ban
- CentOS/RHEL/Rocky Linux(需启用 EPEL):
sudo yum install epel-release(或 dnf install epel-release)
sudo yum install fail2ban(或 dnf install fail2ban)
安装完成后,Fail2ban 服务会自动生成配置文件并准备运行。
配置 Fail2ban 防护 SSH
Fail2ban 的主配置文件位于 /etc/fail2ban/jail.conf,但建议创建本地覆盖文件以避免升级时被覆盖。
复制并编辑本地配置:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
找到 [sshd] 区块并确保启用和合理设置:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
findtime = 3600
说明:
- maxretry = 3:允许失败尝试 3 次
- bantime = 86400:封禁持续 24 小时(单位:秒)
- findtime = 3600:在 1 小时内超过 maxretry 触发封禁
- logpath:根据系统日志路径调整,Ubuntu/Debian 通常为 /var/log/auth.log,CentOS/RHEL 为 /var/log/secure
启动并启用 Fail2ban 服务
配置完成后,启动服务并设置开机自启:
sudo systemctl start fail2ban
sudo systemctl enable fail2ba
n
检查服务状态是否正常运行:
sudo systemctl status fail2ban
查看 SSH 防护是否已激活:
sudo fail2ban-client status sshd
输出中应包含“Currently banned”信息,表示已有 IP 被封禁或规则生效。
查看日志与解除封禁
Fail2ban 日志通常位于 /var/log/fail2ban.log,可用于排查问题或确认封禁行为:
sudo tail -f /var/log/fail2ban.log
若需手动解封某个 IP(例如误封):
sudo fail2ban-client set sshd unbanip 192.168.1.100
也可查看当前被封禁的 IP 列表:
sudo fail2ban-client status sshd
如果使用 firewalld 或 iptables,Fail2ban 会自动集成对应防火墙规则,无需额外配置。
基本上就这些。部署 Fail2ban 后,可显著降低 SSH 暴力破解风险。配合修改默认 SSH 端口、禁用密码登录、使用密钥认证等措施,服务器安全性将进一步提升。
# linux
# centos
# 防火墙
# 端口
# ubuntu
# ai
# dnf
# 配置文件
# linux系统
# 解封
# Filter
# var
# ssh
# debian
# 管理器
# 已有
# 适用于
# 也可
# 自动识别
# 可通过
# 监控系统
# 开源
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现验证码(Captcha)功能
Laravel怎么上传文件_Laravel图片上传及存储配置
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
b2c电商网站制作流程,b2c水平综合的电商平台?
微信小程序 input输入框控件详解及实例(多种示例)
Laravel怎么在Blade中安全地输出原始HTML内容
公司网站制作价格怎么算,公司办个官网需要多少钱?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何自定义建站之星模板颜色并下载新样式?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel如何创建自定义Facades?(详细步骤)
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
详解Oracle修改字段类型方法总结
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
详解Android图表 MPAndroidChart折线图
Android中AutoCompleteTextView自动提示
Laravel如何处理表单验证?(Requests代码示例)
如何在Windows服务器上快速搭建网站?
简单实现Android验证码
如何在IIS中新建站点并解决端口绑定冲突?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
如何在VPS电脑上快速搭建网站?
android nfc常用标签读取总结
Laravel如何创建自定义中间件?(Middleware代码示例)
jQuery validate插件功能与用法详解
用yum安装MySQLdb模块的步骤方法
如何在万网ECS上快速搭建专属网站?
网站制作企业,网站的banner和导航栏是指什么?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
JavaScript数据类型有哪些_如何准确判断一个变量的类型
成都网站制作公司哪家好,四川省职工服务网是做什么用?
lovemo网页版地址 lovemo官网手机登录
Laravel如何实现模型的全局作用域?(Global Scope示例)
黑客如何利用漏洞与弱口令入侵网站服务器?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
在线制作视频网站免费,都有哪些好的动漫网站?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Swift开发中switch语句值绑定模式
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
网站页面设计需要考虑到这些问题
百度输入法ai组件怎么删除 百度输入法ai组件移除工具

