iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
自我挑戰組

技術隨筆系列 第 11

安全性 UP - 避免 root 帳號打通關

  • 分享至 

  • xImage
  •  

有些 VPS 開好只有給你 root 帳號,有些人會用一個 root 帳號打通關,雖然這樣很方便,但這樣其實破壞了 un*x 原本的權限管控機制。以下提供設定指令

  1. 建立新用戶 adduser {newuser}

  2. 將新用戶添加到 sudo 群組 usermod -aG sudo {newuser}

  3. 設定 SSH 許可權

3.1 修改 SSH 設定檔 nano /etc/ssh/sshd_config
確保允許使用 sudo 的用戶登入: AllowUsers newuser
禁用 root 直接登入: PermitRootLogin no
建議先把前者打開,確定設定生效再禁用 root 直接登入,以免 SSH 設定失敗連 root 都沒辦法登入 VPS

3.2 重新啟動 SSH 服務 systemctl restart ssh

  1. 為新用戶設置 SSH 金鑰認證
    4.1 切換到新用戶 su - newuser
    4.2 創建 .ssh 目錄 mkdir -p ~/.ssh && chmod 700 ~/.ssh
    4.3 添加您的公鑰 nano ~/.ssh/authorized_keys
    4.4 設置適當的許可權 chmod 600 ~/.ssh/authorized_keys
    4.5 重啟 SSH 服務以應用新設定 systemctl restart ssh

使用 root 帳號會帶來的安全隱憂

  1. 破壞檔案權限紀律
    在 Linux 和 Unix 系統中,每個檔案和目錄都有明確的擁有者與權限設定。使用 root 帳號管理系統可能無意中讓檔案的擁有權與權限配置錯誤,導致其他非 root 用戶無法適當操作系統,迫使未來所有管理工作都只能通過 root 來進行,完全破壞了系統的權限架構和使用者的安全隔離。

  2. 無意執行惡意腳本
    當您使用 root 帳號執行像 php composer install 這樣的操作時,有可能安裝來自不可信任來源的惡意套件。如果這些套件包含惡意腳本,它們將以 root 權限執行,對整個系統產生不可估量的損害,甚至完全接管系統。

  3. 擴大攻擊面
    一旦 root 帳號的密碼被攻擊者獲得,整個系統就毫無防禦能力。因為 root 擁有最高權限,攻擊者可以繞過任何安全機制,修改檔案、刪除系統、安裝後門程式,使系統失控,甚至難以復原。

  4. 操作失誤風險
    root 帳號的高權限意味著一個錯誤的指令可能造成重大破壞。例如,意外刪除或修改系統重要檔案可能導致系統崩潰。如果平時使用受限權限的用戶進行操作,這些失誤的影響可以被限制在用戶範圍內,避免影響整個系統。

  5. 難以追蹤操作
    使用 root 帳號無法精確地追蹤哪個使用者執行了哪些操作,這會讓系統管理變得不透明。在多用戶環境中,應通過 sudo 來執行特權操作,以確保操作有明確的紀錄,便於審計和稽核。

  6. 影響未來系統管理維護
    長期使用 root 帳號進行所有系統管理,會讓系統依賴 root 權限,變得難以授權其他用戶進行日常維護。這不僅破壞了原本應有的權限隔離,也會讓團隊的系統管理更加繁重且危險。


上一篇
資料同步的實作選擇
下一篇
瀏覽器支援度語法 - browserslist
系列文
技術隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言