Linux 伺服器若無額外防護,存在三大經典弱點,攻擊者可輕易繞過認證奪取控制權。
開機 boot: 提示下輸入 linux single 或 linux 1 即進入單用戶模式,以 root 身分編輯 /etc/passwd 清除密碼欄位即可免密登入。
對策:編輯 /etc/inittab,在 id:3:initdefault: 下新增 ~~:S:wait:/sbin/sulogin,執行 /sbin/init q 生效。重啟進入單用戶模式時將提示輸入 root 密碼。
攻擊者在 boot: 提示傳遞核心參數(如 init=/bin/sh)可繞過認證。
對策:編輯 /etc/lilo.conf 加入 restricted 與 password=yourpass 參數。restricted 僅在需傳遞參數時要求密碼;單獨用 password 則每次開機皆需密碼(無法遠端重啟)。設定後 chmod 600 /etc/lilo.conf 限制權限,執行 /sbin/lilo -V 寫入 MBR,再以 chattr +i /etc/lilo.conf 鎖定檔案不可改。
任何人按 Ctrl+Alt+Del 即觸發 /sbin/shutdown -t3 -r now 重啟伺服器。
對策:編輯 /etc/inittab 註解該行 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now,執行 /sbin/init q 生效。
這三項設定屬基礎防護,建議佈署伺服器時同步完成,並配合實體機房門禁、BIOS 密碼、GRUB 密碼等多層防禦。