溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

SELinux的知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-12-17 09:50:43 來(lái)源:億速云 閱讀:131 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“SELinux的知識(shí)點(diǎn)有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“SELinux的知識(shí)點(diǎn)有哪些”吧!

     SELinux是「Security-Enhanced Linux」的簡(jiǎn)稱(chēng),是美國(guó)國(guó)家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)開(kāi)發(fā)的 Linux的一個(gè)擴(kuò)張強(qiáng)制訪問(wèn)控制安全模塊。

     因?yàn)槠髽I(yè)的業(yè)務(wù)平臺(tái)的服務(wù)器上存儲(chǔ)著大量的商務(wù)機(jī)密,個(gè)人資料,個(gè)人資料它直接關(guān)系到個(gè)人的隱私問(wèn)題。特別是政府的網(wǎng)站,作為信息公開(kāi)的平臺(tái),它的安全就更顯得重要了。

     這些連到互聯(lián)網(wǎng)的服務(wù)器,不可避免的要受到來(lái)自世界各地的各種威脅。最壞的時(shí)候我們的服務(wù)器被入侵,主頁(yè)文件被替換,機(jī)密文件被盜走。除了來(lái)自外部的威脅外,內(nèi)部人員的不法訪問(wèn),攻擊也是不可忽視的。對(duì)于這些攻擊或者說(shuō)是威脅,當(dāng)然有很多的辦法,有防火墻,入侵檢測(cè)系統(tǒng),打補(bǔ)丁等等。

       Linux也和其他的商用UNIX一樣,不斷有各類(lèi)的安全漏洞被發(fā)現(xiàn)。

傳統(tǒng)的Linux OS的不足之處:


         雖然Linux 比起 Windows 來(lái)說(shuō),它的可靠性,穩(wěn)定定要好得多,但是他也是和其他的UNIX 一樣,有以下這些不足之處。
1)存在特權(quán)用戶(hù)root
任何人只要得到root的權(quán)限,對(duì)于整個(gè)系統(tǒng)都可以為所欲為。這一點(diǎn)Windows也一樣。


2)對(duì)于文件的訪問(wèn)權(quán)的劃分不夠細(xì)
在linux系統(tǒng)里,對(duì)于文件的操作,只有「所有者」,「所有組」,「其他」這3類(lèi)的劃分。對(duì)于「其他」這一類(lèi)里的用戶(hù)再細(xì)細(xì)的劃分的話(huà)就沒(méi)有辦法了。


3)SUID程序的權(quán)限升級(jí)
如果設(shè)置了SUID權(quán)限的程序有了漏洞的話(huà),很容易被攻擊者所利用。


4)DAC (Discretionary Access Control)問(wèn)題
文件目錄的所有者可以對(duì)文件進(jìn)行所有的操作,這給系統(tǒng)整體的管理帶來(lái)不便。

      對(duì)于以上這些的不足,防火墻,入侵檢測(cè)系統(tǒng)都是無(wú)能為力的。


       DAC(Discretionary access control,自主訪問(wèn)控制):
DAC機(jī)制就是指對(duì)象(比如程序、文件或進(jìn)程等)的的擁有者可以任意的修改或授予此對(duì)象相應(yīng)的權(quán)限。例如傳統(tǒng)Linux,Windows等。


      MAC(Mandatory Access Control,強(qiáng)制訪問(wèn)控制):
MAC機(jī)制是指系統(tǒng)不再允許對(duì)象(比如程序、文件或文件夾等)的擁有者隨意修改或授予此對(duì)象相應(yīng)的權(quán)限,而是透過(guò)強(qiáng)制的方式為每個(gè)對(duì)象統(tǒng)一授予權(quán)限,例如SELinux。

SELinux的優(yōu)點(diǎn)
SELinux系統(tǒng)比起通常的Linux系統(tǒng)來(lái),安全性能要高的多,它通過(guò)對(duì)于用戶(hù),進(jìn)程權(quán)限的最小化,即使受到攻擊,進(jìn)程或者用戶(hù)權(quán)限被奪去,也不會(huì)對(duì)整個(gè)系統(tǒng)造成重大影響。

      在標(biāo)準(zhǔn)Linux中,主體的訪問(wèn)控制屬性是與進(jìn)程通過(guò)在內(nèi)核中的進(jìn)程結(jié)構(gòu)關(guān)聯(lián)的真實(shí)有效的用戶(hù)和組ID,這些屬性通過(guò)內(nèi)核利用大量工具進(jìn)行保護(hù),包括登陸進(jìn)程和setuid程序,對(duì)于文件,文件的inode包括一套訪問(wèn)模式位、文件用戶(hù)和組ID。

    以前的訪問(wèn)控制基于讀/寫(xiě)/執(zhí)行這三個(gè)控制位,文件所有者、文件所有者所屬組、其他人各一套。在SELinux中,訪問(wèn)控制屬性總是安全上下文三人組形式,所有文件和主體都有一個(gè)關(guān)聯(lián)的安全上下文,標(biāo)準(zhǔn)Linux使用進(jìn)程用戶(hù)/組ID,文件的訪問(wèn)模式,文件用戶(hù)/組ID要么可以訪問(wèn)要么被拒絕,SELinux使用進(jìn)程和客體的安全上下文,需要特別指出的是,因?yàn)镾ELinux的主要訪問(wèn)控制特性是類(lèi)型強(qiáng)制,安全上下文中的類(lèi)型標(biāo)識(shí)符決定了訪問(wèn)權(quán)。

   若要訪問(wèn)文件,必須同時(shí)具有普通訪問(wèn)權(quán)限和SELinux訪問(wèn)權(quán)限。因此即使以超級(jí)用戶(hù)身份root運(yùn)行進(jìn)程,根據(jù)進(jìn)程以及文件或資源的SELinux安全性上下文可能拒絕訪問(wèn)文件或資源。


一、使用SELinux保護(hù)網(wǎng)絡(luò)服務(wù)  
====顯示和設(shè)置SELinux模式====
[root@tianyun ~]# vim /etc/sysconfig/selinux //強(qiáng)模式制 許可模式 禁用模式
[root@tianyun ~]# getenforce   //查看當(dāng)前SElinux的狀態(tài)
[root@tianyun ~]# setenforce //可以在強(qiáng)模式制 許可模式之間切換
[root@tianyun ~]# sestatus //列出目錄SELinux使用的策略(Policy)


文件上下文 FILE CONTEXTS:
====顯示和設(shè)置SELinux文件、進(jìn)程等的上下文====
[root@tianyun ~]# ps auxZ //查看進(jìn)程的SELinux安全上下文
[root@tianyun ~]# ps -ZC httpd
[root@tianyun ~]# ls -Zd /home //查看文件的SELinux安全上下文
[root@tianyun ~]# ls -Zd /var/www

====修改文件SELinux上下文====
方法一:chcon
[root@tianyun ~]# chcon -R -t httpd_sys_content_t /virtual
[root@tianyun ~]# chcon -R --reference /var/www/html /vritual
方法二:semanage fcontext
[root@tianyun ~]# yum provides */semanage
[root@tianyun ~]# yum -y install policycoreutils policycoreutils-pythons

讓 Apache 可以訪問(wèn)位于非默認(rèn)目錄下的網(wǎng)站文件
首先,用 semanage fcontext -l | grep '/var/www' 獲知默認(rèn) /var/www 目錄的 SELinux 上下文:
/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0


從中可以看到 Apache 只能訪問(wèn)包含 httpd_sys_content_t 標(biāo)簽的文件。
假設(shè)希望 Apache 使用 /srv/www 作為網(wǎng)站文件目錄,那么就需要給這個(gè)目錄下的文件增加 httpd_sys_content_t 標(biāo)簽,分兩步實(shí)現(xiàn)。


    首先為 /srv/www 這個(gè)目錄下的文件添加默認(rèn)標(biāo)簽類(lèi)型:semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?' 然后用新的標(biāo)簽類(lèi)型標(biāo)注已有文件:restorecon -Rv /srv/www 之后 Apache 就可以使用該目錄下的文件構(gòu)建網(wǎng)站了。


    其中 restorecon 在 SELinux 管理中很常見(jiàn),起到恢復(fù)文件默認(rèn)標(biāo)簽的作用。比如當(dāng)從用戶(hù)主目錄下將某個(gè)文件復(fù)制到 Apache 網(wǎng)站目錄下時(shí),Apache 默認(rèn)是無(wú)法訪問(wèn),因?yàn)橛脩?hù)主目錄的下的文件標(biāo)簽是 user_home_t。

    此時(shí)就需要 restorecon 將其恢復(fù)為可被 Apache 訪問(wèn)的 httpd_sys_content_t 類(lèi)型:


[root@tianyun ~]# semanage fcontext -a -t httpd_sys_content_t "/web2" //針對(duì)目錄
[root@tianyun ~]# semanage fcontext -a -t httpd_sys_content_t "/web2(/.*)?" //針對(duì)目錄及目錄下的所有文件
[root@tianyun ~]# semanage fcontext -a -t httpd_sys_content_t "/web2/file4" //針對(duì)文件
[root@tianyun ~]# semanage fcontext -a -t httpd_sys_content_t "/web2/index\.txt" //針對(duì)文件

1. cp、mv對(duì)上下文的影響
[root@tianyun ~]# touch /tmp/file1 /tmp/file2
[root@tianyun ~]# cp /tmp/file1 /var/www/html
[root@tianyun ~]# mv /tmp/file2 /var/www/html
[root@tianyun ~]# ls -Z /var/www/html/file*
[root@tianyun ~]# semanage fcontext -l |grep ^/var/www
[root@tianyun ~]# restorecon -Rv /var/www

2.針對(duì)新目錄添加上下文
[root@tianyun ~]# mkdir /virtual
[root@tianyun ~]# touch /virtual/index.html
[root@tianyun ~]# ls -Zd /virtual
[root@tianyun ~]# semanage fcontext -a -t httpd_sys_content_t ‘/virtual(/.*)?’
[root@tianyun ~]# restorecon -RFvv /virtual


除此之外我們還可以使用man來(lái)得到幫助 man -k http| grep selinux


SELinux布爾值
====通過(guò)SELinux布爾值調(diào)整策略行為====
SELinux布爾值是更改SELinux策略行為的開(kāi)關(guān)
man -k ‘_selinux’
cd /selinux/booleans 相當(dāng)于變量
getsebool -a |grep httpd 用于顯示布爾值
setsebool 用于修改布爾值
setsebool -P 修改SELinux策略,以永久保留修改
semanage boolean -l |grep httpd_enable_homedirs 顯示布爾值是否永久

二.
監(jiān)控SELinux策略沖突情況
部署SELinux日志分析工具
必須安裝setroubleshoot-server軟件包,才能將SELinux消息發(fā)送至/var/log/messages
setroubleshoot-server偵聽(tīng)/var/log/audit/audit.log中的審核信息并將簡(jiǎn)短摘要發(fā)送至/var/log/messages
該摘要包括SELinux沖突的唯一標(biāo)識(shí)符(UUIDs),可用于收集更多信息

[root@tianyun ~]# yum -y install setroubleshoot setroubleshoot-server
[root@tianyun ~]# service rsyslog restart; chkconfig rsyslog on
[root@tianyun ~]# service auditd restart; chkconfig auditd on


1.在開(kāi)啟SElinux時(shí),使用匿名用戶(hù)訪問(wèn)ftp,并在upload目錄下上傳一個(gè)文件
在vsftpd.conf配置ftp匿名用戶(hù)可寫(xiě)
anonymous_enable
anon_upload_enable
anon_other_write_enable
anon_mkdir_write_enable

 使用robin用戶(hù)訪問(wèn)自己的家目錄 并且可以上傳

2.搭建samba服務(wù)器,自定義文件夾/share,使用samba共享,允許user1 user2 用戶(hù) rw訪問(wèn) /share,允許user1通過(guò)samba訪問(wèn)自己家目錄

到此,相信大家對(duì)“SELinux的知識(shí)點(diǎn)有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI