日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久亚洲一区二区三区 | 可以免费看毛片的网站 | 综合天天| 天天操天天操天天操天天操 | 国产1区在线观看 | 超碰中文字幕 | 日本a级网站| 亚洲精品影视 | 欧美乱妇狂野欧美视频 | 女人舌吻男人茎视频 | 伊人免费在线观看高清版 | 国产精品九色 | 欧美专区在线 | 国产不卡av在线 | 少女情窦初开的第4集在线观看 | 日韩第九页 | 日韩二区三区四区 | 日本一级大毛片a一 | 少妇一夜三次一区二区 | 手机看片福利久久 | 国产视频三区 | 午夜激情电影在线观看 | 人妖交videohd另类 | 内射国产内射夫妻免费频道 | 骚av在线 | 精品人伦一区二区三区 | 91精品国产色综合久久不卡蜜臀 | 在线一二三区 | 九九影院最新理论片 | 性一区| 激情三区| 欧美一区二区三区免费视频 | 精品啪啪 | 国产爽爽爽 | 日本中文字幕影院 | 国产精品久久久影院 | 久久少妇视频 | 伊甸园精品区 | 欧美一级做性受免费大片免费 | wwwwww在线观看 | 国产精品理论片 | 黄色理论视频 | 亚洲欧美精品一区二区 | 国产欧美日韩 | 国产欧美一区二区三区视频在线观看 | 日韩av在线不卡 | 性欧美在线视频 | 欧美日韩少妇 | 日本成人三级电影 | 爱视频福利网 | 久久香蕉精品视频 | 九九热播视频 | 免费观看毛片网站 | 天天色天天射综合网 | 中文字幕在线观看视频一区 | 欧美日韩一区二区三区在线视频 | 麻豆tv在线 | 亚洲日本不卡 | 凹凸国产熟女精品视频 | 精品人妻一区二区三区蜜桃 | 精品乱码一区二区三区四区 | www.香蕉视频在线观看 | 国产精品一区二区黑人巨大 | 日韩欧美在线一区二区三区 | 在线免费看黄网站 | 一本色道久久hezyo无码 | 免费成年人视频在线观看 | 中国精品视频 | 日韩欧美操| 亚洲深夜视频 | 91亚洲国产成人久久精品麻豆 | 樱花视频在线观看 | 色多多视频在线观看 | 中文字幕在线播出 | 国产123区在线观看 91国产一区二区 | 亚洲精品久久一区二区三区777 | 欧美日韩经典 | 情欲超| 国产精品一 | 中国黄色一级视频 | 一级肉体全黄毛片 | 久久综合久久综合久久 | 欧美xx视频 | 亚洲中字幕| 97午夜| 久久九九国产视频 | 亚洲深爱 | 夜间福利在线 | av影院在线 | 欧美日韩激情一区二区 | 精精国产xxxx视频在线 | 午夜国产| 国产在线国偷精品免费看 | 99久久国产视频 | 日本h片在线观看 | 欧美一区二区福利视频 | 伊人久艹 | 韩国黄色网址 | av在线手机版 |