Selinux是【security-Enhanced Linux】的簡稱,是美國國家安全局【NSA】和【SCC】開發的Linux的一個擴張強制訪問控制安全模塊。node
由於企業的業務平臺的服務器上存儲着大量的商務機密,我的資料,我的資料它直接關係到我的隱私問題。特別是政府的網站,做爲信息公開的平臺,它的安全就更顯得重要了。這些鏈接到互聯網的服務器,不可避免的要收到來自世界各地的各類猥褻。最壞的時候咱們的服務器被入侵,主頁文件被替換,機密文件被盜走。除了來自外部的威脅,內部人員的不法訪問,攻擊也是不可忽視的。對於這些攻擊或者說是威脅,固然有不少的辦法,有防火牆,入侵檢測系統,打補丁等等。由於Linux也和其餘的商用Unix同樣,不斷地有各種的安全漏洞被發現。linux
傳統的LinuxOS的不足之處。安全
雖然Linux比起Windows來講,它的可靠性,穩定性要好得多,可是他也是和其餘的Unix同樣,有着如下這些不足之處。服務器
DAC(discretionary access control,自主訪問控制):網絡
DAC機制就是指對象(好比程序,文件或者進程等)的擁有者能夠任意的修改或者是授予此對象的權限。例如傳統的Linux,Windows等。模塊化
MAC(Mandatory access control強制訪問控制):工具
MAC機制是指系統再也不容許對象(好比程序、文件或者文件夾等)的擁有者隨意修改或授予此對象相應的權限,而是透過強制的方式爲每一個對象統一授予權限,例如selinux。性能
selinux的優勢:測試
selinux系統比起一般的Linux系統來,安全性能要高得多,它經過對於用戶,進程權限的最小化,即便受到攻擊,進程或者用戶權限被奪去,也不會對整個系統形成重大影響。在標準Linux中,主體的訪問控制屬性是與進程經過在內核中的進程結構關聯的真實有效的用戶和組ID,這些屬性經過內核利用大量工具進行保護,包括登陸進程和setuid程序,對於文件,文件的inode包括一套訪問模式位,文件用戶和組ID,之前的訪問控制基於讀/寫/執行這三個控制位,文件全部者,文件全部者所屬組,其餘人各一套。在selinux中,訪問控制屬性老是安全上下文三人組形式,全部文件和主體都有一個關聯的安全上下文,標準Linux使用進程用戶/組ID,文件的訪問模式,文件用戶/組ID要麼能夠訪問,要麼被拒絕,selinux使用進程和客體的安全上下文,須要特別指出的是,由於selinux的主要訪問控制特性是類型強制,安全上下文中的類型標識符決定了訪問權。若要訪問文件,必須同時具備普通訪問權限和selinxu訪問權限,所以即便能夠用超級用戶root運行進程,根據進程以及文件或者資源的selinxu安全性上下文可能拒絕訪問文件或者資源。網站
設置開機啓動時,selinux的運行模式
[root@iZm5ej5ize8ferkknb8gbeZ source]# cat /etc/sysconfig/selinux # 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 - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted You have new mail in /var/spool/mail/root [root@iZm5ej5ize8ferkknb8gbeZ source]#
selinux參數值:
enforcing強行(報警並限制)
permissive許可(報警不限制)
disabled禁用
selinuxtype參數值:
targeted保護網絡相關服務
strict完整的保護功能,包含網絡服務,通常指令以及應用程序
mis多級別模塊化
查看SElinux的當前狀態,並對當前狀態作調整
[root@iZm5ej5ize8ferkknb8gbeZ source]# sestatus
SELinux status: disabled #默認關閉
[root@iZm5ej5ize8ferkknb8gbeZ source]#
查看安全上下文ls Z(查看文件的);ps Z(查看進程的)
[root@iZm5ej5ize8ferkknb8gbeZ source]# sestatus SELinux status: disabled [root@iZm5ej5ize8ferkknb8gbeZ source]# ls -Z /etc/passwd -rw-r--r-- root root ? /etc/passwd [root@iZm5ej5ize8ferkknb8gbeZ source]# ls -Zld /mnt/ drwxr-xr-x. 2 system_u:object_r:mnt_t:s0 root root 4096 Dec 26 2016 /mnt/ [root@iZm5ej5ize8ferkknb8gbeZ source]#
查看系統默認的安全上下文
[root@iZm5ej5ize8ferkknb8gbeZ source]# semanage fcontext -l
[root@iZm5ej5ize8ferkknb8gbeZ source]#
[root@iZm5ej5ize8ferkknb8gbeZ source]# getenforce
Disabled
[root@iZm5ej5ize8ferkknb8gbeZ source]#
1.臨時關閉(不用重啓)
setenforce 0
2.修改配置文件
將SELINUX=enforcing改成SELINUX=disabled
若是測試的話通常就關閉Selinux,正式環境的話能夠選擇開啓Selinux,不然容易被黑客攻擊