本文的主題是RHEL 5上的SELinux配置。RHEL同時提供了圖形用戶界面(GUI)和命令行兩種方式配置SELinux。為了表現SELinux的簡單易用,本文使用RHEL的GUI來啟用SELinux。
要從RHEL的GUI啟用SELinux,依次點擊系統(system)>管理(Administration)>安全級別和防火牆 (Security Level and Firewall)。進入SELinux選項卡,將SELinux設置為“允許模式(permissive mode)”,然後重啟服務器。
以允許模式啟動SELinux是(學習配置使用SELinux的)不錯的實踐。在這種模式下,你可以近距離感受和接觸SELinux,但不影響服務器和應用程序/數據庫中的任何東西。測試期間,你必須仔細查看日志信息,檢查所有的警告以及所有由程序和數據庫在操作期間產生的拒絕錯誤。
設置SELinux為允許模式並重啟我的RHEL後,我沒有發現任何不同。我以根賬戶登入系統,然後使用sestatus命令查看SELinux環境的運行狀況。
既然SELinux已經啟動並在允許模式下運行,那麼是時候對SELinux進行管理了。RHEL提供了一個GUI來進行SELinux的策略管理,根用戶可以使用system-config-SELinux命令對這個GUI進行初始化。該命令將打開GUI的主界面,在RHEL或Fedora Linux中你都可以看到如下的窗口:
上圖中,你可以在左邊框中找到SELinux管理的主要選項。第二個選項“Boolean”包含了SELinux管理中大部分默認服務和進程的布爾條件。同樣的條件也可以使用getsebool命令列出。舉個例子,如果你只想知道已有的關於ftpd守護進程的布爾條件,那麼你可以使用如下的命令:
要改變布爾條件,如allow_ftpd_use_cifs=off——該條件意味著FTP進程不能使用cifs協議進行公共文件傳輸——我們可以在 system-config-SELinux界面中單擊“Boolean”選項卡下對應的條件(條目),如下圖所示。此項操作將允許FTP服務使用 cifs協議進行公共文件傳輸。你可以針對ftpd進程執行getsebool和grep命令,確認剛才的操作是否生效。