如果你的Linux伺服器被非受權使用者接觸到(如伺服器放在公用機房內、公用辦公室內),那麼它的安全就會存在嚴重的隱患。
使用單一使用者模式進入系統
Linux啟動後出現boot:提示時,使用一個特殊的命令,如linuxsingle或linux 1,就能進入單一使用者模式(Single-User mode)。這個命令非常有用,比如忘記超級使用者(root)密碼。重啟系統,在boot:提示下輸入linux single(或linux 1),以超級使用者進入系統後,編輯Passwd檔案,去掉root一行中的x即可。
防範對策:
以超級使用者(root)進入系統,編輯/etc/inittab檔案,改變id:3:initdefault的設定,在其中額外加入一行(如下),讓系統重新啟動進入單一使用者模式的時候,提示輸入超級使用者密碼:
~~:S:walt:/sbin/sulogin
然後執行命令:/sbin/init q,使這一設定起效。
在系統啟動時向核心傳遞危險參數
在Linux下最常用的引導裝載(boot loader)工具是LILO,它負責管理啟動系統(可以加入別的分區及作業系統)。但是一些非法使用者可能隨便啟動Linux或者在系統啟動時向核心傳遞危險參數,這也是相當危險的。
防範對策:
編輯檔案/etc/lilo.conf,在其中加入restricted參數,這一參數必須同下面一個要講的password參數一起使用,表明在boot:提示下,傳遞給Linux核心一些參數時,需要你輸入密碼。
password參數可以同restricted一起使用,也可以單獨使用,下面將分別說明。
同restricted一起使用:只有在啟動時需要傳遞給核心參數時,才會要求輸入密碼,而在正常(預設)模式下,是不要求輸入密碼的,這一點一定要注意。
單獨使用(沒有同restricted一起使用):表示不管用什麼啟動模式,Linux總會要求輸入密碼;如果沒有密碼,就沒有辦法啟動Linux,在這種情況下的安全程度更高,相當於外圍又加入一層防禦措施。當然也有壞處——你不能遠程重啟系統,除非你加上restricted參數。
由於密碼是明文沒有加密,所以/etc/lilo.conf檔案一定要設定成只有超級使用者可讀,可使用下面的命令進行設定:
chmod 600 /ietc/lilo.conf
然後執行命令:/sbin/lilo -V,將其寫入boot sector,並使這一改動生效。
為了加強/etc/liIo.conf檔案的安全,你還可以設定這個檔案為不可改變的屬性,可使用命令:
chattr 十i/etc/lilo.conf
如果日後你要修改/etc/liIo.conf檔案,用chattr -i/etc/lilo.conf命令去掉這個屬性即可。
使用“Ctrl+Alt+Del”按鍵組合重新啟動
對於這一點,非常重要,也非常容易忽略,如果非法使用者能接觸到伺服器的鍵盤,他就可以用按鍵組合“Ctrl+AIt+Del”使你的伺服器重啟。
防範對策:
編輯/etc/inittab檔案,給ca::ctrlaltdel:/sbin/shutdown-t3 -r now加上注釋###ca::ctrlaltdeI:/sbin/shutdown-t3 -r now。
然後執行命令:/sbin/init q,使這一改動生效。