本文章介紹SELinux基礎、SELinux域及上下文的概念以及如何修改文件的上下文
SELinux(Secure Enhanced Linux)安全增強的Linux是NSA針對計算機基礎機構開發的一個全新的Linux安全機制
SELinux是一個內核級安全機制,內核2.6之後集成在Linux內核中
CentOS/RHEL默認開啓SELinux
SELinux定義了兩個基本概念:
域: 對進程進行限制
上下文: 對文件進行限制
以下可顯示文件的SELinux上下文信息:
ls -Z
以下可顯示進程的SELinux域信息:
- ps -Z
SELinux通過策略規定哪些域可以訪問哪些上下文(哪些進程可以訪問哪些文件)
SELinux有很多預置策略,我們通常不需要自定義策略,除非需要對自定義程序、服務進行SELinux保護
命令restorecon可以用來恢復一個文件的默認SELinux上下文:
- restorecon -R /var/www
命令chcon可以用來修改一個文件的SELinux上下文:
- chcon --reference=/etc/named.conf.orig /etc/named.conf
把/etc/named.conf的上下文更改成爲/etc/named.conf.orig 的上下文
CentOS/RHEL默認使用目標策略
SELinux有三種工作模式:
enforcing 強制模式,任何違反策略的行爲都會被禁止,並且產生警告信息
permissive 允許模式,違反策略的行爲不會被禁止,只產生警告信息
disabled 關閉SELinux
SELinux模式可以通過修改配置文件:/etc/sysconfig/selinux進行修改
命令getenforce可以查看當前SELinux工作模式
命令setenforce可以修改當前SELinux工作模式
比如說我們現在開啓了httpd服務,目錄下沒有文件,訪問127.0.0.1出現的是默認的Apache網頁,
如果說我們在root的根目錄下創建一個index.html的文件,然後移動到/var/www/html下,然後我們再刷新網頁,但是網頁還是原來的樣子,那麼現在這種情況就是SElinux的目標策略在起作用,也就是說,index.html的文件的上下文和/var/www/html的上下文不一樣才導致我們無法正常訪問正確的網頁。
那麼我們進入/var/www目錄下通過命令:
restorecon -R /var/www/html 恢復一下這個文件夾以及這個文件夾下的所有文件的上下文。
上下文更改之後,我們就可以正常訪問了。