SSH 安全实战:配置加固、防爆破与二次验证!

目录:

一、引言

二、sshd 服务配置加固

三、基于 IP 的访问控制(hosts.allow/hosts.deny)

  1. 默认拒绝所有外部访问

  2. 允许指定源 IP 地址

四、fail2ban: 动态防御暴力破解

  1. 安装 fail2ban

  2. 配置规则

  3. 启动与验证

五、Google Authenticator:二次认证(2FA)

  1. 安装并初始化

  2. 修改 PAM 验证模块

  3. 启用质询响应

  4. 重启 sshd 服务

  5. 登录流程

六、总结

一、引言

SSH 是 Linux 系统中最基础且最常被攻击的远程访问协议。任何暴露在公网的 SSH 服务都可能在短时间内遭受端口扫描与暴力破解尝试。本篇文章旨在从 服务配置、访问控制、行为防御与多因素认证 四个方面,系统性提升 SSH 服务的安全性。

二、sshd 服务配置加固

文件位置:/etc/ssh/sshd_config

配置项 推荐值 说明
Port 非默认端口,如 22922 减少被扫描概率
PermitRootLogin no 禁止 root 用户登录
PasswordAuthentication no 禁止密码认证,仅使用密钥认证
AllowUsers opsuser 限定允许登录的账户名
MaxAuthTries 3 限制登录尝试次数
LoginGraceTime 30 限制认证超时时间
X11Forwarding no 禁止图形转发
AllowTcpForwarding no 禁止 TCP 转发

修改后执行 systemctl restart sshd 使配置生效。

三、基于 IP 的访问控制(hosts.allow/hosts.deny)

文件位置:

  • /etc/hosts.allow

  • /etc/hosts.deny

这两份文件属于 TCP Wrapper 控制机制(sshd 默认支持)。

1. 默认拒绝所有外部访问

/etc/hosts.deny 中写入:

复制代码
sshd: ALL

2. 允许指定源 IP 地址

/etc/hosts.allow 中写入:

复制代码
sshd: 10.10.10.0/24,10.188.188.188

支持配置网段和单个 IP 地址,无论你是一行写多个地址,还是分行列出来,hosts.allow 都能正常识别,效果完全一样。配置方式可以根据你自己的习惯来。

复制代码
sshd: 10.10.10.0/24
sshd: 10.188.188.188

四、fail2ban: 动态防御暴力破解

fail2ban 通过监控日志文件自动封禁异常 IP。

1. 安装 fail2ban

复制代码
apt -y install fail2ban

2. 配置规则

新建 /etc/fail2ban/jail.local

复制代码
[sshd]
enabled  = true
port     = 22
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime  = 1h

3. 启动与验证

fail2ban 会基于日志匹配封禁源 IP,防御大多数自动化爆破工具。

五、Google Authenticator:二次认证(2FA)

1. 安装并初始化

复制代码
apt install libpam-google-authenticator
google-authenticator

扫描生成的二维码并保存应急码。

2. 修改 PAM 验证模块

编辑 /etc/pam.d/sshd

在顶部添加:

复制代码
auth required pam_google_authenticator.so

3. 启用查询响应

编辑 /etc/ssh/sshd_config

复制代码
ChallengeResponseAuthentication yes

4. 重启 sshd 服务

复制代码
systemctl restart sshd

5. 登录流程

  • Verification code --> Password

  • 任何单一凭据泄露都不足以登录系统

六、总结

安全与便捷从来是一对对立的矛盾。 SSH 加固的每一步操作------无论是禁用密码登录、限制来源 IP,还是启用二次认证------都会让远程登录变得更加繁琐。 但这正是安全的本质:牺牲效率,换取确定性

对于生产环境而言,SSH 并不只是一个"登录入口",而是系统边界的最后防线。 一个未做限制的端口、一个共享的密钥文件、一次被遗忘的测试账户,都可能成为入侵的切入点。

所以,在安全与便捷之间,理性的选择不是偏向任何一端,而是明确权衡边界

  • 在个人环境,可以降低部分约束、保留便捷;

  • 在服务器生产环境,应优先考虑最小暴露面与最小权限;

  • 在企业或多用户环境,应引入集中密钥管理与审计机制。

相关推荐
迪康Defender4 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
网安小学生(兼顾数据库版)4 小时前
固件+软件供应链:ONEKEY+Mend如何实现全链路安全覆盖
网络·安全·web安全
马可家的菠萝5 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
珠海西格电力5 小时前
零碳园区管理系统“智慧大脑”功能对园区运营成本的影响有哪些?
大数据·人工智能·安全·系统架构·能源
小刘在重生~6 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序6 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包6 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
乐橙开放平台6 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
发量惊人的中年网工6 小时前
2026年DDoS防护方案怎么选?从攻击响应、清洗位置到成本账单,解析全球高防方案
大数据·网络·安全·ddos
山岚的运维笔记7 小时前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba