在Solaris上使用RBAC保護root帳號

作   者:洪朝欽 精誠資訊 恆逸教育訓練中心 資深講師
技術分類:系統管理

在傳統的UNIX/Linux作業系統上,通常root使用者是預設權限最大而且唯一的系統管理者,此外的使用者都不具有管理系統的特權。如果使用者僅只要執行如印表機管理或系統備份等一兩樣特定的任務時,也必須使用root的身分才能完成。因此在這種情形下,除了系統最主要的管理者之外,還有許多人(例如值班的操作人員)也需要知道root密碼,於是隨著人員的調動,知道root密碼的人會愈來愈多。不但如此,萬一這些人登入系統執行不恰當的命令後,在系統內留下的紀錄也不會有他們的真實身分,以致無從追查。

為了解決這種權限層級過度扁平的問題,Solaris使用RBAC(Rose-Based Access Control)以增加權限控管的彈性。RBAC在原本使用者(User)之外,增加了角色(Role)這種身分,再加上授權等等的設定,最終可以做到特定使用者只有在執行特定的指令時才有特權,如此一來,就不需要將超出使用者所需的權限一併開放,系統的安全性自然大為提高。

角色像是使用者,但主要不同之處在於:

  1. 角色不能直接登入系統,不論是從本地或遠端、圖形或文字介面。必須先透過使用者身分登入系統後,再執行su(switch user)指令並輸入密碼之後才能切換成角色。
  2. 即使某個使用者知道某個角色的密碼,如果該使用者未被指派為該角色,也無法用su指令切換成該角色。
  3. 當以角色的身分執行特定指令時,該指令可以事先定義好的權限執行;而未經指定的指令則不具有任何特權。

從以上的規則來看,光是把root帳號從使用者轉變成為角色,RBAC就已經可以更有效的保護root帳號。從Solaris 11開始,root這個身分在安裝的時候就可以直接設定為角色(甚至在圖形安裝介面下必定為角色),但是在Solaris 10和之前的版本,root這個身分在安裝的時候必定是使用者,無法選擇為角色。以下就是將現有系統上的root從使用者轉變為角色的步驟:

  1. 首先以root使用者身分先建立一個本機的使用者,並且設定密碼:
    指令:useradd -m -d /export/home/user1 user1
  2. 將root由使用者身分轉變為角色:
    指令:usermod -K type=role root
  3. 將root角色指派給新建立的使用者:
    指令:usermod -R root user1
  4. 嘗試用該使用者登入系統並切換成root角色:
    指令:su -
  5. 結束目前所有以root使用者身分直接登入的連線,之後的連線就無法再以root登入了。

如果沒有將root角色指派給任何使用者就登出的話,必須要將系統重開到Single-User Mode才能再用root身分直接登入,指派完後再正常開機。

Share |
可在課程中了解更多技能…
相關學習資源︰

【SA-202-S10】Solaris 10作業系統之系統管理Part 2