所謂系統(tǒng)加固就是利用手工配置及有關(guān)軟件來提高系統(tǒng)安全性的過程。本文將向讀者詳細介紹利用開源軟件sudo來對Root權(quán)限進行控制和審計以加固Linux系統(tǒng)安全的具體操作方法。
一、sudo的功能
Sudo是一款開源安全工具,最常用于對Root權(quán)限進行控制和審計。它的指導(dǎo)思想是“在保證人們能正常工作的條件下,盡量壓縮授予他們的權(quán)限”。系統(tǒng)管理員不僅可以讓指定的用戶或用戶組作為root用戶或其它用戶來運行某些命令,還能將指定的用戶所輸入的命令和參數(shù)作詳細的記錄。當然,該軟件是可以免費下載的,具體地址是www.gratisoft.us/sudo/download.html。
Sudo程序是一款在命令行方式下工作的安全工具,并且我們每次只執(zhí)行一條命令。它支持的功能有:
◆命令日志:記錄命令和參數(shù)。該功能用于跟蹤用戶輸入的命令,尤其適合于進行系統(tǒng)審計。因為sudo 會記錄下所有作為root用戶(或者規(guī)定的其他用戶)的命令,所以許多管理員經(jīng)常用它來替代root shell,以便記錄下自己使用的命令,這不僅能增進系統(tǒng)安全,還能用來進行故障檢修。
◆集中記錄多個系統(tǒng)的日志:Sudo聯(lián)合系統(tǒng)日志守護進程syslog后,能將所有日志集中存放在一個主機上。
◆命令限制:限定用戶或者用戶組能夠使用的命令。
◆檢票系統(tǒng):檢票系統(tǒng)通過在用戶登錄到sudo時所創(chuàng)建的票據(jù)來設(shè)定時間限制。票據(jù)只在規(guī)定的時間內(nèi)有效。每個新的命令都會刷新票據(jù)的預(yù)設(shè)時間,默認的預(yù)設(shè)時間是五分鐘,F(xiàn)實中,該功能非常有用,有了它即使root用戶離開系統(tǒng)時忘了注銷的話,也不至于被其他可以接觸到鍵盤的用戶肆無忌憚的窺探系統(tǒng)。因為票據(jù)過期后,系統(tǒng)必須重新登錄。所以,我們最好把有效時間盡量設(shè)的短一點,如默認有效時間五分鐘。檢票系統(tǒng)還可以用來清除用戶的票據(jù)文件。
◆集中管理多個系統(tǒng):Sudo 的配置一般寫在/etc/sudoers這個文件中,而該文件可以供多個系統(tǒng)所用,這樣一來,我們就可以在一個主機上對這些系統(tǒng)進行集中管理了。
Sudo幾乎支持所有的UNIX操作系統(tǒng)版本,但如果要從源代碼進行安裝的話,必須準備好C編譯器和make工具。
二、Sudo 命令參數(shù)詳解
利用Sudo,我們既可以讓某個用戶作為超級用戶來執(zhí)行某些命令,還可以讓他作為其他用戶來執(zhí)行某些命令——這一點對于系統(tǒng)管理格外有用。sudo命令的具體配置都可以在/etc/sudoers文件中找到,該文件規(guī)定了某個命令是否可以被某特定的用戶執(zhí)行。
使用sudo的前提條件是 ,用戶必須已經(jīng)具有了自己的用戶名和口令。如果一個用戶企圖通過sudo 來運行命令,但該用戶卻沒有位于sudoers文件中的話,系統(tǒng)將自動向管理員發(fā)送一封電子郵件,指出非授權(quán)用戶正在訪問系統(tǒng)。
如前所述,因為sudo具有檢票功能,所以用戶登錄sudo 時,會發(fā)給他一張票據(jù),默認情況下其有效時間為五分鐘。不過,用戶也可以通過帶–v標志的sudo命令來更新票據(jù),這會為票據(jù)申請另外五分鐘。命令如下所示:
sudo –v
如果有非授權(quán)用戶運行上面的命令的話,管理員將收到一封反映該事件的電子郵件。
同時,標志-v也會通知非授權(quán)用戶,他是非法用戶。如果該用戶很頑固,又一次次輸入該sudo 命令,那么系統(tǒng)會再發(fā)一封電子郵件通知管理員。
無論登錄的企圖是否成功,Sudo 都會如實記錄到默認的syslog(3)文件中。但是,我們也可以在Sudo 的配置文件改變這一行為。下表給出了sudo命令的一些選項。
選項 |
選項名 |
描述 |
-V |
Version |
打印版本號,然后退出。 |
-h |
Help |
打印幫助信息,然后退出。 |
-l |
List |
列出所有當前用戶允許和禁止的命令。 |
-v |
Validate |
將用戶的票據(jù)更新為一個預(yù)配置的時間,默認時五分鐘。如果需要的話,該用戶必須再次輸入用戶口令。 |
-k |
Kill |
作廢該用戶的票據(jù)。執(zhí)行該選項將命令用戶重新輸入用戶口令以更新票據(jù)。 |
-K |
Sure kill |
徹底刪除該用戶的票據(jù)。之后再運行該選項時,用戶必須用其用戶名和口令進行登錄。 |
-u |
User |
作為用戶名規(guī)定的用戶來運行特定的命令。這個由用戶名規(guī)定的用戶可以是root之外的任何用戶。 如果您想入口一個uid,入口#uid代替該用戶名。如果您想使用uid,可以用#uid代替該用戶名。 |
三、安裝Sudo