S008SELinux的約束操作

約束(constraints),是SELinux很有用的特新,它的使用十分普遍。很多時(shí)候,用戶覺(jué)得約束是一種添加到黑名單上,并使其受限的方法。當(dāng)然前提是默認(rèn)允許,約束它告訴人們的是在指定情況下這是不允許的。但是在SELinux中,這種感覺(jué)是不準(zhǔn)確的。SELinux中,約束更像是過(guò)濾器,它遵循白名單的方法。SELinux中的約束(constraints)是在指定的情況下允許某些操作,不匹配要求的操作則被禁止。

但是話又說(shuō)回來(lái),如果沒(méi)有針對(duì)操作定義約束(constraints),SELinux是允許操作執(zhí)行的(當(dāng)然需通過(guò)其他檢查,比如類型強(qiáng)制規(guī)則)。
約束(constraints)和類型強(qiáng)制(TE)的區(qū)別

類型強(qiáng)制使用安全上下文中的類型字段(第三部分)。不同于類型強(qiáng)制,約束則在規(guī)則中使用整個(gè)上下文,比起域(domains)對(duì)于操作更加有針對(duì)性。比如以下例子:

CODE SELinux object identity change constraint

constrain dir_file_class_set{create relabelto relabelfrom}  
(  
        u1 == u2  
        or t1 ==can_change_object_identity  
);  

上面看到的是一條約束,它描述了如果兩個(gè)上下文中的SELinux部分一致(u1==u2)或者如果域被分配了can_change_object_identity屬性,則域可以創(chuàng)建、重打標(biāo)簽?zāi)夸浐臀募_@里的屬性可以使用seinfo工具進(jìn)行查詢:

user $seinfo -acan_change_object_identity –x  

如果不滿足這些限制,操作將會(huì)被拒絕。哪怕通過(guò)其他的類型強(qiáng)制規(guī)則明確運(yùn)行此操作。

SELinux中的約束

SELinux使用約束來(lái)修整它的策略。它的很多特性都是通過(guò)約束(constraints)來(lái)實(shí)現(xiàn)的,基于用戶訪問(wèn)控制(User-based access control)便是其中之一。MLS和MCS很多的規(guī)則也是通過(guò)約束來(lái)實(shí)現(xiàn)的。修改約束需要認(rèn)真斟酌。很多情況下,如果需要修改,它將會(huì)放入發(fā)布版本的基礎(chǔ)策略中一起構(gòu)建。
羅列約束

可以使用seinfo工具來(lái)顯示系統(tǒng)中的約束。但是它立刻返回的是完全展開(kāi)的輸出,使用的是數(shù)學(xué)表達(dá)式上的語(yǔ)法。如下所示:

user $seinfo --constrain  
constrain{ file } { create relabelfrom relabelto }  
(  u1 u2 == t1 { logrotate_t policykit_auth_t sysadm_t lvm_t rpm_t xdm_t krb5kdc_tnewrole_t portage_t  
local_login_trpm_script_t sysadm_passwd_t policykit_t portage_sandbox_t groupadd_t kpropd_tpasswd_t  
updpwd_tchfn_t cupsd_t gssd_t httpd_t slapd_t sshd_t udev_t virtd_t puppetmaster_trestorecond_t  
setfiles_tkadmind_t sulogin_t useradd_t } ==  || );  

需要記住

  1. 約束是SELinux策略中完整的部分
  2. 當(dāng)某些操作被拒絕時(shí),即使有相應(yīng)的TE規(guī)則也被拒絕。此時(shí)很有可能是約束的限制
  3. 約束使用白名單方法,滿足約束則被允許

參考鏈接

  1. SELinux/Tutorials/Putting constraints on operations
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容