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

如何使用semanage和避免禁用SELinux?

譯文
開發(fā) 開發(fā)工具
本文介紹的三個semanage命令有助于大大簡化SELinux的處理。

[[390322]]

【51CTO.com快譯】SELinux頗具挑戰(zhàn)性;當這個安全層阻止您的應用程序或服務時,您的第一個反應往往是將其設成“禁用”或“允許”。在安全至關重要的當下,您無法進行這種更改,否則您的整個系統(tǒng)或網(wǎng)絡安全堪憂。您不想那樣。

為何不使用可助您一臂之力的工具?這款工具就是semanage,它是SELinux策略管理工具。借助semanage,您可以調(diào)整文件上下文、端口上下文和布爾值,這將有助于您確保系統(tǒng)可使用,又不必禁用安全系統(tǒng)。

本文將介紹以下命令:

  • semanage boolean
  • semanage fcontext
  • semanage port

知道這些命令后,您應該能夠在Linux系統(tǒng)上更好地使用SELinux。

您需要什么?

運行中的Linux實例(使用SELinux)

擁有sudo特權的用戶

如何使用semanage boolean?

使用semanage boolean,您可以啟用和禁用允許規(guī)則集,因而可以為不同的用例允許不同的規(guī)則集。假設您有一臺Web服務器,必須允許讀取用戶內(nèi)容,比如來自主目錄的數(shù)據(jù)。SELinux默認情況下不允許這么做。使用semanage boolean命令,您可以啟用該功能。

您可以使用semanage boolean命令,通過以下命令列出所有可用的HTTP相關策略:

  1. sudo semanage boolean -l | grep httpd 

您將看到幾項條目,比如:

  1. httpd_read_user_content (off , off) Allow httpd to read user content 

每份列表含有布爾值的名稱、布爾值的當前和持久狀態(tài)以及布爾值描述。如上所示,httpd_read_user_content布爾值設為off。我們?nèi)绾螁⒂盟?很簡單:

  1. sudo semanage boolean -m --on httpd_read_user_content 

使用-m選項,我們指示SELinux使用后面的選項(--on)來修改記錄(本例中是httpd_read_user_context)。

就是這樣。您已完成了設置,SELinux將允許Web服務器讀取用戶內(nèi)容。

如果想要列出所有布爾值,看看您還可以做些什么,執(zhí)行以下命令:

  1. sudo semanage boolean -l 

如何使用semanage fcontext?

semanage fcontext命令用于管理文件上下文定義,這包含額外信息(比如SELinux用戶、角色、類型和級別),以做出訪問控制決策。文件上下文是管理員在SELinux上面臨的最大問題之一。您可能已經(jīng)創(chuàng)建了一個新目錄來容納SSH主機密鑰,但是如果沒有正確的文件上下文,SELinux不會允許通過SSH訪問該目錄。

您可以執(zhí)行什么操作?

可以使用semanage fcontext更改新目錄的文件上下文。

與boolean一樣,fcontext也有可以使用的策略。想查看可用策略的完整列表,請執(zhí)行以下命令:

  1. sudo semanage fcontext -l 

如果想列出所有與SSH守護程序有關的策略,請執(zhí)行以下命令:

  1. sudo semanage fcontext -l | grep sshd 

在該列表中,您將看到以下條目:

  1. /etc/ssh/primes regular file system_u:object_r:sshd_key_t:s0 
  2.  
  3. /etc/ssh/ssh_host.*_key regular file system_u:object_r:sshd_key_t:s0 
  4.  
  5. /etc/ssh/ssh_host.*_key\.pub regular file system_u:object_r:sshd_key_t:s0 

假設您要將SSH主機密鑰放在/data/keys中。創(chuàng)建目錄,將所有鍵移動到新主目錄中,并更改sshd_config文件以匹配新映射。嘗試使用SSH時,它會失敗。為什么?因為/data/keys沒有正確的fcontext??梢允褂靡韵聝蓚€命令解決該問題:

  1. sudo semanage fcontext -a -t sshd_key_t '/data/keys/*.*' 
  2.  
  3. sudo restorecon -r /data/keys 

我們使用semanage fcontxt創(chuàng)建新策略之后,必須使用restorecon命令對新文件設置安全上下文。正則表達式*.*獲取目錄中的所有文件。

如何使用semanage port?

您可能猜到了,semanage port讓您可以在自定義端口上運行服務。如果您嘗試在自定義端口上運行服務,該服務會失敗。假設您想在非標準端口上運行SSH守護程序。如果您僅為此配置sshd_config,會發(fā)現(xiàn)SELinux將阻止您獲得訪問權限,因為SELinux不知道您已進行了此更改。

如果想把SSH端口更改為2112:

  1. semanage port -a -t ssh_port_t -p tcp 2112 

然后就要使用以下命令將端口添加到防火墻:

  1. sudo firewall-cmd --add-port=2112/tcp --permanent 
  2.  
  3. sudo firewall-cmd --reload 

至此,您終于可以使用非標準端口,通過SSH訪問支持SELinux的服務器。

想列出所有可用的端口策略,請執(zhí)行以下命令:

  1. sudo semanage port –l 

結論

SELinux是一種功能很強大的工具,擅長保護Linux服務器免受不必要的更改。這種功能帶來了一定程度的復雜性。熟悉上述三個命令,可使管理工作變得更輕松,而不是禁用SELinux或?qū)⑵湓O置為“許可”模式。

原文標題:How to use semanage and avoid disabling SELinux,作者:Jack Wallen

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責任編輯:華軒 來源: 51CTO
相關推薦

2020-07-04 11:08:34

SELinuxLinux操作系統(tǒng)

2019-07-26 10:35:52

Linux禁用SELinux

2011-05-31 14:22:23

2018-11-19 09:50:51

Linux命令操作系統(tǒng)

2019-05-13 10:23:28

Linux網(wǎng)卡命令

2019-09-24 08:56:00

內(nèi)存Redis使用

2012-09-05 11:09:15

SELinux操作系統(tǒng)

2011-11-25 10:20:14

虛擬化桌面虛擬化VDI

2013-10-09 13:43:09

2017-08-18 09:05:50

2023-11-01 13:32:42

Go代碼

2013-05-06 16:36:55

SELinuxSELinux故障

2021-01-29 08:00:00

服務器安全SELinux

2009-05-13 11:13:07

MySQL定位性能故障

2010-04-01 15:16:45

CentOS系統(tǒng)

2013-03-25 10:15:57

2021-03-01 15:52:14

開源開源軟件陷阱

2013-03-13 10:24:48

2012-04-13 16:26:49

虛擬化云計算云停滯

2018-04-26 11:00:17

數(shù)據(jù)移動數(shù)據(jù)中心云端
點贊
收藏

51CTO技術棧公眾號