日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

理解Linux下的SELinux(MAC)

發(fā)布時間:2025/3/15 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解Linux下的SELinux(MAC) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

理解Linux下的SELinux

長久以來,每當(dāng)遇到授權(quán)問題或者新安裝的主機,我的第一反應(yīng)是通過setenforce 0命令禁用SELinux,來減少產(chǎn)生的權(quán)限問題,但是這并不是一個良好的習(xí)慣。這篇文章嘗試對SELinux的基本概念和用法進行簡單介紹,并且提供一些更深入的資料。

Linux下默認的接入控制是DAC,其特點是資源的擁有者可以對他進行任何操作(讀、寫、執(zhí)行)。當(dāng)一個進程準(zhǔn)備操作資源時,Linux內(nèi)核會比較進程和資源的UID和GID,如果權(quán)限允許,就可以進行相應(yīng)的操作。此種方式往往會帶來一些問題,如果一個進程是以root的身份運行,也就意味著他能夠?qū)ο到y(tǒng)的任何資源進行操作,而且不被限制。 假如我們的軟件存在漏洞呢?這個往往是一個災(zāi)難性的問題。因此,就引出了另外的一種安全接入控制機制MAC,Linux下的一種現(xiàn)實是SELinux,也就是我們將要討論的內(nèi)容。

基本概念

Mandatory Access Control (MAC)

SELinux 屬于MAC的具體實現(xiàn),增強了Linux系統(tǒng)的安全性。MAC機制的特點在于,資源的擁有者,并不能決定誰可以接入到資源。具體決定是否可以接入到資源,是基于安全策略。而安全策略則是有一系列的接入規(guī)則組成,并僅有特定權(quán)限的用戶有權(quán)限操作安全策略。

一個簡單的例子,則是一個程序如果要寫入某個目錄下的文件,在寫入之前,一個特定的系統(tǒng)代碼,將會依據(jù)進程的Context和資源的Context查詢安全策略,并且根據(jù)安全策略決定是否允許寫入文件。

Flask Security Architecture

SELinux的軟件設(shè)計架構(gòu)是參照Flask,Flask是一種靈活的操作系統(tǒng)安全架構(gòu),并且在Fluke research operating system中得到了實現(xiàn)。Flask的主要特點是把安全策略執(zhí)行代碼和安全策略決策代碼,劃分成了兩個組件。安全策略決策代碼在Flask架構(gòu)中稱作Security Server。除了這兩個組件以外,另外一個組件Vector Cache(AVC), 主要提供策略決策結(jié)果的緩存,以此提高Security Server的性能。其具體執(zhí)行流程為,安全策略執(zhí)行代碼通過AVC查詢Security Server的安全策略決策結(jié)果,并將其緩存以備下次使用。

Linux Security Module

前面兩部分介紹了MAC機制和Flask架構(gòu),最終SELinux的實現(xiàn)是依賴于Linux提供的Linux Security Module框架簡稱為LSM。其實LSM的名字并不是特別準(zhǔn)確,因為他并不是Linux模塊,而是一些列的hook,同樣也不提供任何的安全機制。LSM的的重要目標(biāo)是提供對linux接入控制模塊的支持。

LSM 在內(nèi)核數(shù)據(jù)結(jié)構(gòu)中增加了安全字段,并且在重要的內(nèi)核代碼(系統(tǒng)調(diào)用)中增加了hook。可以在hook中注冊回調(diào)函數(shù)對安全字段進行管理,以及執(zhí)行接入控制。

SELinux

Security Enhanced Linux(SELinux) 為Linux 提供了一種增強的安全機制,其本質(zhì)就是回答了一個“Subject是否可以對Object做Action?”的問題,例如 Web服務(wù)可以寫入到用戶目錄下面的文件嗎?其中Web服務(wù)就是Subject而文件就是Object,寫入對應(yīng)的就是Action。

依照上面的例子,我們引入了幾個概念,分別是Subject、Object、Action、以及例子沒有體現(xiàn)出來的Context:

  • Subject: 在SELinux里指的就是進程,也就是操作的主體。
  • Object: 操作的目標(biāo)對象,例如 文件
  • Action: 對Object做的動作,例如 讀取、寫入或者執(zhí)行等等
  • Context: Subject和Object都有屬于自己的Context,也可以稱作為Label。Context有幾個部分組成,分別是SELinux User、SELinux Role、SELinux Type、SELinux Level,每個部分的具體含義,講在下一章介紹。

用戶程序執(zhí)行的系統(tǒng)調(diào)用(例如讀取文件),都要被SELinux依據(jù)安全策略進行檢查。如果安全策略允許操作,則繼續(xù),否則將會拋出錯誤信息給應(yīng)用程序。SELinux決策的同時還需要Subject和Object的Context信息,確定所屬的User、Role和Type等信息,以此查詢對應(yīng)的安全策略進行決策。SELinux同樣也使用了AVC機制用于緩存決策結(jié)果,以此來提高性能。

SELinux Context

進程和文件都有屬于自己的Context信息,Context分為幾個部分,分別是 SELinux User、Role、Type 和一個可選的Level信息。SELinux在運行過程中將使用這些信息查詢安全策略進行決策。

  • SELinux User:每一個Linux用戶都會映射到SELinux用戶,每一個SELinux User都會對應(yīng)相應(yīng)的Role。
  • SELinux Role:每個Role也對應(yīng)幾種SELinux Type,并且充當(dāng)了User和Type的‘中間人’
  • SELinux Type:安全策略使用SELinux Type制定規(guī)則,定義何種Domian(Type)的Subject,可以接入何種Type的Object。

顯示進程的Context

~]# ps -Z LABEL PID TTY TIME CMD unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 9509 pts/1 00:00:00 sudo unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 9515 pts/1 00:00:00 su unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 9516 pts/1 00:00:00 bash unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 9544 pts/1 00:00:00 ps

顯示文件的Context信息

~]# ls -Z system_u:object_r:admin_home_t:s0 anaconda-ks.cfg

臨時修改文件的SELinux Type 為htttpd_sys_content_t

~]# chcon -t httpd_sys_content_t file-name

SELinux 的運行狀態(tài)

SELinux 有三個運行狀態(tài),分別是disabled, permissive 和 enforcing

  • Disable: 禁用SELinux,不會給任何新資源打Label,如果重新啟用的話,將會給資源重新打上Lable,過程會比較緩慢。
  • Permissive:如果違反安全策略,并不會真正的執(zhí)行拒絕操作,替代的方式是記錄一條log信息。
  • Enforcing: 默認模式,SELinux的正常狀態(tài),會實際禁用違反策略的操作

查看當(dāng)前的運行狀態(tài)

~]# getenforce Enforcing

臨時改變運行狀態(tài)為Permissive

~]# setenforce 0 ~]# getenforce Permissive

臨時改變運行狀態(tài)為 Enforcing

~]# setenforce 1 ~]# getenforce Enforcing

使用 sestatus 可以查看完整的狀態(tài)信息

~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 30

SELinux Log

SELinux 的Log日志默認記錄在/var/log/audit/audit.log

~]# cat /var/log/audit/audit.log type=AVC msg=audit(1223024155.684:49): avc: denied { getattr } for pid=2000 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=399185 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=file

/var/log/message?也會記錄相應(yīng)的信息,例如:

May 7 18:55:56 localhost setroubleshoot: SELinux is preventing httpd (httpd_t) "getattr" to /var/www/html/file1 (samba_share_t). For complete SELinux messages. run sealert -l de7e30d6-5488-466d-a606-92c9f40d316d

SELinux 配置文件

SELinux的配置文件位于/etc/selinux/config。默認配置文件主要兩部分,一個是SELinux的運行狀態(tài)和SELinuxType。直接在配置文件中修改SELinux將會在下次啟動時生效。

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

SELinux Booleans

Booleans允許在運行時修改SELinux安全策略。

列出所有的Booleans選項

~]# semanage boolean -l SELinux boolean State Default Descriptionsmartmon_3ware (off , off) Determine whether smartmon can... mpd_enable_homedirs (off , off) Determine whether mpd can traverse...

臨時修改httpd_can_network_connect_db狀態(tài)為開啟

~]# setsebool httpd_can_network_connect_db on

深入研究

Basic and advanced configuration of Security-Enhanced Linux (SELinux)

Linux Security Module Framework

The Flask Security Architecture: System Support for Diverse Security Policies

SELinux coloring book

SELinux Notebook

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的理解Linux下的SELinux(MAC)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区网站 | 久久久久看片 | 影音先锋资源av | 日本少妇做爰全过程毛片 | 东京久久 | 男女爱爱网站 | 免费观看一级黄色片 | 麻豆视频免费网站 | 美女户外露出 | 无码一区二区三区免费视频 | 日本少妇videos高潮 | 欧美日韩国产一区二区三区在线观看 | 亚洲污污视频 | 亚洲精品高潮久久久久久久 | 日日干综合 | 亚洲黄色一级大片 | 拍摄av现场失控高潮数次 | 中文字幕在线观看第一页 | 日韩欧美国产中文字幕 | 男女午夜视频在线观看 | 日韩亚洲天堂 | 美女视频一区二区三区 | 一级特黄特色的免费大片视频 | 露脸啪啪清纯大学生美女 | 欧美日韩成人在线播放 | 国产精品久久久久电影 | 图书馆的女友在线观看 | 久久久久免费精品 | 伊人蕉| 欧美人与性动交g欧美精器 国产在线视频91 | 久久精品视频1 | 6080午夜伦理 | 一区二区视频在线观看免费 | aaa在线| 空姐吹箫视频大全 | 国产亚洲精品熟女国产成人 | 精品久久久久久无码中文野结衣 | 91成年版 | 男人操女人动漫 | 久久密桃 | 自拍偷拍p| 久久婷婷伊人 | 天天看片天天操 | 成人在线观看18 | 国产精品815.cc红桃 | 日韩图色| 久操社区| 男人和女人日批 | 青青在线视频观看 | 99碰碰| 日韩av一区二区三区四区 | 日本欧美久久久久免费播放网 | 麻豆一区二区 | 青青草在线免费视频 | 国产乱色精品成人免费视频 | 日韩日b | 国产成人一区二区三区 | 波多野结衣高清在线 | 调教驯服丰满美艳麻麻在线视频 | 中文字幕人妻一区二 | 91福利视频网站 | 亚洲天天在线 | 久久网免费视频 | 毛片视频观看 | 欧美激情精品久久久久久免费 | www.久久.com | 97欧美视频 | 免费一级欧美片在线播放 | aaa黄色一级片 | 一本在线免费视频 | 亚洲欧美日韩国产精品 | 久久97 | 欧美成人精品一区 | 天天干天天搞天天射 | 一起艹在线观看 | 99riav3国产精品视频 | 久久美女性网 | 亚洲天堂av片| 国产精品视频一 | 瑟瑟视频免费观看 | av成人天堂| 伊人青青久 | 亚洲精品久久久久久动漫器材一区 | 高清不卡一区二区三区 | 国产亚洲精品一区二区三区 | 999国产精品亚洲77777 | 亚洲精品日韩欧美 | 亚洲小视频在线播放 | 4虎tv| 成人福利视频导航 | 尤物视频官网 | 亚洲AV无码一区二区三区少妇 | 四虎新网站 | 狠狠操2019 | 日日影院| 特级西西444www大精品视频免费看 | 中文字幕一区二区在线视频 | 国产成人精品无码片区在线 | 青青草97 |