您好,登錄后才能下訂單哦!
這篇文章主要為大家分析了如何進行SELinux策略規則的開啟和關閉的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“如何進行SELinux策略規則的開啟和關閉”的知識吧。
在一般情況下,所有的規則并不是都處于開啟狀態,我們不用學習怎樣修改規則的具體內容,只需要知道開啟和關閉的規則就可以。
規則的開啟與關閉并不困難,使用 getsebool 命令來查詢規則的開啟和關閉狀態,使用 setsebool 命令來修改規則的開啟與關閉狀態。
先來看看如何知道哪些規則是啟用的,哪些規則是關閉的。這時需要使用 getsebool 命令,命令格式如下:
[root@localhost ~]# getsebool [-a] [規則名]
-a 選項的含義是列出所有規則的開啟狀態。
例如:
[root@localhost ~]# getsebool -a
abrt_anon_write –> off
abrt_handle_event –> off
allow_console_login –> on
allow_cvs_read_shadow –> off
allow_daemons_dump_core –> on
allow_daemons_use_tcp_wrapper –> off
…省略部分輸出…
#getsebool命令明確地列出了規則的開啟狀態
除此之外,還可以使用 semanage boolean -l 命令(此命令需事先手動安裝),此命令的輸出結構同 getsebool 命令相比,輸出信息中多了默認狀態、當前狀態以及相關描述等信息。感興趣的讀者,可以自己嘗試運行,觀看輸出結果。
能夠查詢到規則的開啟狀態,我們使用 setsebool 命令就可以開啟和關閉某個規則。當然,我們先應該通過 sesearch 命令確認這個規則的作用。
sesearch 命令格式如下:
[root@localhost ~]# setsebool [-P] 規則名=[0|1]
-P 選項的含義是將改變寫入配置文件,永久生效。規則名有 2 個值,分別是 0 和 1,0 代表將該規則關閉,1 代表將該規則開啟。
舉個例子:
[root@localhost ~]# getsebool -a | grep httpd
#查詢和apache相關的規則
…省略部分輸出…
httpd_enable_homedirs –> off
…省略部分輸出…
#發現httpd_enable_homedirs規則是開啟的,這個規則主要用于允許apache進程訪問用戶的家目錄
#如果不開啟這個規則,那么apache的userdir功能將不能使用
[root@localhost ~]# setsebool -P httpd_enable_homedirs=1
#開啟httpd_enable_homedirs規則
[root@localhost ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs –> on
#查詢規則狀態是開啟
[root@localhost ~]# setsebool -P httpd_enable_homedirs=0
#關閉規則
[root@localhost ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs –> off
#查詢規則狀態是關閉
舉個實際的例子,vsftpd 是 CentOS 默認的文件服務器,這個服務主要是用來進行文件的下載和上傳的。不過,如果啟動了 SELinux,則會發現 vsftpd 服務是不能登錄的。我們來做一個實驗,命令如下:
[root@localhost ~]# yum -y install vsftpd
#安裝vsftpd服務器端
[root@localhost ~]# yum -y install ftp
#安裝ftp命令,也就是ftp客戶端
[root@localhost ~]# useradd user
[root@localhost ~]# passwd user
#添加測試用戶,并配置密碼
[root@localhost ~]# service vsftpd start
#啟動vsftpd服務
[root@localhost ~]# ftp 192.168.4.210
#登錄本機的ftp
Connected to 192.168.4.210 (192.168.4.210).2.0 (vsFTPd 2.2.2)
Name (192.168.4.210:root):user ←輸入用戶名
3.1 Please specify the password.
Password: ←輸入密碼
5.0 OOPS:cannot change directory:/home/user
Login failed.
#登錄報錯,不能正常登錄
這很奇怪,vsftpd 是只要安裝并啟動就可以正常使用的,不用修改任何配置文件,因為默認配置是非常完善而且正確的。這時我們考慮是 SELinux 引起的問題,可以使用前面章節中關于日志查看的三個命令中的任意一個,來看看是否有關于 vsftpd 的報錯。命令如下:
[root@localhost ~]# audit2why
#分析SELinux的日志
type-AVC msg-audit(1370428985.525:1146) : avc: denied {search } for pid-28408 comm-“vsftpd” name=”home” dev=sda3 ino=1046530 scontext=unconfined_u:system_r:ftpd_t:s0-s0:c0.ol023
tcontext=system_u:object_r:home_root_t:s0 tclass=dir
#有關于vsftpd的錯.看來確實是SELinux引起的不能登陸 …省略部分輸出…
Was caused by:
One of the following booleans was set incorrectly.
Description:
Allow ftp servers to login to local users and read/write all files on the system, governed by DAC.
Allow access by executing:
# setsebool -P allow_ftpd_full_access 1
Description:
Allow ftp to read and write files in the user home directories
Allow access by executing:
# setsebool -P ftp_home_dir 1
#建議執行此命令,運行ftp讀取和寫入用戶的家目錄
既然給出了建議命令,我們就試試吧:
[root@localhost ~]# setsebool -P ftp_home_dir 1
#開啟ftp_home_dir規則
[root@localhost ~]# ftp 192.168.4.210
Connected to 192.168.4.210 (192.168.4.210).2.0 (vsFTPd 2.2.2)
Name (192.168.4.210:root):user ←輸入用戶名
3.1 Please specify the password.
Password: ←輸入密碼
2.0 Login successful. 登錄成功
關于“如何進行SELinux策略規則的開啟和關閉”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。