學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 網(wǎng)絡(luò)安全知識(shí) >

安全防護(hù)軟件Selinux使用詳解

時(shí)間: 加城1195 分享

  網(wǎng)絡(luò)安全是目前互聯(lián)網(wǎng)的熱門話題之一,作為個(gè)人用戶的我們同樣需要關(guān)注,做好防護(hù)。SELinux(Security-Enhanced Linux) 是美國(guó)國(guó)家安全局(NSA)對(duì)于強(qiáng)制訪問(wèn)控制的實(shí)現(xiàn),是 Linux® 上最杰出的新安全子系統(tǒng)。今天小編要為大家?guī)?lái)的就是CentOS上的安全防護(hù)軟件Selinux詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧

  具體介紹

  SELinux(Security-Enhanced Linux) 是美國(guó)國(guó)家安全局(NSA)對(duì)于強(qiáng)制訪問(wèn)控制的 實(shí)現(xiàn),是 Linux歷史上最杰出的新安全子系統(tǒng)。NSA是在Linux社區(qū)的幫助下開發(fā)了一種訪問(wèn)控制體系,在這種訪問(wèn)控制體系的限制下,進(jìn)程只能訪問(wèn)那些在他的 任務(wù)中所需要文件。SELinux 默認(rèn)安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作為其他發(fā)行版上容易安裝的包得到,2000年以GNU GPL發(fā)布,Linux內(nèi)核2.6版本后集成在內(nèi)核中

  DAC:Discretionary Access Control自由訪問(wèn)控制

  MAC:Mandatory Access Control 強(qiáng)制訪問(wèn)控制

  DAC環(huán)境下進(jìn)程是無(wú)束縛的

  MAC環(huán)境下策略的規(guī)則決定控制的嚴(yán)格程度

  MAC環(huán)境下進(jìn)程可以被限制的

  策略被用來(lái)定義被限制的進(jìn)程能夠使用那些資源(文件和端口)

  默認(rèn)情況下,沒(méi)有被明確允許的行為將被拒絕

  selinux的工作類型

  selinux一共有四種工作類型

  strict:每個(gè)進(jìn)程都受到selinux的控制

  targeted:用來(lái)保護(hù)常見(jiàn)的網(wǎng)絡(luò)服務(wù),僅有限進(jìn)程受到selinux控制,系統(tǒng)當(dāng)中默認(rèn)設(shè)置類型

  minimum:這個(gè)模式在centos7上,是targeted的修改版,只對(duì)選擇的網(wǎng)絡(luò)服務(wù),僅對(duì)選中的進(jìn)程生效

  mls:提供mls機(jī)制的安全性,國(guó)防級(jí)別的

  selinux安全上下文

  傳統(tǒng)的linux,一切皆文件,由用戶、組、權(quán)限來(lái)進(jìn)行訪問(wèn)控制,這當(dāng)中有很多的缺陷

  在selinux中,一切皆對(duì)象(進(jìn)程),有存放在inode的擴(kuò)展屬性域的安全元素所控制其訪問(wèn)

  所有文件和端口資源和進(jìn)程都具備安全標(biāo)簽,這就是安全上下文

  安全上下文有五個(gè)元素組成

  system_u:object_r:admin_home_t:s0

  user:role:type:sensitivity:category

  user:指示登錄系統(tǒng)的用戶類型,如root,user_u,system_u,多數(shù)本地進(jìn)程都屬于自由進(jìn)程

  role:定義文件,進(jìn)程和用戶的用途,文件:object_r,進(jìn)程和用戶:system_r

  type:指定數(shù)據(jù)類型,規(guī)則重定義何種進(jìn)程類型訪問(wèn)何種文件,target策略基于type實(shí)現(xiàn),多服務(wù)功用,public_content_t

  sensitivity:限制訪問(wèn)的需要,由組織定義的分層安全級(jí)別,如unclassified,secret,top,一個(gè)對(duì)象有且只有一個(gè)sensitivity,分0-15個(gè)級(jí)別,s0最低,target策略默認(rèn)使用是s0

  category:對(duì)于特定組織劃分不分層的分類,如FBI secret,NSA secret,一個(gè)對(duì)象可以有多個(gè)category, c0-c1023共1024個(gè)分類,target策略不適用category

  查看安全上下文

  ls –Z ; ps -Z

  期望(默認(rèn))上下文:存放在二進(jìn)制的selinux策略庫(kù)中

  semanage fcontext –l 查看系統(tǒng)中的默認(rèn)安全上下文

  @font-face {

  font-family: “宋體”;

  }@font-face {

  font-family: “Cambria Math”;

  }@font-face {

  font-family: “Calibri”;

  }@font-face {

  font-family: “@宋體”;

  }p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: “Calibri”,”sans-serif”; }.MsoChpDefault { font-family: “Calibri”,”sans-serif”; }div.WordSection1 { }

  selinux策略

  對(duì)象(object):所有可以讀取的對(duì)象,包括文件、目錄和進(jìn)程,端口等

  主體:進(jìn)程稱為主題(subject)

  selinux中對(duì)所有的文件都賦予一個(gè)type的文件類型標(biāo)簽,對(duì)于所有的進(jìn)程也賦予各自的一個(gè)domain標(biāo)簽。domain標(biāo)簽?zāi)軌驁?zhí)行的操作由安全策略里定義

  當(dāng)一個(gè)subject視圖訪問(wèn)一個(gè)object,kernel中的粗略執(zhí)行服務(wù)器將檢查AVC,在AVC中,subject和object的權(quán)限被緩存,查找應(yīng)用+文件的安全環(huán)境,然后根據(jù)查詢結(jié)果允許或拒絕訪問(wèn)

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

  設(shè)置selinux

  配置selinux

  selinux是否啟用

  給文件重新打安全標(biāo)簽

  給端口設(shè)置安全標(biāo)簽

  設(shè)定某些操作的布爾型開關(guān)

  selinux的日志管理

  selinux的狀態(tài)

  enforcing:強(qiáng)制,每個(gè)受限的進(jìn)程都必然受限

  permissive:允許;每個(gè)受限的進(jìn)程違規(guī)操作不會(huì)被禁止,但會(huì)被記錄與審計(jì)日志

  disabled:禁用,允許任何操作

  getenforce:獲取selinux當(dāng)前狀態(tài)

  sestatus:查看selinux狀態(tài)

  setenforce 0|1

  0:設(shè)置為permissive

  1:設(shè)置為enforcing

  配置文件

  /etc/sysconfig/selinux鏈接文件鏈接到/etc/selinux/config

  /etc/selinux/config

  # 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=enforcing 設(shè)置selinux的狀態(tài)

  SELINUXTYPE=targeted 設(shè)置selinux的工作類型

  設(shè)置selinux也可以在開機(jī)的時(shí)候設(shè)定,在/boot/grub/grub.conf文件內(nèi)核那一行后面設(shè)定selinux的狀態(tài)selinux=0|1,只要配置文件或內(nèi)核設(shè)定為禁用,最后selinux的狀態(tài)為禁用

  注意:在從disabled狀態(tài)切換至enforcing或permissive狀態(tài)需要重啟系統(tǒng),這時(shí)候系統(tǒng)會(huì)對(duì)每一個(gè)文件一一重打標(biāo)簽,需要花費(fèi)一定的時(shí)間。

  修改selinux 的安全標(biāo)簽

  給文件重新打安全標(biāo)簽

  chcon [OPTION]… [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..

  chcon [OPTION]… –reference=RFILE FILE..

  -R:遞歸打標(biāo),對(duì)目錄而言

  例如我想給自己定義的web文檔根目錄自定義為/htdocs

  chcon -R httpd_sys_content_t /htdocs

  恢復(fù)目錄或文件默認(rèn)的安全上下文

  resotrecon [-R] /path/to/somewhere

  例如:我又將web的文檔根目錄改為原來(lái)的目錄,這時(shí)候自定義的目錄的標(biāo)簽需要還原

  restorecon -R /htdocs

  恢復(fù)是根據(jù)策略庫(kù)當(dāng)中的策略進(jìn)行還原

  默認(rèn)安全上下文查詢與修改

  semanage來(lái)自policycoreutils-python包,有些系統(tǒng)默認(rèn)沒(méi)有安裝,安裝次包即可使用semanage命令

  查看默認(rèn)的安全上下文

  semanage fcontext –l

  添加安全上下文

  semanage fcontext -a –t httpd_sys_content_t ‘/home/hadoop(/.*)?’

  restorecon –Rv /home/hadoop 此步驟一定不能忘記,它從策略庫(kù)進(jìn)行還原安全上下文,執(zhí)行此命令才會(huì)生效

  刪除安全上下文

  semanage fcontext –d –t httpd_sys_content_t ‘/home/hadoop(/.*)?’

  selinux端口標(biāo)簽

  查看端口標(biāo)簽

  semanage port -l

  添加端口

  semanage port -a -t port_label –p tcp|udp port

  semanage port –a -t htt_port_t -p tcp 8080

  刪除端口

  semanage port -d -t port_label -p tcp|udp port

  semanage port -d -t htt_port_t -p tcp 8080

  修改現(xiàn)有(已存在)端口為新標(biāo)簽

  semanage port -m –t port_label –p tcp|udp port

  semanage port –m –t ssh_port_t –p tcp 8080 將ssh服務(wù)的端口改為8080

  selinux布爾值

  查看布爾值命令

  getsebool [-a] [boolean]

  semanage boolean –l -C 查看修改過(guò)的布爾值

  設(shè)置bool值命令

  setsebool [-P] boolean value (on|off|1|0)

  setsebool httpd_enable_homedirs on|1 開啟httpd家目錄訪問(wèn),但不會(huì)寫入策略庫(kù)中

  setsebool -P httpd_enable_homedirs on|1

  修改bool值時(shí)后面的值可以對(duì)布爾值類型后跟=加值的設(shè)置方法

  setsebool httpd_enable_homedirs=on

  selinux的日志管理

  需要安裝settroublesshoot*安裝此包需要重啟系統(tǒng)才能生效,它會(huì)將錯(cuò)誤日志記錄到/var/log/message

  grep setroubleshoot /var/log/message

  sealer -l UUID

  查看安全事件日志說(shuō)明

  sealert -a /var/log/audit/audit.log

  掃描并分析日志

  yum -y install selinux-policy-devel(centos7)

  yum –y install selinux-policy-doc (centos6)

  mandb | makewhatis 需要更新man幫助的數(shù)據(jù)才能查詢

  man -k _selinux

  例如man httpd_selinux

  總結(jié):selinux在安全防護(hù)上確實(shí)起到了一定的作用,它是在內(nèi)核層面來(lái)工作,往往有許多的漏洞,一旦黑客利用漏洞入侵系統(tǒng)后果不堪設(shè)想,還有其 操作的繁瑣和穩(wěn)定性的欠缺的導(dǎo)致很多企業(yè)不愿意用到selinux ,一般都會(huì)使用硬件的安全防護(hù)設(shè)備,所以我們只需要作為了解,知道有這么個(gè)東西,如何開關(guān)閉及一些簡(jiǎn)單的操作即可。

  相關(guān)閱讀:2018網(wǎng)絡(luò)安全事件:

  一、英特爾處理器曝“Meltdown”和“Spectre漏洞”

  2018年1月,英特爾處理器中曝“Meltdown”(熔斷)和“Spectre” (幽靈)兩大新型漏洞,包括AMD、ARM、英特爾系統(tǒng)和處理器在內(nèi),幾乎近20年發(fā)售的所有設(shè)備都受到影響,受影響的設(shè)備包括手機(jī)、電腦、服務(wù)器以及云計(jì)算產(chǎn)品。這些漏洞允許惡意程序從其它程序的內(nèi)存空間中竊取信息,這意味著包括密碼、帳戶信息、加密密鑰乃至其它一切在理論上可存儲(chǔ)于內(nèi)存中的信息均可能因此外泄。

  二、GitHub 遭遇大規(guī)模 Memcached DDoS 攻擊

  2018年2月,知名代碼托管網(wǎng)站 GitHub 遭遇史上大規(guī)模 Memcached DDoS 攻擊,流量峰值高達(dá)1.35 Tbps。然而,事情才過(guò)去五天,DDoS攻擊再次刷新紀(jì)錄,美國(guó)一家服務(wù)提供商遭遇DDoS 攻擊的峰值創(chuàng)新高,達(dá)到1.7 Tbps!攻擊者利用暴露在網(wǎng)上的 Memcached 服務(wù)器進(jìn)行攻擊。網(wǎng)絡(luò)安全公司 Cloudflare 的研究人員發(fā)現(xiàn),截止2018年2月底,中國(guó)有2.5萬(wàn) Memcached 服務(wù)器暴露在網(wǎng)上 。

  三、蘋果 iOS iBoot源碼泄露

  2018年2月,開源代碼分享網(wǎng)站 GitHub(軟件項(xiàng)目托管平臺(tái))上有人共享了 iPhone 操作系統(tǒng)的核心組件源碼,泄露的代碼屬于 iOS 安全系統(tǒng)的重要組成部分——iBoot。iBoot 相當(dāng)于是 Windows 電腦的 BIOS 系統(tǒng)。此次 iBoot 源碼泄露可能讓數(shù)以億計(jì)的 iOS 設(shè)備面臨安全威脅。iOS 與 MacOS 系統(tǒng)開發(fā)者 Jonathan Levin 表示,這是 iOS 歷史上最嚴(yán)重的一次泄漏事件。

  四、韓國(guó)平昌冬季奧運(yùn)會(huì)遭遇黑客攻擊

  2018年2月,韓國(guó)平昌冬季奧運(yùn)會(huì)開幕式當(dāng)天遭遇黑客攻擊,此次攻擊造成網(wǎng)絡(luò)中斷,廣播系統(tǒng)(觀眾不能正常觀看直播)和奧運(yùn)會(huì)官網(wǎng)均無(wú)法正常運(yùn)作,許多觀眾無(wú)法打印開幕式門票,最終未能正常入場(chǎng)。

  五、加密貨幣采礦軟件攻擊致歐洲廢水處理設(shè)施癱瘓

  2018年2月中旬,工業(yè)網(wǎng)絡(luò)安全企業(yè) Radiflow 公司表示,發(fā)現(xiàn)四臺(tái)接入歐洲廢水處理設(shè)施運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)的服務(wù)器遭遇加密貨幣采礦惡意軟件的入侵。該惡意軟件直接拖垮了廢水處理設(shè)備中的 HMI 服務(wù)器 CPU,致歐洲廢水處理服務(wù)器癱瘓 。

  Radiflow 公司稱,此次事故是加密貨幣惡意軟件首次對(duì)關(guān)鍵基礎(chǔ)設(shè)施運(yùn)營(yíng)商的運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)展開攻擊。由于受感染的服務(wù)器為人機(jī)交互(簡(jiǎn)稱HMI)設(shè)備,之所以導(dǎo)致廢水處理系統(tǒng)癱瘓,是因?yàn)檫@種惡意軟件會(huì)嚴(yán)重降低 HMI 的運(yùn)行速度。


安全防護(hù)軟件相關(guān)文章:

1.電腦安全防護(hù)軟件排行

2.徹底關(guān)閉QQ安全防護(hù)進(jìn)程的方法

3.個(gè)人電腦安全防護(hù)工具有哪些

4.電腦安全防護(hù)

5.安全衛(wèi)士防火墻位置在哪

4041015