国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SELinux 入門 pt.1

這篇具有很好參考價值的文章主要介紹了SELinux 入門 pt.1。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

哈嘍大家好,我是咸魚

文章《SELinux 導致 Keepalived 檢測腳本無法執(zhí)行》以【keepalived 無法執(zhí)行檢測腳本】為案例向大家簡單介紹了關于 SELinux 的一些概念

比如說什么是自主訪問控制 DAC 和 強制訪問控制 MAC;SELinux 安全上下文的概念等等

那么今天咸魚將單獨寫一篇文章向大家專門介紹一下 SELinux

初識 SELinux

SELinux(Security Enhanced Linux,安全增強型 Linux),這玩意由美國國家安全局(NSA)利用 Linux 安全模塊(LSM)開發(fā)而成

安全增強型 Linux,看名字就感覺是跟安全相關的。 SELinux 是 Linux 內(nèi)核中的一個模塊,用來解決進程與文件資源之間權限相關的一些問題

提到進程與文件資源之間的權限問題,我們腦子里首先想到的應該就是 rwx 權限了吧

  • 自主訪問控制(Discretionary Access Control, DAC)

在傳統(tǒng)的 UNIX 類系統(tǒng)中,文件資源都與特定的用戶和群組相關聯(lián),并且訪問權限通過 rwx 來控制
SELinux 入門 pt.1

普通用戶想要去讀寫系統(tǒng)中的文件資源受限于其所屬的用戶和群組的 rwx 權限

對于 root 用戶來說rwx權限設置是無效的,因為 root 用戶擁有完全訪問控制權

比如說某個進程想要對文件進行讀寫時,系統(tǒng)就會根據(jù)該進程的屬主和屬組去比對文件權限,只有通過權限檢查才能進一步操作

這種權限控制方式被稱為自主訪問控制(Discretionary Access Control, DAC)

DAC 是 Linux 操作系統(tǒng)中的一種基本權限控制機制,用于限制用戶對系統(tǒng)資源的訪問權限

但是后面大家發(fā)現(xiàn) DAC 有許多不足之處:比如說 root 的權限太高了,如果某個惡意進程拿到了 root 權限,那么將是一件很可怕的事情

又或者不小心把某一個文件的權限設置成了 777,那么這個文件就會被任何人任何進程操作

為了彌補 DAC 的一些不足之處,MAC 模型隨之誕生

  • 強制訪問控制(MAC,Mandatory Access Control)

MAC 是 Linux 操作系統(tǒng)中一種更加嚴格和細粒度的訪問控制機制,用于加強對系統(tǒng)資源的保護和控制

它有趣的地方在于可以針對特定的進程與特定的文件資源來管理權限,不僅考慮了前面 DAC 機制中的 rwx 權限、還考慮了更多因素(例如安全策略和標簽)

即使你是 root 用戶,在使用不同的進程時你所能獲取的權限也不一定是 root

SELinux 引用了 MAC ,每個進程和系統(tǒng)資源都有一個特殊的安全性標簽,稱為 SELinux 上下文(context)

依據(jù)這個安全上下文,SELinux 制定了一系列規(guī)則,用來限制進程之間如何互相交互以及如何與各類系統(tǒng)資源交互

SELinux 的規(guī)則能夠精細到是否允許特定用戶或進程訪問特定資源

舉個例子:

使用 SELinux時,httpd 進程能夠訪問 /var/www/html/ ,但是不允許訪問 /tmp/var/tmp/ 中的文件

即使你的 web 服務器被攻擊,黑客控制了 httpd 進程,就算擁有 root 權限也無法訪問 /tmp/var/tmp/ 中的文件

SELinux 入門 pt.1
需要注意的是:

  • 對于受 SELinux 管制的進程,會先檢查 SELinux 策略規(guī)則,然后再檢查 DAC 規(guī)則
  • 對于不受 SELinux 管制的進程,仍然會執(zhí)行 DAC 規(guī)則
  • 如何看一個進程受不受 SELinux 管制,看它的安全上下文

基礎概念

我們知道,SELinux 通過 MAC 的方式來管理進程或用戶的權限

即 SELinux 控制的主體是【進程】或【用戶】,而【目標】則是該進程或用戶能否訪問的文件資源

  • 主體(subject):SELinux 主要管理的就是進程,一般代指進程
  • 目標(object):主體能否訪問的目標,一般代指文件資源
  • 策略(policy):SELinux 根據(jù)特定的服務或應用程序來制定基本的安全策略,以控制進程對文件資源的讀寫訪問;每一個策略都由許多規(guī)則組成

關于 SELinux 策略,以 CentOS 7.x 為例:

  1. targeted:針對網(wǎng)絡服務限制較多,本機限制較少。默認的策略
  2. minimum:由 target 自定義而來,僅針對選擇的進程來保護
  3. mls:完整的 SELinux 限制,限制嚴格

/etc/selinux/config

# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.

安全上下文

我們知道,每個主體進程和目標資源都有一個安全標簽,稱為 SELinux 安全上下文(Security Context)

SELinux 會根據(jù)主體的安全上下文以及目標的安全上下文來決定是否允許主體訪問目標,以及允許何種類型的訪問

即主體與目標的安全上下文必須一致才能夠順利讀寫,有點像 DAC 中的 rwx 權限
SELinux 入門 pt.1

安全上下文存放在文件的 inode 內(nèi),可以通過下面的命令去查看(需要先開啟 SELinux)

# 查看目錄下文件的安全上下文
[root@minion2 ~]# ll -Z
... unconfined_u:object_r:admin_home_t:s0 文件1
... system_u:object_r:admin_home_t:s0 文件2
... unconfined_u:object_r:admin_home_t:s0 文件3

unconfined_u:object_r:admin_home_t 為例,可以看到安全上下文主要用冒號分割了三個字段,分別代表三個主要類型

User(用戶)

在 SELinux 中,身份是指操作系統(tǒng)中的用戶(User)。每個 user 都有一個唯一的身份標識

不同的 user 可以被分配不同的角色(role)和類型(type),以控制他們對系統(tǒng)資源的訪問

比如 unconfined_u(不受限的用戶)表示該文件來自于不受限(不受 SELinux 限制)的用戶

一般來講默認的 bash 環(huán)境是不受 SELinux 管制的,所以 bash 進程產(chǎn)生的文件 user 大多數(shù)為 unconfined_u 不受限用戶

比如 system_u ,如果是網(wǎng)絡服務所產(chǎn)生或系統(tǒng)服務運行過程中產(chǎn)生的文件,那 user 大部分就是 system_u

role(角色)

角色是 SELinux 中的一個概念,用于定義用戶在系統(tǒng)中的角色或角色組

role 可以幫助限制 user 的行為,使其在不同的角色下有不同的權限

通過 role ,就可以知道這個數(shù)據(jù)是屬于進程還是文件資源,_r 表示 role

  1. object_r(文件或目錄)

  2. system_r(進程)

type(類型)

type 是 SELinux 中非常重要的一個概念,它用于對文件、進程等資源進行分類,每個文件、進程都被賦予一個唯一的 type 標識

type 定義了資源可以被哪些進程和用戶訪問,以及資源可以訪問哪些其他資源

這種基于類型的訪問控制使得即使用戶有相同的權限,但只有在特定的 type 下才能進行訪問,從而增強了系統(tǒng)的安全性

type 在文件與進程方面的定義有一些區(qū)別:

1)type:在文件資源(Object)上面稱為類型(type)

2)domain:在主體進程(Subject)上面稱為域(domain)

typedomain 需要相互適配,該進程才能夠順利讀取文件資源

crond 為例,先看下 crond 進程的安全上下文內(nèi)容

# 可以看到 crond 進程的 type(即 domain) 為 crond_t
[root@localhost ~]# ps -eZ | grep crond
system_u:system_r:crond_t:s0-s0:c0.c1023 681 ?  00:00:00 crond
system_u:system_r:crond_t:s0-s0:c0.c1023 688 ?  00:00:00 atd

再來看下 crond 的執(zhí)行文件、配置文件等安全上下文內(nèi)容

# 可以看到文件資源的 type 為 crond_exec_t、system_cron_spool_t
[root@localhost ~]# ll -Zd /usr/sbin/crond /etc/crontab /etc/cron.d
drwxr-xr-x. root root system_u:object_r:system_cron_spool_t:s0 /etc/cron.d
-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 /etc/crontab
-rwxr-xr-x. root root system_u:object_r:crond_exec_t:s0 /usr/sbin/crond

當我們執(zhí)行 /usr/sbin/crond 之后,這個進程的 domain 類型是 crond_t,能夠讀取的配置文件則為 system_cron_spool_t 這種類型

如果配置文件的 type 不是 system_cron_spool_t ,就算進程擁有 rwx 權限也無法讀取
SELinux 入門 pt.1

總結

最后總結一下,SELinux 基于 MAC 模型進一步更加嚴格和細分地對進程與資源之間的權限進行控制,用于加強對系統(tǒng)資源的保護

在 SELinux 中,有三個重要的概念:

  • 主體(subject):SELinux 主要管理的就是進程,一般代指進程
  • 目標(object):主體能否訪問的目標,一般代指文件資源
  • 策略(policy):SELinux 根據(jù)特定的服務或應用程序來制定基本的安全策略,以控制進程對文件資源的讀寫訪問;每一個策略都由許多規(guī)則組成

SELinux 控制的主體是【進程】或【用戶】,而【目標】則是該進程或用戶能否訪問的文件資源

SELinux 為每個主體進程和目標資源都打上一個安全標簽,稱為 SELinux 安全上下文(Security Context),它會根據(jù)主體的安全上下文以及目標的安全上下文來決定是否允許主體訪問目標,以及允許何種類型的訪問

即主體與目標的安全上下文必須一致才能夠順利讀寫,有點像 DAC 中的 rwx 權限文章來源地址http://www.zghlxwxcb.cn/news/detail-662609.html

到了這里,關于SELinux 入門 pt.1的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 安卓協(xié)議逆向 咸魚 frida rpc 調用方案

    安卓協(xié)議逆向 咸魚 frida rpc 調用方案

    通過frida rpc調用真機獲取指定的搜索結果數(shù)據(jù)。 本文僅供大家學習及研究使用、切勿用于各種非法用途。 frida 提供了一種跨平臺的 rpc (遠程過程調用)機制,通過 frida rpc 可以在主機和目標設備之間進行通信,并在目標設備上執(zhí)行代碼,可實現(xiàn)功能如下: 1、動態(tài)地

    2024年02月07日
    瀏覽(39)
  • 咸魚之王小游戲PC版鼠標模擬器實現(xiàn)

    最近朋友在玩咸魚之王小游戲,用電腦掛機,由于火把缺乏,我看他經(jīng)常瘋狂的點鼠標攻擊敵人。 我:\\\"你為什么不用鼠標模擬器去點?\\\" 朋友:\\\"鼠標模擬器點也不能干其他的事情,鼠標必須放到游戲窗口才行。\\\", 我:\\\"我?guī)湍愫唵螌崿F(xiàn)個鼠標模擬器吧\\\" ?總結 其實原理很簡單

    2024年02月12日
    瀏覽(113)
  • 【postgresql 基礎入門】pgAdmin4 最新圖形化客戶端的安裝使用,值得推薦的數(shù)據(jù)庫開發(fā)工具,還有大家喜歡的暗黑主題

    【postgresql 基礎入門】pgAdmin4 最新圖形化客戶端的安裝使用,值得推薦的數(shù)據(jù)庫開發(fā)工具,還有大家喜歡的暗黑主題

    ? 專欄內(nèi)容 : postgresql內(nèi)核源碼分析 手寫數(shù)據(jù)庫toadb 并發(fā)編程 ? 開源貢獻 : toadb開源庫 個人主頁 :我的主頁 管理社區(qū) :開源數(shù)據(jù)庫 座右銘:天行健,君子以自強不息;地勢坤,君子以厚德載物. 入門準備 postgrersql基礎架構 快速使用 初始化集群 數(shù)據(jù)庫服務管理 psql客戶

    2024年02月07日
    瀏覽(49)
  • 一篇文章完成Hbase入門

    一篇文章完成Hbase入門

    HBase是一種分布式、可擴展、支持海量數(shù)據(jù)存儲的NoSQL數(shù)據(jù)庫。 1、數(shù)據(jù)模型結構 邏輯上,HBase的數(shù)據(jù)模型同關系型數(shù)據(jù)庫很類似,數(shù)據(jù)存儲在一張表中,有行有列。但從HBase的底層物理存儲結構(K-V)來看,HBase更像是一個multi-dimensional map(多維地圖) HBase邏輯結構 2、物理存

    2024年01月16日
    瀏覽(21)
  • 區(qū)塊鏈入門系列文章—solidity中的HelloWord

    本系列教程將從零開始記入筆者學習區(qū)塊鏈的過程,歡迎批評指正。 Solidity 的代碼都涵蓋在智能合約里面. 一個智能合約就是以太坊應用的最小單元, 所有的變量和函數(shù)都屬于一個智能合約, 它是你所有應用的起點。 代碼如下(示例): pragma solidity ^0.4.19; 0.4.19代表的是你使

    2024年02月02日
    瀏覽(23)
  • 一篇文章帶你入門HBase

    本文已收錄至Github,推薦閱讀 ?? Java隨想錄 微信公眾號:Java隨想錄 目錄 HBase特性 Hadoop的限制 基本概念 NameSpace Table RowKey Column TimeStamp Cell 存儲結構 HBase 數(shù)據(jù)訪問形式 架構體系 HBase組件 HBase讀寫流程 讀流程 寫流程 MemStore Flush 參數(shù)說明 StoreFile Compaction 參數(shù)說明 觸發(fā)過程

    2024年02月08日
    瀏覽(41)
  • Google SEO入門教程,入門看這篇文章就行了

    Google SEO入門教程,入門看這篇文章就行了

    頁面 SEO 基礎知識 頁面搜索引擎優(yōu)化確保 Google 可以找到您的網(wǎng)頁,以便他們可以在搜索結果中顯示它們。它還涉及為您嘗試顯示的搜索詞組提供相關、詳細和有用的內(nèi)容。 具體來說,Google 會掃描您的網(wǎng)頁以查找特定的字詞和短語。 當它一遍又一遍地看到同一個詞時,谷歌

    2023年04月09日
    瀏覽(22)
  • FPGA入門有多難?這篇文章讓你吃透零基礎入門技巧!

    FPGA入門有多難?這篇文章讓你吃透零基礎入門技巧!

    FPGA是一個高度集成化的芯片,其學習過程既需要編程,又需要弄懂硬件電路和計算機架構。涉及到的知識和基礎非常多, 如果不合理地安排學習內(nèi)容,學習過程會非常漫長和枯燥 。這使很多想要學習FPGA小伙伴望而卻步,那么,**FPGA到底有多難入門?**今天移知教育小編就帶

    2024年02月04日
    瀏覽(25)
  • API 滲透測試從入門到精通系列文章(下)

    API 滲透測試從入門到精通系列文章(下)

    導語:在本系列文章的前面一部分我們從使用 Postman 開始,創(chuàng)建了集合和請求,并通過 Burp Suite 設置為了 Postman 的代理,這樣我們就可以使用 Burp 的模糊測試和請求篡改的功能。 在本系列文章的前面一部分我們從使用 Postman 開始,創(chuàng)建了集合和請求,并通過 Burp Suite 設置為了

    2024年02月03日
    瀏覽(20)
  • RabbitMQ入門到實戰(zhàn)一篇文章就夠了

    RabbitMQ入門到實戰(zhàn)一篇文章就夠了

    課程內(nèi)容 認識RabbitMQ 安裝RabbitMQ SpringBoot使用RabbitMQ 其他特性 1.RabbitMQ認識 1.1.RabbitMQ是什么 MQ全稱為Message Queue,即消息隊列. 它也是一個隊列,遵循FIFO原則 。RabbitMQ是由erlang語言開發(fā),基于AMQP(Advanced Message Queue Protocol高級消息隊列協(xié)議)協(xié)議實現(xiàn)的消息隊列,它是一種應用程

    2024年03月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包