SELinux 的啟動、關閉與檢視
1,並非所有的 Linux distributions 都支援 SELinux 的
目前 SELinux 支援三種模式,分別如下:
•enforcing:強制模式,代表 SELinux 運作中,且已經正確的開始限制 domain/type 了;
•permissive:寬容模式:代表 SELinux 運作中,不過僅會有警告訊息並不會實際限制 domain/type 的存取。這種模式可以運來作為 SELinux 的 debug 之用;
•disabled:關閉,SELinux 並沒有實際運作。
2,檢視SELinux的模式
# getenforce
Enforcing <==就顯示出目前的模式為 Enforcing
3,檢視 SELinux 的政策 (Policy)?
[root@master oracle]# sestatus
SELinux status: enabled <==是否啟動 SELinux
SELinuxfs mount: /selinux <==SELinux 的相關檔案資料掛載點
Current mode: enforcing <==目前的模式
Mode from config file: enforcing <==設定檔指定的模式
Policy version: 21
Policy from config file: targeted <==目前的政策為何?
4,透過配置檔案調整SELinux的引數
[root@www ~]# vi /etc/selinux/config
SELINUX=enforcing <==調整 enforcing|disabled|permissive
SELINUXTYPE=targeted <==目前僅有 targeted 與 strict
5,SELinux 的啟動與關閉
【重要常識】上面是預設的政策與啟動的模式!你要注意的是,如果改變了政策則需要重新開機;如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他兩個,那也必須要重新開機。這是因為 SELinux 是整合到核心裡面去的, 你只可以在 SELinux 運作下切換成為強制 (enforcing) 或寬容 (permissive) 模式,不能夠直接關閉 SELinux 的!
同時,由 SELinux 關閉 (disable) 的狀態到開啟的狀態也需要重新開機啦!所以,如果剛剛你發現 getenforce 出現 disabled 時, 請到上述檔案修改成為 enforcing 吧!
【重點】如果要啟動SELinux必須滿足以下兩個點:
所以,如果你要啟動 SELinux 的話,請將上述的 SELINUX=enforcing 設定妥當,並且指定 SELINUXTYPE=targeted 這一個設定, 並且到 /boot/grub/menu.lst 這個檔案去,看看核心有無關閉 SELinux 了呢?
[root@www ~]# vi /boot/grub/menu.lst
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet selinux=0
initrd /initrd-2.6.18-92.el5.img
# 如果要啟動 SELinux ,則不可以出現 selinux=0 的字樣在 kernel 後面!
【問題】透過上面的學習我們知道,如果將啟動著的SELinux改為禁用,需要重啟電腦,我們不想重啟電腦又不想開啟SELinux該怎麼辦呢?
【答案】將強制模式改為寬鬆模!
[root@www ~]# setenforce [0|1]
選項與引數:
0 :轉成 permissive 寬容模式;
1 :轉成 Enforcing 強制模式
範例一:將 SELinux 在 Enforcing 與 permissive 之間切換與檢視
[root@www ~]# setenforce 0
[root@www ~]# getenforce
Permissive
[root@www ~]# setenforce 1
Enforcing
6,檢視已啟動程式的type設定
[root@master oracle]# ps aux -Z
LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
system_u:system_r:init_t root 1 0.0 0.4 2060 520 ? Ss May07 0:02 init [5
system_u:system_r:kernel_t root 2 0.0 0.0 0 0 ? S< May07 0:00 [migra]
system_u:system_r:kernel_t root 11 0.0 0.0 0 0 ? S< May07 0:00 [kacpi]
system_u:system_r:auditd_t root 4022 0.0 0.4 12128 560 ? S<sl May07 0:01 auditd
system_u:system_r:auditd_t root 4024 0.0 0.4 13072 628 ? S<sl May07 0:00 /sbin/a
system_u:system_r:restorecond_t root 4040 0.0 4.4 10284 5556 ? Ss May07 0:00 /usr/sb
說明:其實這些東西我們都不用管,都是SELinux內建的。只要學會在強制和寬鬆模式間轉換就行了!
SELinux 的啟動、關閉與檢視
1,並非所有的 Linux distributions 都支援 SELinux 的
目前 SELinux 支援三種模式,分別如下:
•enforcing:強制模式,代表 SELinux 運作中,且已經正確的開始限制 domain/type 了;
•permissive:寬容模式:代表 SELinux 運作中,不過僅會有警告訊息並不會實際限制 domain/type 的存取。這種模式可以運來作為 SELinux 的 debug 之用;
•disabled:關閉,SELinux 並沒有實際運作。
2,檢視SELinux的模式
# getenforce
Enforcing <==就顯示出目前的模式為 Enforcing
3,檢視 SELinux 的政策 (Policy)?
[root@master oracle]# sestatus
SELinux status: enabled <==是否啟動 SELinux
SELinuxfs mount: /selinux <==SELinux 的相關檔案資料掛載點
Current mode: enforcing <==目前的模式
Mode from config file: enforcing <==設定檔指定的模式
Policy version: 21
Policy from config file: targeted <==目前的政策為何?
4,透過配置檔案調整SELinux的引數
[root@www ~]# vi /etc/selinux/config
SELINUX=enforcing <==調整 enforcing|disabled|permissive
SELINUXTYPE=targeted <==目前僅有 targeted 與 strict
5,SELinux 的啟動與關閉
【重要常識】上面是預設的政策與啟動的模式!你要注意的是,如果改變了政策則需要重新開機;如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他兩個,那也必須要重新開機。這是因為 SELinux 是整合到核心裡面去的, 你只可以在 SELinux 運作下切換成為強制 (enforcing) 或寬容 (permissive) 模式,不能夠直接關閉 SELinux 的!
同時,由 SELinux 關閉 (disable) 的狀態到開啟的狀態也需要重新開機啦!所以,如果剛剛你發現 getenforce 出現 disabled 時, 請到上述檔案修改成為 enforcing 吧!
【重點】如果要啟動SELinux必須滿足以下兩個點:
所以,如果你要啟動 SELinux 的話,請將上述的 SELINUX=enforcing 設定妥當,並且指定 SELINUXTYPE=targeted 這一個設定, 並且到 /boot/grub/menu.lst 這個檔案去,看看核心有無關閉 SELinux 了呢?
[root@www ~]# vi /boot/grub/menu.lst
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet selinux=0
initrd /initrd-2.6.18-92.el5.img
# 如果要啟動 SELinux ,則不可以出現 selinux=0 的字樣在 kernel 後面!
【問題】透過上面的學習我們知道,如果將啟動著的SELinux改為禁用,需要重啟電腦,我們不想重啟電腦又不想開啟SELinux該怎麼辦呢?
【答案】將強制模式改為寬鬆模!
[root@www ~]# setenforce [0|1]
選項與引數:
0 :轉成 permissive 寬容模式;
1 :轉成 Enforcing 強制模式
範例一:將 SELinux 在 Enforcing 與 permissive 之間切換與檢視
[root@www ~]# setenforce 0
[root@www ~]# getenforce
Permissive
[root@www ~]# setenforce 1
[root@www ~]# getenforce
Enforcing
6,檢視已啟動程式的type設定
[root@master oracle]# ps aux -Z
LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
system_u:system_r:init_t root 1 0.0 0.4 2060 520 ? Ss May07 0:02 init [5
system_u:system_r:kernel_t root 2 0.0 0.0 0 0 ? S< May07 0:00 [migra]
system_u:system_r:kernel_t root 11 0.0 0.0 0 0 ? S< May07 0:00 [kacpi]
system_u:system_r:auditd_t root 4022 0.0 0.4 12128 560 ? S<sl May07 0:01 auditd
system_u:system_r:auditd_t root 4024 0.0 0.4 13072 628 ? S<sl May07 0:00 /sbin/a
system_u:system_r:restorecond_t root 4040 0.0 4.4 10284 5556 ? Ss May07 0:00 /usr/sb
說明:其實這些東西我們都不用管,都是SELinux內建的。只要學會在強制和寬鬆模式間轉換就行了!