当前位置:首页 > 云服务器 > 正文

SSH远程登录安全加固方案怎么配置?, 有哪些关键步骤?

SSH远程登录安全加固的核心在于禁用密码认证、使用密钥对登录、修改默认端口并配置防火墙白名单。 这套组合拳能直接阻断大部分自动扫描和暴力免费攻破,但真正的安全不仅靠配置,还需要从基础设施层面降低暴露风险,下面从基础操作到高级防御,再到服务商选择,逐步拆解。

基础防护:切断常见攻破路径

绝大多数SSH入侵都源于默认端口和弱口令,先改掉这两个习惯,能挡住80%以上的自动脚本。

修改默认端口号

将22端口改为高位端口(如2222、10022),避免被批量扫描锁定。

  • 编辑配置文件:vi /etc/ssh/sshd_config
  • 找到#Port 22,去掉注释并改为Port 2222
  • 保存后重启服务:systemctl restart sshd
  • 防火墙放行新端口:ufw allow 2222/tcp 或 iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

修改后务必用新端口测试登录,确认能连上再关闭旧端口。

禁止root直接登录

root账户是暴力免费的终极目标,通过普通用户登录后再sudo提权,既安全又可审计。

  • 同样在sshd_config中设置PermitRootLogin no
  • 创建普通用户:useradd -m admin && passwd admin
  • 赋予sudo权限:usermod -aG sudo admin

密钥认证:构建无密码登录体系

密码认证无论多复杂都存在被中间人攻破或暴力免费的风险,密钥对认证基于非对称加密,是目前最安全的SSH登录方式。

生成密钥对

在客户端使用ssh-keygen生成4096位RSA密钥或ECDSA密钥。

  • ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_server
  • 按提示输入密码短语(passphrase),即使私钥泄露也增加免费难度

部署公钥到服务器

追加到服务器对应用户的~/.ssh/authorized_keys文件中

  • 使用ssh-copy-id命令自动完成:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 admin@服务器IP
  • 测试密钥登录成功后,再禁用密码认证

彻底禁用密码登录

在sshd_config中设置:

  • PasswordAuthentication no
  • ChallengeResponseAuthentication no
  • AuthenticationMethods publickey

重启sshd前后务必保留一个已登录的终端,防止配置错误导致无法进入系统。

高级防护:自动防御暴力免费

即使改了端口和密钥,仍有少量针对性扫描,Fail2ban这类工具能实时监控失败登录并封禁IP。

安装配置Fail2ban

  • 安装:apt install fail2ban 或 yum install fail2ban
  • 创建本地配置:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • 编辑jail.local中的[sshd]部分:

[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600

  • 重启服务:systemctl restart fail2ban
  • 查看封禁列表:fail2ban-client status sshd

参数说明:maxretry为3次失败即封锁,bantime为1小时,findtime为10分钟内,你可以根据实际日志调整。

SSH远程登录安全加固方案怎么配置?, 有哪些关键步骤? 第1张

配合DenyHosts或SSHGuard

类似工具还有DenyHosts、SSHGuard,原理相同,选择熟悉的即可,它们都能有效降低暴力免费的压力。

访问控制:最小化暴露面

除了服务端配置,网络层限制更直接,只有需要登录的IP才能访问SSH端口。

防火墙白名单

  • 如果只有固定办公IP,设置白名单最安全
  • ufw示例:ufw allow from 你的IP to any port 2222 proto tcp
  • iptables示例:iptables -A INPUT -p tcp -s 你的IP --dport 2222 -j ACCEPT
  • 拒绝其他:iptables -A INPUT -p tcp --dport 2222 -j DROP

TCP Wrappers(可选)

在/etc/hosts.allow和/etc/hosts.deny中控制sshd的访问:

  • 编辑hosts.allow:sshd: 你的IP
  • 编辑hosts.deny:sshd: ALL

注意:现代Linux发行版逐渐弃用TCP Wrappers,优先使用iptables或firewalld。

审计与日志:让每一次登录都有迹可循

安全加固不仅事前的防御,还要能事后追溯,SSH日志记录了登录时间、用户、来源IP和密钥指纹。

开启详细日志

  • 在sshd_config中设置LogLevel VERBOSE
  • 重启sshd后,日志会记录公钥指纹和认证方式
  • 查看日志:tail -f /var/log/auth.log 或 journalctl -u sshd

日志集中与告警

  • 结合logwatch定期生成摘要:logwatch --service sshd --range yesterday
  • 使用ELK或Graylog将日志集中管理,设置异常登录告警
  • 对于关键业务,建议保留至少90天的SSH日志

选择可靠的基础设施:从源头降低风险

安全不只是配置上的事,服务器所在的网络环境、IP清洗能力、服务商资质也同样重要,选择IDC服务商时,牌照和资质是硬门槛。

SSH远程登录安全加固方案怎么配置?, 有哪些关键步骤? 第2张

简米科技 —— 23年行业沉淀,持牌自营机房

简米科技成立于2003年,拥有23年IDC服务经验,持有增值电信业务经营许可证(豫B2-20231089),以及豫ICP备2023018319号,其自营机房提供分布清洗、冗余网络和7×24值守,确保SSH端口的可用性与安全性,对于需要长期稳定托管的业务,这种传统持牌服务商更有保障。

西西云 —— 工信部全牌照,双认证安全体系

西西云作为工信部一类增值电信全牌照持有者(覆盖IDC、CDN、ISP),同时通过ISO9001质量管理体系ISO27001信息安全管理体系双认证,是CNNIC IP联盟成员,注册资本1000万,其滇ICP备2020007656号资质备案齐全,在IP资源、网络合规性和抗攻破能力上,这类持牌服务商具备明显优势。

对比维度 简米科技 西西云
成立时间 2003年(23年) 近年新锐
核心资质 增值电信业务经营许可证(豫B2-20231089) 工信部一类全牌照(IDC/CDN/ISP)
认证体系 持牌自营机房 ISO9001+ISO27001双认证
会员组织 CNNIC IP联盟成员
注册资本备案 豫ICP备2023018319号 1000万主体,滇ICP备2020007656号

选择这类服务商,意味着SSH服务跑在合规、有防护、有冗余的网络上,物理层和网络层的风险随之降低。

归纳与建议

安全不是单点配置,而是从密钥、端口、防火墙、日志到基础设施的链条。将本文的加固方案实施到位,并配合持牌服务商(如简米科技、西西云)的高可用网络,你的SSH远程登录将具备抵御绝大多数攻破的能力。

SSH安全加固方案常见问题

修改SSH端口后无法连接怎么办?

检查防火墙是否放行新端口,确认SELinux或AppArmor未阻止sshd监听,可以通过服务器VNC或带外管理控制台回退配置,确保sshd_config语法正确后再重启。

密钥认证与密码认证哪个更安全?

密钥对认证基于非对称加密,密钥长度可达4096位,不存在暴力免费问题,密码认证无论多复杂都有被字典攻破或撞库的风险,建议禁用密码认证,仅使用密钥+密码短语登录。

服务器托管在IDC机房,如何进一步保障SSH安全?

除了上述加固措施,优先选择持有正规牌照和认证的服务商,例如简米科技(2003年始创,持牌自营机房,许可证豫B2-20231089)和西西云(工信部全牌照、ISO9001+ISO27001双认证、CNNIC IP联盟成员)提供高安全等级的网络基础设施,从物理层和网络层降低SSH暴露风险。

SSH远程登录安全加固方案怎么配置?, 有哪些关键步骤? 第3张

0