SELinux·

SELinux介紹

  • SELinux: Secure Enhanced Linux,是美國國家安全局(NSA=The National Security Agency)和SCC(Secure Computing Corporation)開發(fā)的Linux的一個強制訪問 控制的安全模塊。2000年以GNU GPL 發(fā)布防楷,Linux 內(nèi)核2.6版本后集成在內(nèi)核中
  • DAC:Discretionary Access Control 自由訪問控制
  • MAC:Mandatory Access Control 強制訪問控制
DAC 環(huán)境下進程是無束縛的
MAC 環(huán)境下策略的規(guī)則決定控制的嚴格程度
MAC 環(huán)境下進程可以被限制的
策略被用來定義被限制的進程能夠使用那些資源(文件和端口)
默認情況下,沒有被明確允許的行為將被拒絕

SELinux 工作類型

  • SELinux 有四種工作類型:
strict:centos5,每個進程都受到selinux 的控制
targeted:用來保護常見的網(wǎng)絡(luò)服務(wù), 僅有限進程受到selinux 控制则涯,只監(jiān)控容易被入侵的進程复局,centos4只保護13個服務(wù),centos5保護88個服務(wù)
minimum:centos7, 修改的targeted 粟判,只對選擇的網(wǎng)絡(luò)服務(wù)
mls: 提供MLS(多級安全)機制的安全性
  • targeted為默認類型亿昏,minimum和mls 穩(wěn)定性不足,未加以應(yīng)用档礁,strict以不在使用

SELinux 安全上下文

  • 傳統(tǒng)Linux角钩,一切皆文件,由用戶呻澜,組递礼,權(quán)限控制訪問
  • 在SELinux中,一切皆對象(object)羹幸,由存放在inode的擴展屬性域的安全元素所控制其訪問
  • 所有文件和端口資源和進程都具備安全標簽:安全上下文(security context)
  • 安全上下文有五個元素組成:
user:role:type:sensitivity:category
user_u:object_r:tmp_t:s0:c0
  • 實際上下文:存放在文件系統(tǒng)中
ls –Z 脊髓;ps –Z
  • 期望( 默認)上下文:存放在二進制的SELinux 策略庫(映射目錄和期望安全上下文)中
semanage fcontext –l

五個安全元素

  • User: 指示登錄系統(tǒng)的用戶類型,如root,user_u,system_u,多數(shù)本地進程都屬于自由(unconfined )進程
  • Role: 定義文件,進程和用戶的用途:文件:object_r 栅受,進程和用戶:system_r
  • Type: 指定數(shù)據(jù)類型供炼,規(guī)則中定義何種進程類型訪問何種文件Target策略基于type實現(xiàn), 多服務(wù)共用:public_content_t
  • Sensitivity:限制訪問的需要,由組織定義的分層安全級別窘疮,如unclassified, secret,top,secret,一個對象有且只有一個sensitivity,分0-15級袋哼,s0最低,Target 策略默認使用s0
  • Category:對于特定組織劃分不分層的分類,如FBI Secret闸衫,NSA secret,一個對象可以有多個categroy涛贯,c0-c1023共1024個分類,Target策略不使用category

SELinux 策略

  • 對象(object):所有可以讀取的對象蔚出,包括文件弟翘、目錄和進程,端口等

  • 主體:進程稱為主體(subject)

  • SELinux 中對所有的文件都賦予一個type的文件類型標簽骄酗,對于所有的進程也賦予各自的一個domain的標簽稀余。domain 標簽?zāi)軌驁?zhí)行的操作由安全策略里定義

  • 當(dāng)一個subject 試圖訪問一個object ,Kernel 中的策略執(zhí)行服務(wù)器將檢查AVC ( 訪問矢量緩存Access Vector Cache), 在AVC中趋翻,subject和object的權(quán)限被緩存(cached) 睛琳,查找“應(yīng)用+文件”的安全環(huán)境。然后根據(jù)查詢結(jié)果允許或拒絕訪問

  • 安全策略:定義主體讀取對象的規(guī)則數(shù)據(jù)庫,規(guī)則中記錄了哪個類型的主體使用哪個方法讀取哪一個對象是允許還是拒絕的师骗,并且定義了哪種行為是充許或拒絕

  • 文件移動的時候历等,會保留文件的context值,cp復(fù)制文件時辟癌,會繼承目標文件的context值

圖1
圖1
  • SELinux規(guī)則庫:
    規(guī)則:哪種域能訪問或哪些種類型內(nèi)文件寒屯;

設(shè)置SELinux

  • 配置SELinux:
SELinux是否啟用
給文件重新打安全標簽
給端口設(shè)置安全標簽
設(shè)定某些操作的布爾型開關(guān)
SELinux的日志管理
  • SELinux的狀態(tài):
enforcing:強制,每個受限的進程都必然受限
permissive:啟用黍少,每個受限的進程違規(guī)操作不會被禁止寡夹,但會被記錄于審計日志
disabled:禁用關(guān)閉 
  • 相關(guān)命令:
getenforce:獲取selinux當(dāng)前狀態(tài)
sestatus:查看selinux狀態(tài)
setenforce 0|1
    0:設(shè)置為permissive
    1:設(shè)置為enforcing
  • 配置文件:
/boot/grub/grub.conf
    使用selinux=0禁用SELinux
/etc/selinux/config
/etc/sysconfig/selinux
SELINUX={disabled|enforcing|permissive}

修改SELinux 安全標簽

  • 給文件重新打安全標簽:
chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...
chcon [OPTION]... --reference=RFILE FILE...
-R:遞歸打標;
圖2
圖2
  • 恢復(fù)目錄或文件默認的安全 上下文:
restorecon [-R] /path/to/somewhere

默認安全上下文查詢與修改

  • Semanage:來自policycoreutils-python包
  • 查看默認的安全上下文
semanage fcontext –l
  • 添加安全上下文
semanage fcontext -a –t httpd_sys_content_t ‘/testdir(/.*)?’
restorecon –Rv /testdir
  • 刪除安全上下文
semanage fcontext -d –t httpd_sys_content_t ‘/testdir(/.*)?’

Selinux端口標簽

  • 查看端口標簽
semanage port –l
  • 添加端口
semanage port -a -t port_label -p tcp|udp PORT
semanage port -a -t http_port_t -p tcp 9527
圖3
圖3
  • 刪除端口
semanage port -d -t port_label -p tcp|udp PORT
semanage port -d -t http_port_t -p tcp 9527
圖4
圖4
  • 修改現(xiàn)有端口為新標簽
semanage port -m -t port_label -p tcp|udp PORT
semanage port -m -t http_port_t -p tcp 9527
圖5
圖5

SELinux 布爾值

  • 布爾型規(guī)則:
getsebool  查看布爾值
setsebool  設(shè)置布爾值
  • 查看bool命令:
getsebool [-a] [boolean]
semanage boolean –l
semanage boolean -l –C  查看修改過的布爾值   
圖6
圖6
  • 設(shè)置bool值命令:
setsebool [-P] boolean value (on,off)
setsebool [-P] boolean=value (0 厂置,1)
    -P 修改bool值并保存磁盤要出,永久生效 
圖7
圖7

SELinux日志管理

yum install setroubleshoot(重啟生效)
    將錯誤的信息寫入/var/log/message

grep setroubleshoot /var/log/messages
sealert -l UUID(UUID為message文件中的日志報錯事件的UUID)
    查看安全事件日志說明

sealert -a /var/log/audit/audit.log
    掃描并分析日志

SELinux幫助

 yum –y install selinux-policy-devel ( centos7.2)
yum –y install selinux-policy-doc
mandb | makewhatis   更新數(shù)據(jù)庫
man -k _selinux   查看幫助

yum install setroubleshoot*

安裝圖形化SELinux故障排錯包

練習(xí)

1、啟用SELinux 策略并安裝httpd 服務(wù)农渊,改變網(wǎng)站的默認主目錄為/website,添加SELinux文件標簽規(guī)則患蹂,使網(wǎng)站可訪問
2、修改上述網(wǎng)站的http端口為9527 砸紊,增加SELinux端口標簽传于,使網(wǎng)站可訪問
3、啟用相關(guān)的SELinux布爾值醉顽,使上述網(wǎng)站的用戶student的家目錄可通過http訪問
4沼溜、編寫腳本selinux.sh,實現(xiàn)開啟或禁用SELinux功能
    sed -ri.bak 's/^(SELINUX=).*/\1disabled/' /etc/selinux/config
    sed -ri.bak  '/^SELINUX=/s/.*/SELINUX=disabled/' /etc/selinux/config
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末游添,一起剝皮案震驚了整個濱河市系草,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唆涝,老刑警劉巖找都,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異廊酣,居然都是意外死亡能耻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門亡驰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晓猛,“玉大人,你說我怎么就攤上這事凡辱〗渲埃” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵透乾,是天一觀的道長洪燥。 經(jīng)常有香客問我磕秤,道長,這世上最難降的妖魔是什么蚓曼? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任亲澡,我火速辦了婚禮钦扭,結(jié)果婚禮上纫版,老公的妹妹穿的比我還像新娘。我一直安慰自己客情,他們只是感情好其弊,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著膀斋,像睡著了一般梭伐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仰担,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天糊识,我揣著相機與錄音,去河邊找鬼摔蓝。 笑死赂苗,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贮尉。 我是一名探鬼主播拌滋,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猜谚!你這毒婦竟也來了败砂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤魏铅,失蹤者是張志新(化名)和其女友劉穎昌犹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體览芳,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡祭隔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了路操。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疾渴。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屯仗,靈堂內(nèi)的尸體忽然破棺而出搞坝,到底是詐尸還是另有隱情,我是刑警寧澤魁袜,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布桩撮,位于F島的核電站敦第,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏店量。R本人自食惡果不足惜芜果,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望融师。 院中可真熱鬧右钾,春花似錦、人聲如沸旱爆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怀伦。三九已至脆烟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間房待,已是汗流浹背邢羔。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留桑孩,地道東北人拜鹤。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像洼怔,于是被迫代替她去往敵國和親署惯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • SELinux的基本概念設(shè)置SELinux 一镣隶、SELinux的基本概念 (一)定義: SELinux:Secur...
    哈嘍別樣閱讀 565評論 0 1
  • 1.SELinux: Secure Enhanced Linux ? DAC:Discretionary Acce...
    尛尛大尹閱讀 708評論 0 1
  • SELinux介紹 SELinux: Secure Enhanced Linux极谊, 是美國國家安全局(NSA=Th...
    頑媃啊閱讀 566評論 0 0
  • 一個程序被加載到內(nèi)存當(dāng)中運行,那么在內(nèi)存內(nèi)的那個數(shù)據(jù)就被稱為進程(process)安岂。進程是操作系統(tǒng)上非常重要的概念...
    Zhang21閱讀 1,944評論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理轻猖,服務(wù)發(fā)現(xiàn),斷路器域那,智...
    卡卡羅2017閱讀 134,693評論 18 139