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

别再只用默认端口了!在Ubuntu 22.04上安全配置SSH的进阶指南:改端口、密钥登录与Fail2ban

Ubuntu 22.04服务器SSH安全加固实战从基础防护到企业级防御当你把Ubuntu服务器暴露在公网环境中默认的SSH配置就像把家门钥匙挂在门把手上——方便但极度危险。每天都有数以万计的自动化脚本在扫描互联网上的22端口尝试用常见用户名和弱密码组合入侵服务器。作为经历过三次服务器入侵事件的老运维我想分享一套经过实战检验的SSH安全加固方案。1. 为什么默认SSH配置是安全隐患在公网环境下使用默认22端口和密码认证的SSH服务主要面临三大威胁端口扫描攻击Shodan等网络爬虫持续扫描全网开放22端口的设备平均新上线的服务器在15分钟内就会被扫描到暴力破解攻击黑客使用字典攻击工具如Hydra以每秒数十次的频率尝试常见密码组合零日漏洞利用OpenSSH历史上曾出现多个高危漏洞如CVE-2018-15473默认配置可能放大漏洞影响根据Cloudflare的网络安全报告未加固的SSH服务器平均存活时间MTTD仅为3小时。我去年管理的50台服务器中有3台因为使用默认配置在部署当天就遭到了入侵。2. 修改SSH默认端口第一道防线修改默认端口是最简单有效的防护措施能过滤掉90%的自动化攻击。以下是详细操作步骤2.1 选择非标准端口端口选择有讲究需要避开常见服务端口范围0-1023建议在49152-65535之间选择。避免使用常见替代端口如2222、22222已被攻击者重点监控其他服务常用端口如3306、5432等我推荐使用58234这样的高位随机端口执行以下命令修改配置sudo nano /etc/ssh/sshd_config找到#Port 22这一行取消注释并将端口改为新值Port 582342.2 防火墙配置与测试Ubuntu 22.04默认使用UFW防火墙需要放行新端口sudo ufw allow 58234/tcp sudo ufw deny 22/tcp # 显式拒绝旧端口 sudo ufw reload测试新端口是否生效不要关闭当前SSH会话ssh -p 58234 usernamelocalhost确认新端口可用后重启SSH服务sudo systemctl restart sshd重要提示永远保持至少一个活跃的SSH连接直到确认新配置可用避免被锁在服务器外3. 彻底禁用密码登录SSH密钥认证详解修改端口只是开始密钥认证才是真正的安全保障。下面是我在金融级系统中使用的密钥配置方案。3.1 生成高强度密钥对在本地机器不是服务器上生成ED25519密钥比RSA更安全高效ssh-keygen -t ed25519 -a 100 -f ~/.ssh/prod_server -C prod_access_2023参数说明-a 100增加密钥派生迭代次数提升抗暴力破解能力-f指定密钥文件路径-C添加注释标识密钥用途生成后得到两个文件prod_server私钥权限必须设为600prod_server.pub公钥3.2 服务器端配置将公钥上传到服务器ssh-copy-id -i ~/.ssh/prod_server.pub -p 58234 usernameserver_ip然后修改SSH配置sudo nano /etc/ssh/sshd_config确保以下设置PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication no UsePAM no3.3 密钥管理最佳实践多因素保护为私钥添加强密码ssh-keygen时会提示密钥轮换每90天更换一次密钥对权限控制chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys4. Fail2ban动态防御暴力破解即使做了上述防护服务器仍会收到大量探测请求。Fail2ban可以动态封锁恶意IP。4.1 安装与基本配置sudo apt install fail2ban sudo systemctl enable --now fail2ban创建自定义jail配置sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local针对SSH的推荐配置[sshd] enabled true port 58234 filter sshd logpath /var/log/auth.log maxretry 3 findtime 1h bantime 1d ignoreip 127.0.0.1/8 ::1 192.168.1.0/244.2 高级防护策略针对高频攻击者可以启用recidive累犯机制[recidive] enabled true filter recidive logpath /var/log/fail2ban.log action iptables-allports[namerecidive] bantime 30d findtime 1d maxretry 3查看当前被封禁IPsudo fail2ban-client status sshd5. 深度防御进阶安全措施5.1 限制用户登录范围在/etc/ssh/sshd_config中添加AllowUsers deploy admin AllowGroups ssh-users DenyUsers root5.2 启用两步验证2FA安装Google Authenticatorsudo apt install libpam-google-authenticator google-authenticator修改SSH PAM配置ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive5.3 网络层防护使用Cloudflare Zero Trust或Tailscale建立私有网络完全隐藏SSH端口。6. 监控与应急响应设置实时告警需要配置邮件服务sudo apt install mailutils sudo nano /etc/fail2ban/action.d/mail.conf日志监控命令示例# 查看最近登录 last -i # 检查可疑登录 grep Failed password /var/log/auth.log | awk {print $11} | sort | uniq -c | sort -nr入侵应急响应流程立即断开受影响服务器网络备份关键日志/var/log/auth.log, /var/log/fail2ban.log轮换所有SSH密钥审查用户账户和权限

相关文章:

别再只用默认端口了!在Ubuntu 22.04上安全配置SSH的进阶指南:改端口、密钥登录与Fail2ban

Ubuntu 22.04服务器SSH安全加固实战:从基础防护到企业级防御 当你把Ubuntu服务器暴露在公网环境中,默认的SSH配置就像把家门钥匙挂在门把手上——方便但极度危险。每天都有数以万计的自动化脚本在扫描互联网上的22端口,尝试用常见用户名和弱密…...

Claude Mythos:AI自主攻防与零日漏洞发现的范式革命

1. 项目概述:一场静默却震耳欲聋的AI能力跃迁这周,整个AI安全圈没有爆炸性新闻稿,没有铺天盖地的发布会直播,只有一份措辞克制、数据密集的系统卡片(System Card)和一份由英国AI安全研究所(AISI…...

昇腾CANN pto-isa:虚拟指令集如何把 Ascend C 翻译成硬件指令

一个 Ascend C kernel 写好后,要在昇腾 NPU 上执行,需要经过两道编译:第一道,昇腾编译器把 Ascend C 翻译成 PTO(Parallel Tensor Orchestration)虚拟指令;第二道,NPU 固件在运行时把…...

别再怪硬件了!DELL服务器风扇噪音的元凶与精准静音指南(iDRAC+IPMI实战)

别再怪硬件了!DELL服务器风扇噪音的元凶与精准静音指南(iDRACIPMI实战) 服务器风扇突然狂转,噪音飙升?先别急着给硬件判死刑。这背后往往是一场系统散热策略与硬件兼容性的无声对话。作为管理员,我们需要透…...

别再死记硬背了!用Unity可视化工具一步步拆解A*寻路算法(附完整C#源码)

用Unity可视化工具玩转A*寻路算法:从理论到实战的沉浸式学习 在游戏开发的世界里,路径规划算法就像是一位隐形的向导,决定着NPC如何绕过障碍物找到玩家,或是战略游戏中单位如何选择最优行军路线。A*算法作为其中最耀眼的明星&…...

Adobe-GenP:创意工作者的智能许可证管理解决方案

Adobe-GenP:创意工作者的智能许可证管理解决方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 在数字创意领域,Adobe Creative Cloud系列软…...

全志V853开发环境搭建指南:从Ubuntu配置到SDK编译全流程

1. 项目概述:从零开始构建一个V853开发环境拿到一块全志V853开发板,第一件事是什么?不是急着写代码,也不是马上烧录固件,而是把整个编译环境给搭起来。这听起来像是基础操作,但恰恰是很多新手,甚…...

别再乱用case了!Verilog里case、casez、casex到底啥区别?一个例子讲透

别再乱用case了!Verilog里case、casez、casex到底啥区别?一个例子讲透 第一次在Verilog代码里看到casez和casex时,我下意识以为它们只是case的某种变体语法。直到某次仿真结果出现诡异的不匹配,排查三小时后才发现是casex误用导致…...

嵌入式与复杂系统安全开发实战:从威胁建模到安全编码的十大核心实践

1. 项目概述:为什么安全开发不再是“可选项”?干了十几年软件开发,从早期的桌面应用到后来的Web服务,再到近几年深度参与的嵌入式系统,我最大的感触就是:安全这件事,已经从“锦上添花”变成了“…...

Go语言整洁架构:分层设计

Go语言整洁架构:分层设计 1. 分层结构 internal/domain/ # 领域实体usecase/ # 用例adapter/ # 适配器handler/ # HTTP处理2. 总结 整洁架构强调业务逻辑的独立性和依赖方向的正确性。...

Go语言DDD实战:领域驱动设计

Go语言DDD实战:领域驱动设计 1. DDD分层 type UserService struct {repo UserRepository }func (s *UserService) CreateUser(cmd *CreateUserCommand) error {// 领域逻辑 }2. 总结 DDD通过统一语言和限界上下文实现复杂业务系统的有效建模。...

Go语言事件溯源:Event Sourcing

Go语言事件溯源:Event Sourcing 1. 事件溯源 type Event interface {EventType() string }type AccountCreated struct {AccountID stringOwner string }func (e *AccountCreated) EventType() string {return "AccountCreated" }2. 总结 事件溯源通过…...

Go语言CQRS模式:命令查询分离

Go语言CQRS模式:命令查询分离 1. CQRS实现 type CommandHandler interface {Handle(cmd *Command) error }type QueryHandler interface {Handle(query *Query) interface{} }2. 总结 CQRS将读操作和写操作分离,优化各自的性能和扩展性。...

ARM NEON中的VMLAL/VMLSL指令详解与优化实践

1. ARM SIMD指令集概述在嵌入式系统和移动计算领域,ARM架构凭借其出色的能效比占据了主导地位。随着多媒体处理、机器学习等计算密集型任务的普及,单指令多数据流(SIMD)技术成为提升处理器性能的关键手段。ARM的Advanced SIMD扩展(通常称为NEON技术)提供…...

无监督聚类挖掘声音语义:从音乐描述文本发现认知规律

1. 这不是传统聚类,而是一场对“声音语言”的考古式挖掘你有没有试过听一首歌,然后被某段音色击中——那种“像融化的玻璃糖纸裹着雨滴坠落”的感觉?或者在音乐评论区刷到“低频像沉入深海的青铜钟”“人声有未拆封的羊皮纸质感”这类描述&am…...

告别ifconfig!用ip命令和ethtool搞定Linux网卡状态排查(附实战案例)

告别ifconfig!用ip命令和ethtool搞定Linux网卡状态排查(附实战案例) 在Linux服务器运维中,网络故障排查是最常见的任务之一。记得去年深夜处理一次线上事故时,面对一台突然失联的数据库服务器,我习惯性地敲…...

从Arduino到树莓派:手把手教你玩转IIC和SPI通信(附Python/C++代码)

从Arduino到树莓派:手把手教你玩转IIC和SPI通信(附Python/C代码) 在创客和硬件开发的世界里,IIC和SPI就像两位性格迥异的老朋友——一个温和有序,一个雷厉风行。无论你是用Arduino快速原型开发,还是在树莓派…...

时序分析核心概念与实战:从数据特征到数据库选型

1. 项目概述:为什么我们需要“时序分析”?如果你在金融、物联网、工业制造、运维监控或者电商数据分析等领域工作过,那么“时序数据”这个词对你来说一定不陌生。简单来说,时序数据就是一系列按时间顺序排列的数据点。听起来很简单…...

量子虚时演化算法:原理、实现与应用

1. 量子虚时演化算法概述虚时演化(Imaginary-Time Evolution, ITE)是量子物理模拟中的核心数学工具,其核心思想是将时间变量t替换为虚数-iβ(β为实数)。这种变换将薛定谔方程中的幺正演化算符e^(-iHt)转化为非幺正的e…...

影刀RPA 企业级专题篇:多租户自动化平台与账号环境隔离设计

影刀RPA 企业级专题篇:多租户自动化平台与账号环境隔离设计 作者:林焱 很多自动化系统前期。 其实都默认只有一个“使用方”。 几个流程。 几台执行机。 统一浏览器环境。 前期问题不大。 但真正进入企业级阶段以后。 系统会逐渐出现&#xff1…...

保姆级排查指南:PyTorch装完CUDA不认账?手把手教你搞定torch.cuda.is_available()返回False

保姆级排查指南:PyTorch装完CUDA不认账?手把手教你搞定torch.cuda.is_available()返回False 刚装好PyTorch准备大展拳脚,结果torch.cuda.is_available()无情地返回False?这种挫败感我太懂了。作为过来人,我整理了这份…...

影刀RPA 企业级专题篇:自动化中台架构与多业务流程治理实践

影刀RPA 企业级专题篇:自动化中台架构与多业务流程治理实践 作者:林焱 很多团队最开始做自动化。 目标都很简单。 让流程跑起来。 减少重复操作。 前期。 几个流程。 几台机器。 一个维护人员。 系统看起来非常轻。 但随着业务扩大。 问题会…...

深度学习本质:分段线性逼近与ReLU的几何解释

1. 项目概述:为什么“分段线性逼近”是理解深度学习本质的钥匙你有没有盯着一个训练好的神经网络模型发过呆?输入一张图,它能识别出猫;输入一段文字,它能续写出小说。但当你翻开它的权重矩阵,看到的只是一堆…...

从MySQL分区到OceanBase分区:迁移老手教你平滑过渡与性能调优

从MySQL分区到OceanBase分区:迁移老手教你平滑过渡与性能调优 当MySQL分区表遇上OceanBase分布式架构,传统设计思维往往成为性能瓶颈的源头。本文将揭示两种数据库分区机制的本质差异,并提供一套经过生产验证的迁移方法论,帮助您避…...

从‘乱码’到‘可读’:我是如何用LayoutLMv3和Tesseract拯救一份无法复制的PDF合同的

从‘乱码’到‘可读’:我是如何用LayoutLMv3和Tesseract拯救一份无法复制的PDF合同的 那天下午,法务部的同事急匆匆地推开了我的办公室门,手里拿着一份标着"紧急"的PDF合同。"这份合同扫描件里的文字全都无法选中,…...

解决RK3568上QML卡顿的实战:从怀疑供应商到亲手编译带OpenGL ES2的Qt 5.14.2

RK3568嵌入式开发实战:破解QML卡顿之谜与OpenGL ES2编译全解析 当你在RK3568开发板上运行精心设计的QML界面时,却发现动画效果卡顿得像幻灯片播放——这种体验足以让任何嵌入式开发者抓狂。本文记录了一位开发者从发现问题到最终解决的完整历程&#xff…...

从Noise2Noise到Neighbor2Neighbor:图解自监督去噪的演进与核心‘采样’技巧

从Noise2Noise到Neighbor2Neighbor:自监督去噪技术的范式跃迁与工程实践 当你在昏暗环境下用手机拍摄一张照片时,那些恼人的彩色颗粒可能让你直接点击删除键。传统去噪方法需要大量"干净-噪声"图像对进行训练,而真实世界中获取完美…...

Halcon实战:当键盘字符印刷检测遇上位置偏移和亮度不均,差异化模型如何“稳如泰山”?

Halcon差异化模型在键盘字符印刷检测中的实战应用 键盘字符印刷检测是工业视觉领域最具挑战性的任务之一。想象一下,当数千个键盘以每分钟数十个的速度通过传送带时,每个按键上的字符都可能存在印刷缺陷——多墨、少墨、模糊、偏移,甚至完全缺…...

广州市认定广东专利奖的条件有哪些?如何准备广东专利奖申报?

一、奖项设置与省级奖励标准广东专利奖设四类奖项,省级直接奖励标准如下:广东专利金奖:不超过20项,每项30万元广东专利银奖:不超过40项,每项20万元广东专利优秀奖:不超过60项,每项10…...

历年各批次“重点小巨人”企业全面分析报告

国家级重点专精特新“小巨人”企业是专注于细分市场、创新能力强、市场占有率高、掌握关键核心技术、质量效益优的“排头兵”企业。自政策实施以来,重点“小巨人”已逐步成为我国培育新质生产力、推进新型工业化、提升产业链供应链韧性与安全水平的核心抓手。从工业…...