如何完全停用root登入

如何完全停用root登入

我在 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

我的問題。如何才能完全停用 root 登入。對於這一點,我的意思只是實體登入。以 root 身份運行的 cronjobs 和 sudo (以及 sudo -i)應該仍然可以工作。

我的伺服器正在運行 CentOS 7(透過 cronjobs 安裝更新)

先致謝

傑羅恩

編輯:

我發現根登入是每 10 分鐘一次,我認為應該安排一次。所以我查看了 crontab,看來 spamassassin 正在這樣做。由於我不再使用它(我使用諾頓 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

完成此操作後,您仍然可以使用登入SSH和一個普通用戶帳戶,然後使用須藤成為根。

相關內容