教你如何保護Linux系統安全----SELinux安全防護

SELinux安全防護

1.將Linux服務器的SELinux設爲enforcing強制模式
2.從/root目錄下移動一個包文件到FTP下載目錄,調整策略使其能夠被下載

步驟一:將Linux服務器的SELinux設爲enforcing強制模式

1)固定配置:修改/etc/selinux/config文件
確認或修改SELINUX爲enforcing模式:

[root@proxy ~]# vim /etc/selinux/config
SELINUX=enforcing                                //設置SELinux爲強制模式
SELINUXTYPE=targeted                            //保護策略爲保護主要的網絡服務安全

2)臨時配置:使用setenforce命令
查看當前SELinux狀態,如果是disabled則需要根據第1)步的配置重啓系統;如果是permissive則使用setenforce命令修改爲enforcing即可:

[root@proxy ~]# getenforce                        //查看當前狀態爲警告模式
Permissive
[root@proxy ~]# setenforce 1                      //設置SELinux爲強制模式
[root@proxy ~]# getenforce                        //查看當前模式爲強制模式
Enforcing
[root@proxy ~]# setenforce 0                      //設置SELinux爲強制模式
[root@proxy ~]# getenforce                        //查看當前模式爲警告模式
Permissive

步驟二:在SELinux啓用狀態下,調整策略打開vsftpd服務的匿名上傳訪問

1)配置一個允許匿名上傳的vsftpd服務作爲測試環境

[root@proxy ~]# setenforce 1
[root@proxy ~]# yum -y install vsftpd
.. ..
[root@proxy ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES                                  //開啓匿名訪問
anon_upload_enable=YES                              //允許上傳文件
anon_mkdir_write_enable=YES                          //允許上傳目錄
[root@proxy ~]# systemctl start vsftpd                //啓動服務
//默認Vsftpd共享目錄爲/var/ftp/

步驟三:從/root目錄下移動2個包文件到FTP下載目錄,調整文件的安全上下文

1)建立兩個FTP下載用的測試文件
由root用戶創建兩個測試壓縮包,一個直接建立到/var/ftp/目錄下,另一個先在/root/下建立,然後移動至/var/ftp/目錄。

//測試文件1,直接在ftp目錄下創建文件
[root@proxy ~]# tar -czf  /var/ftp/log1.tar  /var/log
[root@proxy ~]# ls -lh /var/ftp/
-rw-r--r--. 1 root root 8M 8月  16 10:16 log1.tar
[root@proxy ~]# ls -Z /var/ftp/
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar
//測試文件2,在/root下建立,然後移動至/var/ftp目錄
[root@proxy ~]# tar -czf  log2.tar  /var/log
[root@proxy ~]# mv log2.tar /var/ftp/
[root@proxy ~]# ls -lh /var/ftp/
-rw-r--r--. 1 root root 8M 8月  16 10:16 log2.tar
[root@proxy ~]# ls -Z /var/ftp/
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar

3)通過FTP方式測試下載
使用wget命令分別下載這兩個包文件,第二個包將會下載失敗(看不到文件)。

[root@proxy ~]# wget ftp://192.168.4.5/log1.tar            //下載第一個文件,成功
[root@proxy ~]# wget ftp://192.168.4.5/log2.tar            //下載第二個文件,失敗

4)檢查該測試包的安全上下文,正確調整後再次下載第二個包成功。
文件已經存放到共享目錄下,但客戶端無法訪問下載,是因爲被SELinux攔截了!

[root@proxy ~]# ls -Z /var/ftp/
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0   log2.tar
[root@proxy ~]# chcon -t public_content_t /var/ftp/d2.tar.gz
[root@proxy ~]# ls -Z /var/ftp/log2.tar
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.tar
[root@proxy ~]# wget ftp://192.168.4.5/log2.tar            //再次下載,成功

注意:上例中的chcon操作可替換爲(效果相同): restorecon /var/ftp/log2.tar.gz 或者 chcon --reference=/var/ftp/log1.tar.gz /var/ftp/log2.tar.gz

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章