如何彻底禁用 root 登录

如何彻底禁用 root 登录

我在 OVH 的服务器在下午 12:10 左右突然离线。

根据我的日志,黑客是以 root 用户身份进入的。这意味着他可能知道我的密码。我已经更改了这个密码,但我仍然想知道他是如何进入的。

sshd_config 中说PermitRootLogin no他们通常无法通过 SSH 进入。因此,以 root 身份直接进入的唯一方法是通过 KVM,而我是唯一可以访问它的人。

这是他挂机时的日志。我可以通过简单的重启来解决这个问题。但是我看到之前的日志时,有人多次以 root 身份登录。我很确定不是我。而且相同的日志还说有人以 root 身份登录。

Jun 11 12:10:01 vps115965 systemd: Starting Session c3450 of user root.
Jun 11 12:10:01 vps115965 systemd: Started Session c3450 of user root.
Jun 11 21:31:02 vps115965 xinetd[2703]: START: gopher pid=22775 from=::ffff:46.182.107.117

我的问题。我如何才能完全禁用 root 登录。对于这一点,我指的是仅物理登录。以 root 和 sudo(以及 sudo -i)身份运行的 cronjobs 应该仍能正常工作。

我的服务器正在运行 CentOS 7(通过 cronjobs 安装更新)

提前致谢

杰伦

编辑:

我发现 root 登录每 10 分钟一次,我认为应该从这个时间开始。所以我查看了 crontab,发现 spamassassin 正在执行此操作。由于我不再使用它(我使用 Norton IS 进行垃圾邮件过滤),我决定将其删除。

由于我没有任何证据表明我被黑客入侵,所以我想这只是运气不好(也许是内核恐慌)。

但是我仍然想知道如何禁用物理 rootlogin。

答案1

您可以使用它passwd -l rootman passwd查看相关描述。

   -l     This  option  is used to lock the specified account and it is available to root only. The locking is performed by rendering the encrypted pass-
          word into an invalid string (by prefixing the encrypted string with an !).

答案2

您有 2 个选择:

  1. 使用 /etc/securetty 文件解决,如前面的答案所述。

  2. 从 /etc/shadow 中删除 root 密码 - 这样就没有人能够以 root 身份登录,但 cron 作业和 sudo 可以正常工作。

第二个选项用于 Ubuntu 默认配置,因为它不会破坏与 KDE 1/2 时代的旧软件的兼容性,该软件使用帮助对话框来获取 root 密码并获取 root 权限。

答案3

物理控制台上的登录通过该/etc/securetty文件控制。要防止 root 用户使用任何控制台登录,请使用类似以下echo > /etc/securetty方法清空该文件(您可能需要先创建备份)。

如果您只想关闭特定路径(例如使用串行控制台登录),只需将其从文件中删除即可/etc/securetty

完成此操作后,您仍然可以使用以下方式登录远程控制和普通用户帐户,然后使用须藤成为 root。

相关内容