SELinux安全防護

1.SELinux安全防護
問題
本案例要求熟悉SELinux防護機制的開關及策略配置,完成以下任務:
1)將Linux服務器的SELinux設爲enforcing強制模式
2)在SELinux啓用狀態下,調整策略打開vsftpd服務的匿名上傳訪問
3)從/root目錄下移動一個包文件到FTP下載目錄,調整策略使其能夠被下載
步驟
實現此案例需要按照如下步驟進行。
步驟一:將Linux服務器的SELinux設爲enforcing強制模式
1)固定配置:修改/etc/selinux/config文件
確認或修改SELINUX爲enforcing模式:
[root@svr5 ~]# vim /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted
2)臨時配置:使用setenforce命令
查看當前SELinux狀態,如果是disabled則需要根據第1)步的配置重啓系統;如果是permissive則使用setenforce命令修改爲enforcing即可:
[root@svr5 ~]# getenforce
Permissive
[root@svr5 ~]# setenforce 1 //或者setenforce enforcing
[root@svr5 ~]# getenforce
Enforcing
步驟二:在SELinux啓用狀態下,調整策略打開vsftpd服務的匿名上傳訪問
1)配置一個允許匿名上傳的vsftpd服務作爲測試環境
[root@svr5 ~]# yum –y install vsftpd
… …
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //開啓匿名訪問
write_enable=YES
anon_umask=022
anon_upload_enable=YES //允許上傳文件
anon_mkdir_write_enable=YES //允許上傳目錄

[root@svr5 ~]# chown ftp /var/ftp/pub
[root@svr5 ~]# service vsftpd start
爲 vsftpd 啓動 vsftpd: [確定]
2)啓用SELinux時驗證FTP上傳訪問
在targeted策略的布爾值設置中,默認禁止FTP匿名寫入和完全訪問:
[root@svr5 ~]# ls > test.txt
[root@svr5 ~]# ftp 192.168.4.5
[root@svr5 ~]# ftp 192.168.4.5
… …
Name (192.168.4.5:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> put test.txt //嘗試上傳測試文件
local: test.txt remote: test.txt
227 Entering Passive Mode (192,168,4,5,121,146).
553 Could not create file. //上傳失敗
ftp> quit
221 Goodbye.
3)調整與FTP相關的SELinux布爾值,開放上傳寫入權限
檢查與allow_ftpd相關的SELinux布爾值,如果是off,則將其修改爲on:
[root@svr5 ~]# getsebool -a |grep allow_ftpd //查看布爾值
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
… .
[root@svr5 ~]# setsebool -P allow_ftpd_anon_write=1 //設置布爾值
[root@svr5 ~]# setsebool -P allow_ftpd_full_access=1
[root@svr5 ~]# getsebool -a |grep allow_ftpd //確認修改結果
allow_ftpd_anon_write --> on
allow_ftpd_full_access --> on
4)再次訪問vsftpd服務,經測試發現匿名上傳已經可用
[root@svr5 ~]# ftp 192.168.4.5
… …
Name (192.168.4.5:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> put test.txt //嘗試上傳測試文件
local: test.txt remote: test.txt
227 Entering Passive Mode (192,168,4,5,63,249).
150 Ok to send data.
226 Transfer complete. //上傳成功
237 bytes sent in 6.3e-05 secs (3761.90 Kbytes/sec)
ftp> quit
221 Goodbye.
步驟三:從/root目錄下移動一個包文件到FTP下載目錄,調整文件的安全上下文
1)關閉FTP布爾值allow_ftpd_full_access以便測試
因爲開啓此項會擴大FTP目錄的訪問權限(忽略安全上下文),建議先將其關閉。
[root@svr5 ~]# setsebool allow_ftpd_full_access=0
[root@svr5 ~]# getsebool allow_ftpd_full_access
allow_ftpd_full_access --> off
2)建立兩個FTP下載用的測試文件
由root用戶創建兩個測試壓縮包,一個直接建立到/var/ftp/目錄下,另一個先在/root/下建立,然後移動至/var/ftp/目錄 。
[root@svr5 ~]# tar zcf /var/ftp/d1.tar.gz install.log*
[root@svr5 ~]# tar zcf d2.tar.gz install.log*
[root@svr5 ~]# mv d2.tar.gz /var/ftp/
[root@svr5 ~]# ls -lh /var/ftp/d?.tar.gz
-rw-r–r--. 1 root root 13K 8月 16 10:16 /var/ftp/d1.tar.gz
-rw-r–r--. 1 root root 13K 8月 16 10:16 /var/ftp/d2.tar.gz
3)通過FTP方式測試下載
使用wget命令分別下載這兩個包文件,第二個包將會下載失敗(看不到文件)。
[root@svr5 ~]# wget ftp://192.168.4.5/d1.tar.gz
… …
==> PASV … 完成。 ==> RETR d1.tar.gz … 完成。
… …
2013-08-16 10:36:16 (235 MB/s) - “d1.tar.gz” 已保存 [13124]

[root@svr5 ~]# wget ftp://192.168.4.5/d2.tar.gz
… …
==> PASV … 完成。 ==> RETR d2.tar.gz …
文件 “d2.tar.gz” 不存在。
4)檢查該測試包的安全上下文,正確調整後再次下載第二個包成功。
[root@svr5 ~]# ls -Z /var/ftp/d?.tar.gz
-rw-r–r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/d1.tar.gz
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 /var/ftp/d2.tar.gz
[root@svr5 ~]# chcon -t public_content_t /var/ftp/d2.tar.gz
[root@svr5 ~]# ls -Z /var/ftp/d2.tar.gz
-rw-r–r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/d2.tar.gz

[root@svr5 ~]# wget ftp://192.168.4.5/d2.tar.gz
… …
==> PASV … 完成。 ==> RETR d2.tar.gz … 完成。
長度:13124 (13K) (非正式數據)
… …
2013-08-16 10:42:21 (178 MB/s) - “d2.tar.gz” 已保存 [13124]
注意:上例中的chcon操作可替換爲restorecon /var/ftp/d2.tar.gz 或者chcon --reference=/var/ftp/d1.tar.gz /var/ftp/d2.tar.gz ,效果相同。

發佈了225 篇原創文章 · 獲贊 196 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章