Ubuntu服务器终极安全加固:锁死SSH的Root登录权限!

Ubuntu服务器终极安全加固:锁死SSH的Root登录权限!

宝塔面板换成CyberPanel后有一点不习惯,宝塔专业版的WAF有个功能不错,SSH被链接过多就会封锁这个IP防止被黑。CyberPanel目前我还没完全吃透,干脆禁了系统的root,防止被人不断暴力破解。不过话说谁吃饱了没事干老来针对万事屋这个荒岛搞事情?

Ubuntu服务器终极安全加固:锁死SSH的Root登录权限!

本文详细教你如何安全地禁用Ubuntu系统root账户的SSH远程登录权限,并创建替代的管理员账户。在执行任何操作之前,务必确保你已拥有一个具备sudo权限的替代管理用户。否则,你可能会被锁死在系统之外!

为什么要禁用SSH的Root登录?

默认情况下,虽然Ubuntu系统的root用户是禁用的,但某些自定义环境可能会启用它。允许root直接通过SSH远程登录存在严重安全风险

  • 暴力破解目标明确:黑客会不断尝试对服务器的root用户进行密码爆破。
  • 权限过高:一旦root密码被破解,攻击者将直接获得系统最高权限,后果不堪设想。

禁用root的SSH登录,强制使用普通用户登录后再切换至root</strong,能有效增加攻击门槛,是服务器安全的基本要求

禁用SSH Root登录详细步骤

第一步:创建具有sudo权限的管理员账户

如果你还没有一个具有sudo权限的普通用户,请务必先创建一个。

  1. 以root用户身份登录你的服务器(或使用当前有sudo权限的用户)。
  2. 执行以下命令创建新用户(将 yourusername 替换为你想要的用户名):
    adduser yourusername 

    根据提示设置密码并填写用户信息(其他信息可直接回车跳过)。

  3. 授予新用户sudo权限:
    usermod -aG sudo yourusername 
  4. (至关重要的一步!) 在新开的终端窗口或SSH会话中,使用新创建的用户名和密码登录服务器,验证该用户是否可以成功登录并能执行sudo命令:
    sudo su - 

    输入用户密码后,若提示符变为 root@,则说明sudo权限配置成功。确保此步骤成功后再进行后续操作!否则你可能永久失去服务器访问权限!

第二步:修改SSH配置文件

  1. 通过SSH以你的新管理用户身份登录服务器,或者如果你已在服务器上,请确保当前会话是有效的。
  2. 使用文本编辑器(如nano)打开SSH守护进程的配置文件 sshd_config
    sudo nano /etc/ssh/sshd_config 
  3. 在文件中找到包含 PermitRootLogin 的配置行。它可能看起来像这样:
    #PermitRootLogin prohibit-password 

    或者

    PermitRootLogin yes 
  4. 取消该行的注释(删除行首的 # 号,如果存在的话),并将其值修改为 no
    PermitRootLogin no 

    这表示明确禁止root用户通过SSH登录。

  5. (可选但强烈建议)同时检查并确保以下配置,进一步提升安全性:
    PasswordAuthentication no # 如果你只使用密钥认证,可禁用密码登录 PubkeyAuthentication yes # 确保启用公钥认证 
  6. 保存并关闭文件。
    • 在nano编辑器中,按 Ctrl+X,然后按 Y,最后按 Enter 确认。

第三步:重启SSH服务使配置生效

修改配置后,必须重启SSH服务才能使更改生效。执行以下命令:

sudo systemctl restart ssh 

或者,在某些较早的系统或特定发行版上,服务名可能是:

sudo systemctl restart sshd 

重启SSH服务通常不会中断现有的SSH连接,这是一个好消息,意味着你当前的连接不会断掉。但所有新的连接尝试将会应用新的配置规则。

第四步:验证配置是否生效

  1. 保持你当前的SSH连接不要断开(这是你的安全通道和救命稻草)。
  2. 打开另一个终端窗口,尝试使用root用户通过SSH连接你的服务器:
    ssh root@你的服务器IP地址 
  3. 如果配置正确,你现在应该会看到类似 “Permission denied”(权限被拒绝)“Connection closed”(连接关闭) 的错误信息,并且无法以root身份登录
  4. 请务必再次使用你的普通管理用户尝试SSH登录,确认其仍然可以正常登录并拥有sudo权限。这一步是双重保险,确保你没有误操作。

重要提醒和故障排除

  • 切记切记:在禁用root的SSH登录之前,必须确保有其他可用的、具有sudo权限的普通用户能够远程登录。这是最重要的准则,否则下一步操作就会让你永久失去远程管理服务器的能力
  • 如果修改后遇到问题(无法登录)
    • 如果你有通过服务器控制台(如KVM、VNC、云服务商提供的网页终端)的访问权限,可以通过它登录服务器检查并修复配置。这是最后的补救措施。
    • 检查配置文件语法是否正确,特别是 PermitRootLogin no 是否拼写准确,确保没有多余的空格或字符。
    • 确认是否成功重启了SSH服务,可以使用 sudo systemctl status ssh 检查服务状态。
  • 强烈建议结合使用SSH密钥认证禁用密码登录修改默认SSH端口(22) 以及使用 Fail2ban 等工具,可以极大增强服务器的SSH安全防护能力,构建多层防御体系。

总结

禁用Ubuntu系统root账户的SSH远程登录是一个简单却至关重要的服务器安全加固措施。它迫使攻击者需要同时破解一个有效的用户名和其密码(或窃取其私钥),显著增加了攻击难度,提升了系统的整体安全性。

只需简单修改 /etc/ssh/sshd_config 文件中的 PermitRootLogin 值为 no 并重启SSH服务,就能有效降低服务器被暴力破解的风险。记住,系统安全在于细节,防御始于最基本的配置


版权所有 © 万事屋 2025 | 本文由万事屋创作,转载请保留出处:https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖