導航:首頁 > 編程系統 > rhel6關閉selinux

rhel6關閉selinux

發布時間:2024-09-24 12:41:57

Ⅰ 我所有的linux目錄屬性後面都加了個點,是怎麼回事,其它正常的系統沒有 drwxr-xr-x .

應該是安裝的linux發行版本是一個特別編譯過的,
一般的都沒有這樣的.
這個主要ls這樣的工具列印的,linux內核沒有變化

Ⅱ 我的SElinux怎麼變成permissive了,原來是enforcing

如果要恢復運行SELinux則可以運行
# setenforce
1

這條命令會把SELinux設定成Enforcing模式

2.把SELinux永久設定為Permissive模式

這里需要講一下Permissive和Enforcing模式的區別。
SELinux有三種模式:Enforcing, Permissive and Disable.

Enforcing模式就是應用SELinux所設定的Policy,
所有違反Policy的規則(Rules)都會被SELinux拒絕
Permissive和Enforcing的區別就在於它還是會遵循SELinux的Policy,但是對於違反規則的操作只會予以記錄而並不會拒絕操作

Disable 顧名思義就是完全禁用SELinux

如果要永久設定為Permissive模式,我們就要修改SELinux的配置文件
/etc/sysconfig/selinux (在RHEL5下這是一個symbolic link to /etc/selinux/conf)
# 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 - SELinux is fully disabled.
SELINUX=enforcing
#
SELINUXTYPE= type of policy in use. Possible values are:
# targeted -
Only targeted network daemons are protected.
# strict -
Full SELinux protection.
SELINUXTYPE=targeted

修改SELINUX=permissive,然後重新啟動就可以了

Ⅲ 如何解決SELinux阻止虛擬機訪問文件

幾乎可以肯定每個人都聽說過 SELinux (更准確的說,嘗試關閉過),甚至某些過往的經驗讓您對 SELinux 產生了偏見。不過隨著日益增長的 0-day 安全漏洞,或許現在是時候去了解下這個在 Linux 內核中已經有8年歷史的強制性訪問控制系統(MAC)了。

SELinux 與強制訪問控制系統

SELinux 全稱 Security Enhanced Linux (安全強化 Linux),是 MAC (Mandatory Access Control,強制訪問控制系統)的一個實現,目的在於明確的指明某個進程可以訪問哪些資源(文件、網路埠等)。

強制訪問控制系統的用途在於增強系統抵禦 0-Day 攻擊(利用尚未公開的漏洞實現的攻擊行為)的能力。所以它不是網路防火牆或 ACL 的替代品,在用途上也不重復。

舉例來說,系統上的 Apache 被發現存在一個漏洞,使得某遠程用戶可以訪問系統上的敏感文件(比如 /etc/passwd 來獲得系統已存在用戶),而修復該安全漏洞的 Apache 更新補丁尚未釋出。此時 SELinux 可以起到彌補該漏洞的緩和方案。因為 /etc/passwd 不具有 Apache 的訪問標簽,所以 Apache 對於 /etc/passwd 的訪問會被 SELinux 阻止。

相比其他強制性訪問控制系統,SELinux 有如下優勢:

●控制策略是可查詢而非程序不可見的。

●可以熱更改策略而無需重啟或者停止服務。

●可以從進程初始化、繼承和程序執行三個方面通過策略進行控制。

●控制范圍覆蓋文件系統、目錄、文件、文件啟動描述符、埠、消息介面和網路介面。

那麼 SELinux 對於系統性能有什麼樣的影響呢?根據 Phoronix 在 2009 年使用 Fedora 11 所做的橫向比較來看,開啟 SELinux 僅在少數情況下導致系統性能約 5% 的降低。

SELinux 是不是會十分影響一般桌面應用及程序開發呢?原先是,因為 SELinux 的策略主要針對伺服器環境。但隨著 SELinux 8年來的廣泛應用,目前 SELinux 策略在一般桌面及程序開發環境下依然可以同時滿足安全性及便利性的要求。以剛剛發布的 Fedora 15 為例,筆者在搭建完整的娛樂(包含多款第三方原生 Linux 游戲及 Wine 游戲)及開發環境(Android SDK + Eclipse)過程中,只有 Wine 程序的首次運行時受到 SELinux 默認策略的阻攔,在圖形化的「SELinux 故障排除程序」幫助下,點擊一下按鈕就解決了。

了解和配置 SELinux

1. 獲取當前 SELinux 運行狀態

getenforce
可能返回結果有三種:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表僅記錄安全警告但不阻止可疑行為,Enforcing 代表記錄警告且阻止可疑行為。

目前常見發行版中,RHEL 和 Fedora 默認設置為 Enforcing,其餘的如 openSUSE 等為 Permissive。

2. 改變 SELinux 運行狀態

setenforce [ Enforcing | Permissive | 1 | 0 ]
該命令可以立刻改變 SELinux 運行狀態,在 Enforcing 和 Permissive 之間切換,結果保持至關機。一個典型的用途是看看到底是不是 SELinux 導致某個服務或者程序無法運行。若是在 setenforce 0 之後服務或者程序依然無法運行,那麼就可以肯定不是 SELinux 導致的。

若是想要永久變更系統 SELinux 運行環境,可以通過更改配置文件 /etc/sysconfig/selinux 實現。注意當從 Disabled 切換到 Permissive 或者 Enforcing 模式後需要重啟計算機並為整個文件系統重新創建安全標簽(touch /.autorelabel && reboot)。

3. SELinux 運行策略

配置文件 /etc/sysconfig/selinux 還包含了 SELinux 運行策略的信息,通過改變變數 SELINUXTYPE 的值實現,該值有兩種可能:targeted 代表僅針對預制的幾種網路服務和訪問請求使用 SELinux 保護,strict 代表所有網路服務和訪問請求都要經過 SELinux。

RHEL 和 Fedora 默認設置為 targeted,包含了對幾乎所有常見網路服務的 SELinux 策略配置,已經默認安裝並且可以無需修改直接使用。

若是想自己編輯 SELinux 策略,也提供了命令行下的策略編輯器 seedit 以及 Eclipse 下的編輯插件 eclipse-slide 。

4. coreutils 工具的 SELinux 模式

常見的屬於 coreutils 的工具如 ps、ls 等等,可以通過增加 Z 選項的方式獲知 SELinux 方面的信息。

Ⅳ rhel中selinux有幾種狀態

我覺得用狀態(status)這個詞不好,用模式(mode)比較好
一共有3種(媽的,連貼圖都不內能貼容,還要打字,真煩):

1、enforcing

2、permissive
3、disabled

getenforce可以獲取SElinux的mode;
setenforce的0,1可以分別切換permissive和enforcing

Ⅳ selinux會使某一個進程的許可權變化嗎

這些局限的一種情形是:某個用戶可能通過一個泛泛的 chmod
命令將文件或目錄暴露出現了安全違例,從而引起訪問許可權的意外傳播。結果,由該用戶開啟的任意進程可以對屬於該用戶的文件進行任意的操作,最終一個惡意的
或有其它缺陷的軟體可能會取得整個系統的 root 級別的訪問許可權。

考慮到這些局限性,美國國家安全局(NSA) 率先設計出了
SELinux,一種強制的訪問控制方法,它根據最小許可權模型去限制進程在系統對象(如文件,目錄,網路介面等)上的訪問或執行其他的操作的能力,而這些
限制可以在之後根據需要進行修改。簡單來說,系統的每一個元素只給某個功能所需要的那些許可權。

在 RHEL 7 中,SELinux 被並入了內核中,且默認情況下以強制模式(Enforcing)開啟。在這篇文章中,我們將簡要地介紹有關 SELinux 及其相關操作的基本概念。

SELinux 的模式

SELinux 可以以三種不同的模式運行:
強制模式(Enforcing)
:SELinux 基於其策略規則來拒絕訪問,這些規則是用以控制安全引擎的一系列准則;
寬容模式(Permissive)
:SELinux 不會拒絕訪問,但對於那些如果運行在強制模式下會被拒絕訪問的行為進行記錄;
關閉(Disabled)
(不言自明,即 SELinux 沒有實際運行).

使用 getenforce 命令可以展示 SELinux 當前所處的模式,而 setenforce 命令(後面跟上一個 1 或 0) 則被用來將當前模式切換到強制模式(Enforcing)或寬容模式(Permissive),但只對當前的會話有效。

為了使得在登出和重啟後上面的設置還能保持作用,你需要編輯 /etc/selinux/config 文件並將 SELINUX 變數的值設為 enforcing,permissive,disabled 中之一:
# getenforce# setenforce 0# getenforce# setenforce 1# getenforce# cat /etc/selinux/config

設置 SELinux 模式

通常情況下,你應該使用 setenforce 來在 SELinux
模式間進行切換(從強制模式到寬容模式,或反之),以此來作為你排錯的第一步。假如 SELinux
當前被設置為強制模式,而你遇到了某些問題,但當你把 SELinux 切換為寬容模式後問題不再出現了,則你可以確信你遇到了一個 SELinux
許可權方面的問題。

SELinux 上下文

一個 SELinux 上下文(Context)由一個訪問控制環境所組成,在這個環境中,決定的做出將基於 SELinux 的用戶,角色和類型(和可選的級別):

一個 SELinux 用戶是通過將一個常規的 Linux 用戶賬戶映射到一個 SELinux 用戶賬戶來實現的,反過來,在一個會話中,這個 SELinux 用戶賬戶在 SELinux 上下文中被進程所使用,以便能夠明確定義它們所允許的角色和級別。
角色的概念是作為域和處於該域中的 SELinux 用戶之間的媒介,它定義了 SELinux 可以訪問到哪個進程域和哪些文件類型。這將保護您的系統免受提權漏洞的攻擊。
類型則定義了一個 SELinux 文件類型或一個 SELinux 進程域。在正常情況下,進程將會被禁止訪問其他進程正使用的文件,並禁止對其他進程進行訪問。這樣只有當一個特定的 SELinux 策略規則允許它訪問時,才能夠進行訪問。

下面就讓我們看看這些概念是如何在下面的例子中起作用的。

例 1:改變 sshd 守護進程的默認埠

在 RHCSA 系列(八): 加固 SSH,設定主機名及啟用網路服務 中,我們解釋了更改 sshd 所監聽的默認埠是加固你的伺服器免受外部攻擊的首要安全措施。下面,就讓我們編輯 /etc/ssh/sshd_config 文件並將埠設置為 9999:
Port 9999

保存更改並重啟 sshd:
# systemctl restart sshd# systemctl status sshd

重啟 SSH 服務

正如你看到的那樣, sshd 啟動失敗,但為什麼會這樣呢?

快速檢查 /var/log/audit/audit.log 文件會發現 sshd 已經被拒絕在埠 9999 上開啟(SELinux 的日誌信息包含單詞 "AVC",所以這類信息可以被輕易地與其他信息相區分),因為這個埠是 JBoss 管理服務的保留埠:
# cat /var/log/audit/audit.log | grep AVC | tail -1

查看 SSH 日誌

在這種情況下,你可以像先前解釋的那樣禁用 SELinux(但請不要這樣做!),並嘗試重啟 sshd,且這種方法能夠起效。但是, semanage 應用可以告訴我們在哪些埠上可以開啟 sshd 而不會出現任何問題。

運行:
# semanage port -l | grep ssh

便可以得到一個 SELinux 允許 sshd 在哪些埠上監聽的列表:

Semanage 工具

所以讓我們在 /etc/ssh/sshd_config 中將埠更改為 9998 埠,增加這個埠到 sshportt 的上下文,然後重啟 sshd 服務:
# semanage port -a -t ssh_port_t -p tcp 9998# systemctl restart sshd# systemctl is-active sshd

semanage 添加埠

如你所見,這次 sshd 服務被成功地開啟了。這個例子告訴我們一個事實:SELinux 用它自己的埠類型的內部定義來控制 TCP 埠號。

例 2:允許 httpd 訪問 sendmail

這是一個 SELinux 管理一個進程來訪問另一個進程的例子。假如在你的 RHEL 7 伺服器上,你要為 Apache 配置 mod_security 和 mod_evasive,你需要允許 httpd 訪問 sendmail,以便在遭受到 (D)DoS 攻擊時能夠用郵件來提醒你。在下面的命令中,如果你不想使得更改在重啟後仍然生效,請去掉 -P 選項。
# semanage boolean -1 | grep httpd_can_sendmail# setsebool -P httpd_can_sendmail 1# semanage boolean -1 | grep httpd_can_sendmail

允許 Apache 發送郵件

從上面的例子中,你可以知道 SELinux 布爾設定(或者只是布爾值)分別對應於 true 或 false,被嵌入到了 SELinux 策略中。你可以使用 semanage boolean -l 來列出所有的布爾值,也可以管道至 grep 命令以便篩選輸出的結果。

例 3:在一個特定目錄而非默認目錄下提供一個靜態站點服務

假設你正使用一個不同於默認目錄(/var/www/html)的目錄來提供一個靜態站點服務,例如 /websites 目錄(這種情形會出現在當你把你的網路文件存儲在一個共享網路設備上,並需要將它掛載在 /websites 目錄時)。

a). 在 /websites 下創建一個 index.html 文件並包含如下的內容:
<html><h2>SELinux test</h2></html>

假如你執行
# ls -lZ /websites/index.html

你將會看到這個 index.html 已經被標記上了 default_t SELinux 類型,而 Apache 不能訪問這類文件:

檢查 SELinux 文件的許可權

b). 將 /etc/httpd/conf/httpd.conf 中的 DocumentRoot 改為 /websites,並不要忘了 更新相應的 Directory 塊。然後重啟 Apache。

c). 瀏覽 http://<web server IP address>,則你應該會得到一個 503 Forbidden 的 HTTP 響應。

d). 接下來,遞歸地改變 /websites 的標志,將它的標志變為 httpd_sys_content_t 類型,以便賦予 Apache 對這些目錄和其內容的只讀訪問許可權:
# semanage fcontext -a -t httpd_sys_content_t "/websites(/.*)?"

e). 最後,應用在 d) 中創建的 SELinux 策略:
# restorecon -R -v /websites

現在重啟 Apache 並再次瀏覽到 http://<web server IP address>,則你可以看到被正確展現出來的 html 文件:

確認 Apache 頁面

總結

在本文中,我們詳細地介紹了 SELinux 的基礎知識。請注意,由於這個主題的廣泛性,在單篇文章中做出一個完全詳盡的解釋是不可能的,但我們相信,在這個指南中列出的基本原則將會對你進一步了解更高級的話題有所幫助,假如你想了解的話。

閱讀全文

與rhel6關閉selinux相關的資料

熱點內容
智能機器人學什麼編程語言 瀏覽:441
看opengles版本 瀏覽:286
win10usb設備不識別 瀏覽:554
icloud注銷無密碼怎麼辦 瀏覽:637
QQ文件怎麼重新 瀏覽:980
如何使用微信網路付款 瀏覽:958
學java還能學什麼軟體嗎 瀏覽:303
基於新浪微博平台的網路廣告研究 瀏覽:314
c語言寫入文件 瀏覽:36
數據包是從哪裡傳出的 瀏覽:829
win10使用游戲模式 瀏覽:582
哪裡有伊藤潤二的app 瀏覽:5
小魚淘寶美工教程下載 瀏覽:879
崽崽app適合取什麼名字 瀏覽:368
財稅大數據應用是屬於什麼類 瀏覽:459
手機顯示回收站有文件但找不到 瀏覽:124
寬頻pto網頁登錄密碼 瀏覽:586
登陸APP怎麼顯示在北京 瀏覽:985
rhel6關閉selinux 瀏覽:660
什麼app里港劇比較多 瀏覽:951

友情鏈接