久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

幫助中心 >  行業(yè)資訊 >  云計算 >  玩轉Linux安全機制之SELinux

玩轉Linux安全機制之SELinux

2025-03-06 10:51:26 1050

在過往實驗中,為圖便捷曾關閉 SELinux 安全機制,但不可否認,SELinux 對于對外發(fā)布業(yè)務的服務器而言,是極為關鍵的安全防護屏障,開啟狀態(tài)才是最佳實踐。


下面就帶大家一起學習一下什么SELinux以及如何使用它。


1. SELinux概述


SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是 Linux歷史上最杰出的新安全子系統(tǒng)。NSA是在Linux社區(qū)的幫助下開發(fā)了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的任務中所需要文件。SELinux 默認安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作為其他發(fā)行版上容易安裝的包得到。


2. 實驗環(huán)境


Linux系統(tǒng)版本:Centos 7.4最小化安裝


3. SELinux狀態(tài)


三種配置狀態(tài):

enforcing:強制模式,SELinux已經啟動permissive:寬容模式,SELinux已經啟動,但不會禁止,只是會提出警告信息disabled:關閉模式,關閉SELinux


3.1 查看當前SELinux狀態(tài)


getenforce


image.png

SELinux默認狀態(tài)為enforcing。

3.2 修改SELinux狀態(tài)

3.2.1 臨時關閉,permissive狀態(tài)


語法:


image.png


setenforce 0


image.png

3.2.2 永久關閉


vi /etc/selinux/config


將:SELINUX=enforcing
改為:SELINUX=disabled


或者在命令行使關閉SELinux:

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

臨時關閉不需要重啟服務器,永久關閉SELinux必須重啟服務器。


4. SELinux類型


SELinux有三種類型:

targeted - Targeted processes are protected,
minimum - Modification of targeted policy. Only selected processes are protected.
mls - Multi Level Security protection.


系統(tǒng)默認是targeted類型,可以更改類型:


vi /etc/selinux/config

SELINUXTYPE=targeted


5. 實驗操作


接下來我們通過一個實驗來講解SELinux的作用。


5.1 安裝Apache


yum install httpd


5.2 編輯測試頁


echo 'HTML TEST SELinux !' > /var/www/html/index.html

注意,新創(chuàng)建的index.html存儲在Apache默認路徑下。


5.3 啟動Apache測試

systemctl start httpd  #啟動服務

打開網頁測試,前提是配置好防火墻。

防火墻配置:


firewall-cmd --permanent --add-service=http
firewall-cmd --reload

網頁測試:

image.png



可以看到SELinux在開啟狀態(tài)下訪問正常。


5.4 建立別名


什么是別名?就是在本地建立文件夾和網站根目錄,不直接把index.html創(chuàng)建到/var/www/html文件夾中,如下操作:


5.4.1 創(chuàng)建文件夾


mkdir /local


5.4.2 創(chuàng)建測試頁


echo 'HTML LOCAL TEST SELinux!' > /local/index.html


5.4.3 創(chuàng)建軟鏈接


ln -s /local /var/www/html/local


5.4.4 重啟Apache測試


注意是在SELinux開啟的情況下。

重啟Apache:


systemctl restart httpd

網頁測試:


訪問被拒絕。


image.png

5.4.5 關閉SELinux再測試


setenforce 0

網頁測試:

訪問正常。


image.png

6. 配置SELinux文件上下文


我們還是有Apache為例,接著第5點繼續(xù)操作。


6.1 查看上下文

6.1.1 查看Apache默認文件上下文


ls -lZ /var/www/html/index.html

image.png



上下文屬性為:httpd_sys_content_t


6.1.2 查看軟鏈接的文件上下文


ls -lZ /var/www/html/local/index.html

image.png

上下文屬性為:default_t


6.1.3 區(qū)別


可以清楚的看到,Apache默認的文件目錄上下文是httpd_sys_content_t,而在系統(tǒng)本地新建文件目錄的上下文是default_t。


6.2 修改上下文


方法一:


chcon -R -t httpd_sys_content_t /local
或是
chcon -R --reference /var/www/html /local


說明:

-R:遞歸的意思
-t:類型
httpd_sys_content_t:在SELinux中代表Apache目錄的類型,所以要設置成這個
--reference:參數(shù)一個目錄設置另一個目錄的類型


注意,以上兩種方式都是臨時修改,重啟服務器后會失效,我們需要的是永久生效,把配置寫入內核,需要使用到semanage命令工具。需要先安裝一下:


安裝:

yum install policycoreutils-python


配置:

semanage fcontext -a -t httpd_sys_content_t "/local(/.*)?"
restorecon -R -v -F /local #刷新完才能生效


說明:

-R:遞歸的意思
-v:可視化
-F:強制


7. 測試SELinux基于端口上下文


在第6節(jié)中配置完了文件級別的SELinux配置,接下來我們再說一下基于端口的上下文。


7.1 創(chuàng)建測試頁


echo 'HTML TEST PORT 80 !' > /var/www/html/index.html
mkdir /var/www/8899
echo 'HTML TEST PORT 8899 !' > /var/www/8899/index.html


7.2 配置Apache虛擬主機


vi /etc/httpd/conf.d/0.conf


<virtualhost 192.168.64.138:80>  
   servername 192.168.64.138
   
   documentroot /var/www/html
</virtualhost>


vi /etc/httpd/conf.d/8899.conf
<virtualhost 192.168.64.138:8899>    
   servername 192.168.64.138
   
   documentroot /var/www/8899
</virtualhost>


vi /etc/httpd/conf/httpd.conf
#增加一個監(jiān)聽端口8899
Listen 8899


7.3 配置防火墻


firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8899/tcp
firewall-cmd --reload


7.4 查看SELinux端口上下文


semanage port -l | grep http

image.png


我們自定義的8899端口默認不是SELinux端口上下文中。


7.5 配置SELinux端口上下文


semanage port -a -t http_port_t -p tcp 8899


7.6 重啟Apache測試


在沒有配置SELinux之前(7.5小節(jié))是無法重啟的HTTP服務,可以自行測試一下。

systemctl restart httpd


測試80端口:

image.png


測試8899端口:

image.png


8. 總結


到此,SELinux基本的配置及使用就差不多了,更多的配置在用到時再使用。

SELinux日志默認存儲文件:/var/log/audit/audit.log;


藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,也可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。更多技術知識,藍隊云期待與你一起探索,助力你在 Linux 運維之路上穩(wěn)步前行。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: