自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從原理到實踐:深入探索Linux安全機制

系統(tǒng) Linux
Linux 是一種開源的類Unix操作系統(tǒng)內(nèi)核,由Linus Torvalds在1991年首次發(fā)布,其后又衍生出許多不同的發(fā)行版(如Ubuntu、Debian、CentOS等)。

前言

本文將從用戶和權(quán)限管理、文件系統(tǒng)權(quán)限、SELinux、防火墻、加密和安全傳輸、漏洞管理和更新等幾個Linux安全機制中的重要方面,深入探索其工作原理和使用方法。在當今數(shù)字化時代,網(wǎng)絡(luò)安全問題備受關(guān)注,Linux作為廣泛應(yīng)用的操作系統(tǒng)之一,其安全性至關(guān)重要。無論你是Linux系統(tǒng)的初學(xué)者還是資深管理員,本文都將為你提供寶貴的經(jīng)驗和啟發(fā),幫助你在保護網(wǎng)絡(luò)安全的道路上行穩(wěn)致遠。

Linux

Linux 是一種開源的類Unix操作系統(tǒng)內(nèi)核,由Linus Torvalds在1991年首次發(fā)布,其后又衍生出許多不同的發(fā)行版(如Ubuntu、Debian、CentOS等)。Linux操作系統(tǒng)則是由Linux內(nèi)核與各種應(yīng)用程序、工具和庫組成的完整操作系統(tǒng),在其眾多的特性中,Linux以其穩(wěn)定性和安全性而聞名,這首先得益于開源社區(qū)的廣泛參與和持續(xù)改進,其次就是Linux優(yōu)秀的安全機制,這些保證了其能夠提供一個高度穩(wěn)定和安全的運行環(huán)境,事實上在服務(wù)器領(lǐng)域、嵌入式系統(tǒng)、超級計算機等多個領(lǐng)域也得到了廣泛應(yīng)用,并擁有龐大的用戶群體和開發(fā)者社區(qū)。

用戶和權(quán)限管理

Linux系統(tǒng)使用用戶和組的概念來管理文件和系統(tǒng)資源的訪問權(quán)限。其主要原理也很簡單,可以從下面幾個方面來理解:

  • 用戶:

在 Linux 系統(tǒng)中,每個用戶都有一個唯一的用戶名和用戶 ID(User ID),用于標識用戶身份。用戶可以屬于一個或多個用戶組,每個用戶組也有一個唯一的組名和組 ID。

  • 權(quán)限

每個文件和目錄都有屬主(Owner)、所屬組(Group)和其他用戶(Others)的權(quán)限設(shè)置。權(quán)限通常包括讀(r)、寫(w)和執(zhí)行(x)權(quán)限。這些權(quán)限分別表示對文件的讀取、寫入和執(zhí)行操作的權(quán)限。另外,每個權(quán)限位也可以用一個數(shù)字來表示,分別對應(yīng)讀(4)、寫(2)和執(zhí)行(1)權(quán)限。

  • 權(quán)限位:

Linux 中使用權(quán)限位來表示文件或目錄的權(quán)限。每個文件或目錄有 9 個權(quán)限位,分為 3 個部分:屬主權(quán)限、所屬組權(quán)限和其他用戶權(quán)限。每個部分包括讀(r)、寫(w)和執(zhí)行(x)權(quán)限。

  • 權(quán)限控制:

當用戶訪問文件或目錄時,系統(tǒng)會根據(jù)用戶的身份(用戶 ID)、文件的權(quán)限位和用戶所屬的組來確定是否允許特定操作。只有擁有相應(yīng)權(quán)限的用戶或組成員才能對文件進行讀取、寫入或執(zhí)行操作。

  • 特殊權(quán)限:

除了基本的讀寫執(zhí)行權(quán)限外,還有一些特殊權(quán)限,如 SetUID、SetGID 和粘著位(Sticky Bit)。這些特殊權(quán)限可以影響文件或目錄的執(zhí)行方式,例如在執(zhí)行文件時臨時提升用戶權(quán)限或確保只有文件所有者才能刪除文件。

文件系統(tǒng)權(quán)限

從我個人的理解來看,文件系統(tǒng)權(quán)限應(yīng)該屬于Linux用戶和權(quán)限管理的一部分,但我更愿意把它單獨拿出來理解,因為理解的角度不一樣,側(cè)重重點也不同。

在用戶和權(quán)限管理中,更多側(cè)重于用戶和權(quán)限。在這里更多側(cè)重于文件和權(quán)限。雖然角度不同,但是描述的是同一件事,這是確定的。

Linux 文件系統(tǒng)權(quán)限的工作原理主要涉及文件的所有者、所屬組和其他用戶對文件的訪問控制,其基本工作原理也比較簡單:

  • 文件屬性:

每個文件和目錄在 Linux 系統(tǒng)中都有一個唯一的所有者(Owner)和所屬組(Group)。此外,還有其他用戶(Others)對該文件的訪問權(quán)限。這些屬性由文件系統(tǒng)存儲,并且與文件的元數(shù)據(jù)一起保存。

  • 權(quán)限位:

每個文件和目錄都有 9 個權(quán)限位,分為 3 個部分:屬主權(quán)限、所屬組權(quán)限和其他用戶權(quán)限。每個部分包括讀(r)、寫(w)和執(zhí)行(x)權(quán)限。這些權(quán)限位決定了不同用戶對文件的操作權(quán)限。另外,每個權(quán)限位也可以用一個數(shù)字來表示,分別對應(yīng)讀(4)、寫(2)和執(zhí)行(1)權(quán)限。

  • 訪問控制:

當用戶嘗試訪問某個文件時,系統(tǒng)會根據(jù)用戶的身份(用戶 ID)、文件的權(quán)限位和用戶所屬的組來判斷是否允許特定操作。如果用戶是文件的屬主或具有適當?shù)臋?quán)限,系統(tǒng)將允許他們進行讀取、寫入或執(zhí)行操作。

  • 特殊權(quán)限:

除了基本的讀寫執(zhí)行權(quán)限外,還有一些特殊權(quán)限,如 SetUID、SetGID 和粘著位(Sticky Bit)。這些特殊權(quán)限可以影響文件或目錄的執(zhí)行方式,例如在執(zhí)行文件時臨時提升用戶權(quán)限或確保只有文件所有者才能刪除文件。

關(guān)于用戶和權(quán)限管理有兩個命令是必須得掌握的,這兩個命令就是chmod和chown。

1、在 CentOS 7 中,chmod 命令用于修改文件或目錄的權(quán)限。

使用方式:

chmod [選項] 權(quán)限模式 文件/目錄

常用選項:

  • -R:遞歸地修改文件夾及其子文件夾的權(quán)限。
  • -v:顯示每個修改后的文件/目錄的權(quán)限。

權(quán)限模式:

可以使用數(shù)字或符號來指定權(quán)限模式。

  • 數(shù)字模式:數(shù)字模式使用三位數(shù),每一位表示一個權(quán)限組(所有者、所屬組、其他用戶),其中每一位的值為 4(讀權(quán)限)、2(寫權(quán)限)和 1(執(zhí)行權(quán)限)的組合。例如,755 表示所有者具有讀、寫和執(zhí)行權(quán)限,所屬組和其他用戶具有讀和執(zhí)行權(quán)限。
  • 符號模式:符號模式使用類似于 u+rwx、g+rw、o-x 的格式來指定權(quán)限。u 代表所有者,g 代表所屬組,o 代表其他用戶,+ 表示添加權(quán)限,- 表示移除權(quán)限,r 表示讀權(quán)限,w 表示寫權(quán)限,x 表示執(zhí)行權(quán)限。例如,chmod u+rwx file.txt 表示給文件 file.txt 的所有者添加讀、寫和執(zhí)行權(quán)限。

示例:

將文件 file.txt 的所有者和所屬組的權(quán)限設(shè)置為讀寫,其他用戶無權(quán)限:

chmod 660 file.txt

將文件夾 dir 及其子文件夾的所有者、所屬組和其他用戶的權(quán)限設(shè)置為讀寫執(zhí)行:

chmod -R 777 dir

給文件 script.sh 的所有用戶添加執(zhí)行權(quán)限:

chmod a+x script.sh

給文件 file.txt 的所有者和所屬組添加讀權(quán)限,其他用戶移除所有權(quán)限:

chmod u+r,g+r,o-rwx file.txt

2、在 CentOS 7 中,chown 命令用于修改文件或目錄的所有者。

使用方式:

chown [選項] 新所有者 文件/目錄

常用選項:

  • -R:遞歸地修改文件夾及其子文件夾的所有者。
  • -v:顯示每個修改后的文件/目錄的所有者。

示例:

  • 將文件 file.txt 的所有者修改為 fanfu:
chown fanfu file.txt
  • 將目錄 dir 及其子目錄的所有者修改為 fanfu,同時顯示修改過程:
chown -Rv fanfu dir
  • 將文件 file.txt 的所有者和所屬組修改為 fanfu 和 yzxa:
chown fanfu:yzxa file.txt

chmod 和 chown 是兩個在 CentOS(以及其他 Linux 發(fā)行版)中常用的命令,用于修改文件或目錄的權(quán)限和所有者,功能上很相近,但是還是有區(qū)別的:

chmod 命令:

  • 作用:chmod 命令用于修改文件或目錄的權(quán)限。
  • 使用方式:chmod 命令后面跟著權(quán)限模式和要修改權(quán)限的文件或目錄路徑。
  • 權(quán)限模式:可以使用數(shù)字(例如 755)或符號(例如 u+rwx)來指定權(quán)限模式。
  • 數(shù)字模式:數(shù)字模式使用三位數(shù),每一位表示一個權(quán)限組(所有者、所屬組、其他用戶),其中每一位的值為 4(讀權(quán)限)、2(寫權(quán)限)和 1(執(zhí)行權(quán)限)的組合。例如,755 表示所有者具有讀、寫和執(zhí)行權(quán)限,所屬組和其他用戶具有讀和執(zhí)行權(quán)限。
  • 符號模式:符號模式使用類似于 u+rwx、g+rw、o-x 的格式來指定權(quán)限。u 代表所有者,g 代表所屬組,o 代表其他用戶,+ 表示添加權(quán)限,- 表示移除權(quán)限,r 表示讀權(quán)限,w 表示寫權(quán)限,x 表示執(zhí)行權(quán)限。

chown 命令:

  • 作用:chown 命令用于修改文件或目錄的所有者。
  • 使用方式:chown 命令后面跟著新的所有者和要修改所有者的文件或目錄路徑。
  • 所有者:可以使用用戶名或用戶 ID(UID)來指定新的所有者。

總的來看,chmod 用于修改文件或目錄的權(quán)限,而 chown 用于修改文件或目錄的所有者。它們是不同的命令,用途和參數(shù)也不同。在實際應(yīng)用中,我們可以根據(jù)需要選擇使用 chmod 或 chown 來對文件或目錄進行相應(yīng)的權(quán)限和所有者的修改操作。

SELinux

SELinux(Security-Enhanced Linux)和 AppArmor 都是用于強化 Linux 系統(tǒng)安全性的安全模塊,它們提供了額外的安全層來限制程序和進程的權(quán)限,以減少系統(tǒng)受到惡意攻擊的風(fēng)險。

它是由美國國家安全局(NSA)開發(fā)的安全模塊,旨在提供強大的訪問控制機制,通過強制訪問控制(MAC)實現(xiàn)對系統(tǒng)資源的細粒度控制。SELinux基于安全策略規(guī)則,可以限制程序、進程和用戶對文件、網(wǎng)絡(luò)資源以及其他系統(tǒng)資源的訪問權(quán)限,從而減少潛在的安全漏洞。SELinux的靈活性很高,但配置和管理相對復(fù)雜,想要熟練掌握有一定難度。然而這并妨礙你來了解它,如果在使用Linux系統(tǒng)中,遇到一些棘手的問題,這個地方也是一個排查方向。

這里可以先從以下幾個方面來理解一下SELinux的工作原理:

  • 安全策略:

SELinux 使用安全策略來定義系統(tǒng)資源和對象之間的訪問規(guī)則。這些安全策略由 SELinux 策略庫(Policy)管理,其中包括了對文件、進程、網(wǎng)絡(luò)端口等各種資源的訪問規(guī)則定義,以及用戶角色和安全上下文等信息。

  • 安全上下文:

在 SELinux 中,每個對象(如文件、進程)都有一個安全上下文,用于描述該對象的安全屬性。安全上下文由標簽表示,包括了對象的類型(Type)、角色(Role)和用戶(User)等信息。這些安全上下文決定了對象可以執(zhí)行的操作和被允許的訪問權(quán)限。

  • 強制訪問控制:

SELinux 引入了強制訪問控制(MAC),通過強制執(zhí)行安全策略來限制系統(tǒng)資源的訪問。即使用戶具有足夠的權(quán)限(如 root),也無法繞過 SELinux 對資源的訪問控制。這種強制控制確保了系統(tǒng)的安全性,減少了惡意軟件和攻擊的影響范圍。

  • 安全上下文轉(zhuǎn)換:

當進程或程序嘗試訪問某個資源時,SELinux 會根據(jù)安全上下文進行訪問權(quán)限的檢查。如果需要訪問的資源與進程的安全上下文不匹配,SELinux 可能會進行安全上下文的轉(zhuǎn)換,以確保訪問的合法性。

  • 日志和審計:

SELinux 提供了完善的日志和審計功能,可以記錄系統(tǒng)中發(fā)生的安全事件和違反安全策略的行為。這些日志信息對于系統(tǒng)管理員來說是非常有價值的,可以幫助其監(jiān)控系統(tǒng)的安全狀況,并及時采取措施應(yīng)對潛在的安全威脅。

以我個人經(jīng)驗來看,在日常工作來說,SELinux的安全策略管理是一個非常重要的地方,之前在搭建vsftp服務(wù)的時候,遇到的問題就是vsftp的配置正常,但是無法實現(xiàn)匿名用戶的訪問、文件上傳,經(jīng)過排查發(fā)現(xiàn)原因是SELinux的安全策略中,允許匿名用戶寫入的權(quán)限是關(guān)閉的,后來把這個權(quán)限打開,問題迎刃而解。因此,我覺得,如果能夠掌握SELinux安全策略的基本管理,還是比較實用的。這里就給大家分享一下SELinux安全策略管理常用工具和命令的用法:

1、sestatus

sestatus命令可以查看當前 SELinux 的狀態(tài)和基本信息,包括是否啟用、當前模式等。

sestatus

圖片

sestatus輸出信息的解讀:

  • ELinux status: enabled

SELinux 狀態(tài)為啟用,這表示 SELinux 安全模塊已經(jīng)啟用并正在系統(tǒng)中運行。

  • SELinuxfs mount: /sys/fs/selinux

SELinux 文件系統(tǒng)掛載點的路徑為 /sys/fs/selinux,這是 SELinux 內(nèi)核文件系統(tǒng)所在的路徑。

  • SELinux root directory: /etc/selinux

SELinux 根目錄的路徑為 /etc/selinux,這是 SELinux 配置文件等相關(guān)文件存放的位置。

  • Loaded policy name: targeted

加載的策略名稱為 targeted,這表示系統(tǒng)當前使用的是針對特定應(yīng)用的 SELinux 策略。

  • Current mode: enforcing

當前 SELinux 模式為強制執(zhí)行(enforcing),這意味著 SELinux 將強制執(zhí)行安全策略,對違反規(guī)則的操作進行限制。

  • Mode from config file: enforcing

從配置文件中設(shè)置的 SELinux 模式也是強制執(zhí)行(enforcing),這說明系統(tǒng)會在重啟后繼續(xù)以強制執(zhí)行模式運行。

  • Policy MLS status: enabled

策略 MLS 狀態(tài)為啟用,這表示多級安全策略(MLS)功能在 SELinux 中是啟用的。

  • Policy deny_unknown status: allowed

deny_unknown 策略狀態(tài)為允許(allowed),這表示 SELinux 允許對未知進程進行訪問控制。

  • Max kernel policy version: 31

最大內(nèi)核策略版本號為 31,這是指內(nèi)核支持的 SELinux 策略的最大版本號。

2、getenforce

getenforce命令可以查看 SELinux 的強制模式(Enforcing)、警告模式(Permissive)或禁用模式(Disabled)。

圖片圖片

3、semanage

semanage命令可以查詢和管理 SELinux 策略中的各種對象,如端口、用戶、登錄名等。比如查詢ftp服務(wù)相關(guān)的布爾值是否處于打開狀態(tài),這里多解釋一下,在 SELinux 安全策略中,布爾值(Boolean)是一種用于控制特定安全策略行為的開關(guān)變量。通過設(shè)置這些布爾值,可以啟用或禁用特定的安全策略規(guī)則,從而調(diào)整系統(tǒng)的訪問控制行為。

semanage boolean -l | grep ftp

如果semanage指令執(zhí)行錯誤,可以是未安裝SELinux管理工具包,執(zhí)行下面的指令進行相關(guān)工具包安裝,安裝后再次執(zhí)行上述命令:

sudo yum install policycoreutils

4、setsebool

setsebool 用于設(shè)置或修改 SELinux 的布爾值(Boolean)。布爾值通常以 on 或 off 的形式存在,用于表示某個特定的安全功能或行為是否啟用。通過 setsebool,你可以啟用或禁用特定的 SELinux 布爾值,從而調(diào)整系統(tǒng)的訪問控制行為。

比如,允許vsftpd服務(wù)匿名用戶寫入

setsebool -P ftpd_anon_write on

其中,-P 參數(shù)表示永久性地修改該布爾值,而不僅僅是臨時性地修改。

5、getsebool

用于查看 SELinux 布爾值的狀態(tài)。比如,查詢允許vsftpd服務(wù)匿名用戶寫入的布爾值:

getsebool ftpd_anon_write


責(zé)任編輯:武曉燕 來源: 凡夫編程
相關(guān)推薦

2024-07-07 21:49:22

2025-04-02 07:29:14

2024-12-12 09:00:28

2009-07-03 18:59:02

2021-05-11 07:51:30

React ref 前端

2025-04-25 09:00:00

Transforme模型代碼

2009-07-03 18:13:28

Servlet線程安全

2024-12-17 08:04:04

2018-05-17 15:18:48

Logistic回歸算法機器學(xué)習(xí)

2020-02-18 16:14:33

RedisRDBAOF

2024-09-04 09:47:21

2025-03-17 01:55:00

TCP服務(wù)迭代

2010-06-29 14:20:52

2024-09-18 08:25:46

2022-02-28 10:05:12

組件化架構(gòu)設(shè)計從原組件化模塊化

2020-04-28 22:12:30

Nginx正向代理反向代理

2009-12-11 10:29:03

PHP插件機制

2023-10-13 13:30:00

MySQL鎖機制

2020-07-29 10:10:37

HTTP緩存前端

2023-08-03 08:03:05

點贊
收藏

51CTO技術(shù)棧公眾號