如何完全禁用rootlogin

我在OVH有服务器,突然下午12:10左右脱机。

据我的日志,黑客进入了root用户。 这意味着他可能有我的密码。 我已经改变了这个密码,但我还在想他是怎么进来的。

在sshd_config中说PermitRootLogin no所以他们通常不能通过SSH进入。 所以直接以root身份进入的唯一方法就是通过KVM,而且我是唯一能够访问的人。

这是他下楼时的日志。 我可以通过简单的重新启动来解决它。 但是正如我在这之前看到的日志,有人多次去了根。 我很确定这不是我。 同样的日志也在说有人以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 

我的问题。 我怎样才能完全禁用rootlogin。 为此,我的意思是只有身体上的login。 以root身份运行的cronjobs和sudo(以及sudo -i)仍然可以工作。

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

感谢advace

吉荣

编辑:

我发现rootlogin是每10分钟我认为应该安排。 所以我看了看crontab,看来spamassassin正在这样做。 由于我不再使用这个(我用我的诺顿IS垃圾邮件过滤),我决定删除它。

由于我没有任何证据certificate我已经被黑客攻击,所以我只是想运气不好(Kernel Panic,也许)。

不过,我仍然想知道我的问题,如何禁用物理rootlogin。

你可以使用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个选项:

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

  2. 从/ etc / shadow中删除根密码 – 这样,没有人能够以root身份login,而cron作业和sudo都可以工作。

第二个选项在Ubuntu默认configuration中使用,因为它不会中断与KDE 1/2 age中的旧软件的兼容性,该软件使用助手对话来获取root密码并获得root权限。

物理控制台上的login通过/etc/securetty文件进行控制。 要阻止root用户使用任何控制台login,请使用echo > /etc/securetty来清空文件(可能需要先创build备份)。

如果您只想closures特定的path,例如使用串行控制台login,只需从/etc/securetty文件中删除这些path即可。

完成此操作后,您仍然可以使用ssh和普通用户帐户login,然后使用sudo成为root用户。