安全防護軟件Selinux使用詳解
網絡安全是目前互聯(lián)網的熱門話題之一,作為個人用戶的我們同樣需要關注,做好防護。SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是 Linux® 上最杰出的新安全子系統(tǒng)。今天小編要為大家?guī)淼木褪荂entOS上的安全防護軟件Selinux詳解,希望對大家會有幫助,有需要的朋友一起去看看吧
具體介紹
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的 實現(xiàn),是 Linux歷史上最杰出的新安全子系統(tǒng)。NSA是在Linux社區(qū)的幫助下開發(fā)了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的 任務中所需要文件。SELinux 默認安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作為其他發(fā)行版上容易安裝的包得到,2000年以GNU GPL發(fā)布,Linux內核2.6版本后集成在內核中
DAC:Discretionary Access Control自由訪問控制
MAC:Mandatory Access Control 強制訪問控制
DAC環(huán)境下進程是無束縛的
MAC環(huán)境下策略的規(guī)則決定控制的嚴格程度
MAC環(huán)境下進程可以被限制的
策略被用來定義被限制的進程能夠使用那些資源(文件和端口)
默認情況下,沒有被明確允許的行為將被拒絕
selinux的工作類型
selinux一共有四種工作類型
strict:每個進程都受到selinux的控制
targeted:用來保護常見的網絡服務,僅有限進程受到selinux控制,系統(tǒng)當中默認設置類型
minimum:這個模式在centos7上,是targeted的修改版,只對選擇的網絡服務,僅對選中的進程生效
mls:提供mls機制的安全性,國防級別的
selinux安全上下文
傳統(tǒng)的linux,一切皆文件,由用戶、組、權限來進行訪問控制,這當中有很多的缺陷
在selinux中,一切皆對象(進程),有存放在inode的擴展屬性域的安全元素所控制其訪問
所有文件和端口資源和進程都具備安全標簽,這就是安全上下文
安全上下文有五個元素組成
system_u:object_r:admin_home_t:s0
user:role:type:sensitivity:category
user:指示登錄系統(tǒng)的用戶類型,如root,user_u,system_u,多數(shù)本地進程都屬于自由進程
role:定義文件,進程和用戶的用途,文件:object_r,進程和用戶:system_r
type:指定數(shù)據(jù)類型,規(guī)則重定義何種進程類型訪問何種文件,target策略基于type實現(xiàn),多服務功用,public_content_t
sensitivity:限制訪問的需要,由組織定義的分層安全級別,如unclassified,secret,top,一個對象有且只有一個sensitivity,分0-15個級別,s0最低,target策略默認使用是s0
category:對于特定組織劃分不分層的分類,如FBI secret,NSA secret,一個對象可以有多個category, c0-c1023共1024個分類,target策略不適用category
查看安全上下文
ls –Z ; ps -Z
期望(默認)上下文:存放在二進制的selinux策略庫中
semanage fcontext –l 查看系統(tǒng)中的默認安全上下文
@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策略
對象(object):所有可以讀取的對象,包括文件、目錄和進程,端口等
主體:進程稱為主題(subject)
selinux中對所有的文件都賦予一個type的文件類型標簽,對于所有的進程也賦予各自的一個domain標簽。domain標簽能夠執(zhí)行的操作由安全策略里定義
當一個subject視圖訪問一個object,kernel中的粗略執(zhí)行服務器將檢查AVC,在AVC中,subject和object的權限被緩存,查找應用+文件的安全環(huán)境,然后根據(jù)查詢結果允許或拒絕訪問
安全策略:定義主體讀取對象的規(guī)則數(shù)據(jù)庫,規(guī)則中記錄了那個類型的主體使用了那個方法讀取哪一個對象是允許還是拒絕的,并且定義了那種行為是允許或拒絕
設置selinux
配置selinux
selinux是否啟用
給文件重新打安全標簽
給端口設置安全標簽
設定某些操作的布爾型開關
selinux的日志管理
selinux的狀態(tài)
enforcing:強制,每個受限的進程都必然受限
permissive:允許;每個受限的進程違規(guī)操作不會被禁止,但會被記錄與審計日志
disabled:禁用,允許任何操作
getenforce:獲取selinux當前狀態(tài)
sestatus:查看selinux狀態(tài)
setenforce 0|1
0:設置為permissive
1:設置為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 設置selinux的狀態(tài)
SELINUXTYPE=targeted 設置selinux的工作類型
設置selinux也可以在開機的時候設定,在/boot/grub/grub.conf文件內核那一行后面設定selinux的狀態(tài)selinux=0|1,只要配置文件或內核設定為禁用,最后selinux的狀態(tài)為禁用
注意:在從disabled狀態(tài)切換至enforcing或permissive狀態(tài)需要重啟系統(tǒng),這時候系統(tǒng)會對每一個文件一一重打標簽,需要花費一定的時間。
修改selinux 的安全標簽
給文件重新打安全標簽
chcon [OPTION]… [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..
chcon [OPTION]… –reference=RFILE FILE..
-R:遞歸打標,對目錄而言
例如我想給自己定義的web文檔根目錄自定義為/htdocs
chcon -R httpd_sys_content_t /htdocs
恢復目錄或文件默認的安全上下文
resotrecon [-R] /path/to/somewhere
例如:我又將web的文檔根目錄改為原來的目錄,這時候自定義的目錄的標簽需要還原
restorecon -R /htdocs
恢復是根據(jù)策略庫當中的策略進行還原
默認安全上下文查詢與修改
semanage來自policycoreutils-python包,有些系統(tǒng)默認沒有安裝,安裝次包即可使用semanage命令
查看默認的安全上下文
semanage fcontext –l
添加安全上下文
semanage fcontext -a –t httpd_sys_content_t ‘/home/hadoop(/.*)?’
restorecon –Rv /home/hadoop 此步驟一定不能忘記,它從策略庫進行還原安全上下文,執(zhí)行此命令才會生效
刪除安全上下文
semanage fcontext –d –t httpd_sys_content_t ‘/home/hadoop(/.*)?’
selinux端口標簽
查看端口標簽
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)有(已存在)端口為新標簽
semanage port -m –t port_label –p tcp|udp port
semanage port –m –t ssh_port_t –p tcp 8080 將ssh服務的端口改為8080
selinux布爾值
查看布爾值命令
getsebool [-a] [boolean]
semanage boolean –l -C 查看修改過的布爾值
設置bool值命令
setsebool [-P] boolean value (on|off|1|0)
setsebool httpd_enable_homedirs on|1 開啟httpd家目錄訪問,但不會寫入策略庫中
setsebool -P httpd_enable_homedirs on|1
修改bool值時后面的值可以對布爾值類型后跟=加值的設置方法
setsebool httpd_enable_homedirs=on
selinux的日志管理
需要安裝settroublesshoot*安裝此包需要重啟系統(tǒng)才能生效,它會將錯誤日志記錄到/var/log/message
grep setroubleshoot /var/log/message
sealer -l UUID
查看安全事件日志說明
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
總結:selinux在安全防護上確實起到了一定的作用,它是在內核層面來工作,往往有許多的漏洞,一旦黑客利用漏洞入侵系統(tǒng)后果不堪設想,還有其 操作的繁瑣和穩(wěn)定性的欠缺的導致很多企業(yè)不愿意用到selinux ,一般都會使用硬件的安全防護設備,所以我們只需要作為了解,知道有這么個東西,如何開關閉及一些簡單的操作即可。
相關閱讀:2018網絡安全事件:
一、英特爾處理器曝“Meltdown”和“Spectre漏洞”
2018年1月,英特爾處理器中曝“Meltdown”(熔斷)和“Spectre” (幽靈)兩大新型漏洞,包括AMD、ARM、英特爾系統(tǒng)和處理器在內,幾乎近20年發(fā)售的所有設備都受到影響,受影響的設備包括手機、電腦、服務器以及云計算產品。這些漏洞允許惡意程序從其它程序的內存空間中竊取信息,這意味著包括密碼、帳戶信息、加密密鑰乃至其它一切在理論上可存儲于內存中的信息均可能因此外泄。
二、GitHub 遭遇大規(guī)模 Memcached DDoS 攻擊
2018年2月,知名代碼托管網站 GitHub 遭遇史上大規(guī)模 Memcached DDoS 攻擊,流量峰值高達1.35 Tbps。然而,事情才過去五天,DDoS攻擊再次刷新紀錄,美國一家服務提供商遭遇DDoS 攻擊的峰值創(chuàng)新高,達到1.7 Tbps!攻擊者利用暴露在網上的 Memcached 服務器進行攻擊。網絡安全公司 Cloudflare 的研究人員發(fā)現(xiàn),截止2018年2月底,中國有2.5萬 Memcached 服務器暴露在網上 。
三、蘋果 iOS iBoot源碼泄露
2018年2月,開源代碼分享網站 GitHub(軟件項目托管平臺)上有人共享了 iPhone 操作系統(tǒng)的核心組件源碼,泄露的代碼屬于 iOS 安全系統(tǒng)的重要組成部分——iBoot。iBoot 相當于是 Windows 電腦的 BIOS 系統(tǒng)。此次 iBoot 源碼泄露可能讓數(shù)以億計的 iOS 設備面臨安全威脅。iOS 與 MacOS 系統(tǒng)開發(fā)者 Jonathan Levin 表示,這是 iOS 歷史上最嚴重的一次泄漏事件。
四、韓國平昌冬季奧運會遭遇黑客攻擊
2018年2月,韓國平昌冬季奧運會開幕式當天遭遇黑客攻擊,此次攻擊造成網絡中斷,廣播系統(tǒng)(觀眾不能正常觀看直播)和奧運會官網均無法正常運作,許多觀眾無法打印開幕式門票,最終未能正常入場。
五、加密貨幣采礦軟件攻擊致歐洲廢水處理設施癱瘓
2018年2月中旬,工業(yè)網絡安全企業(yè) Radiflow 公司表示,發(fā)現(xiàn)四臺接入歐洲廢水處理設施運營技術網絡的服務器遭遇加密貨幣采礦惡意軟件的入侵。該惡意軟件直接拖垮了廢水處理設備中的 HMI 服務器 CPU,致歐洲廢水處理服務器癱瘓 。
Radiflow 公司稱,此次事故是加密貨幣惡意軟件首次對關鍵基礎設施運營商的運營技術網絡展開攻擊。由于受感染的服務器為人機交互(簡稱HMI)設備,之所以導致廢水處理系統(tǒng)癱瘓,是因為這種惡意軟件會嚴重降低 HMI 的運行速度。
安全防護軟件相關文章:
4.電腦安全防護