SELinux 的運作模式
(2)若比對失敗則無法存取目標,若比對成功則可以開始存取目標。
安全性本文 (Security Context)
身份識別 (Identify): 相當於賬號方面的身份識別!主要的身份識別則有底下三種常見的類型:
SELinux 的啓動、關閉與觀察
注:如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他兩個,那也必須要重新啓動。
SELinux type 的修改
復原成原有的 SELinux type:
默認目錄的安全性本文查詢與修改
利用 semanage 設定 /srv/vbird 目錄的默認安全性本文爲 public_content_t(修改的就是默認值):
政策查詢:seinfo(需要安裝:yum install setools-console)
如果你想要找到有 httpd 字樣的安全性本文類別時, 就可以使用『 seinfo -t | grep httpd 』來查詢了!如果查詢到相關的類別或者是布爾值後,想要知道詳細的規則時, 就得要使用 sesearch 這個指令了!
布爾值的查詢與修改:(getsebool,setsebool)
整篇最重要的內容
SELinux 錯誤克服的總結:
##selinux:
selinux是進程,文件等權限設置依據的一個內核模塊。
selinux的啓動關閉與查看:
模式:vim/etc/sysconfig/selinux
enforceing:強制模式
permissive:警告模式
diabled:關閉,selinux並沒有實際運行
查看:
getenforce ##顯示selinux模式
setenforce 0|1 ##更改selinux模式
0:表示permissive警告模式
1:表示enforceing強制模式
顯示進程的selinux的安全上下文:
ps axuZ | grep vsftpd ##-Z參數可以查詢進程的安全上下文
測試:
touch file
mv file /var/ftp/pub
1)enforceing模式
ls ##不能看到從別處轉移過來的文件
2)permissive模式
ls ##可以看到從別處轉移過來的文件
ls -Z ##查看文件selinux的安全上下文,本地文件和從別處轉移過來的文件的selinux安全上下文是不一樣的
chcon -t public_content_t/var/ftp/pub/file 更改文件的selinux安全上下文,與本地文件一樣,此時在enforcing模式下也可以看到從別處移過來的文件
1.selinux的永久設定:
selinux=Enforcing時:
mkdir /westos
touch /westos/file{1..10}
ls /westos/
vim /etc/vsftpd/vsftpd.conf ##將匿名用戶的家目錄設置爲/westos: anon_root=/westos
systemctl restart vsftpd.service ##重啓服務
lftp 172.25.254.122 ##匿名用戶登陸的家目錄/westos,用ls進行查看看不到之前新建的10個文件
ps auxZ | grep vsftpd ##顯示vsftpd進程的安全上下文
ls -lZ /var/ftp ##查看/var/ftp文件selinux的安全上下文
ls -Zd /westos/ ##查看/westos目錄selinux的安全上下文
semanage fcontext -l | grepwestos ##查詢/westos的默認安全上下文設置
semanage fcontext -l | grep/var/ftp/ ##查看/var/ftp文件的默認安全上下文設置
semanage fcontext -a -tpublic_content_t '/westos(/.*)?' ##永久更改目/westos的selinux安全上下文和/var/ftp中的文件一樣
semanage fcontext -l | grep /var/ftp/
semanage fcontext -l | grepwestos
ls -Zd /westos/
restorecon -RvvF /westos/ ##恢復更改後的/westos的selinux的安全上下文
lftp 172.25.254.122
touch /westos/file11 ##在目錄中新建文件
lftp 172.25.254.122 ##用ls進行查看可以看到新建的file11文件,證明新建文件的安全上下文和目錄保持一致
ls -Z /westos/ ##查詢新建文件之後的目錄中所有文件的安全上下文,
##目錄的安全上下文被更改之後,目錄下新建文件的安全上下文和目錄保持一致
selinux=Permissive時:
##在selinux=Permissive時,不用修改/westos的安全上下文,用lftp連接之後直接可以看到/westos下建立的文件.
selinux默認關閉服務開啓:(selinux內核防火牆在enforcing狀態下會自動關閉一些不安全的服務)
getenforce ##查詢selinux狀態
vim /etc/vsftpd/vsftpd.conf ##默認情況下本地用戶具有寫的權限
lftp 172.25.254.122 -u student ##student用戶登陸,不能上傳文件
ls -ld /home/student/ ##查詢/home/student目錄權限
chmod u+w /home/student/ ##給/home/student增加寫的權限
lftp 172.25.254.122 -u student ##student用戶登陸,增加權限後依然不能上傳文件
getsebool -a | grep ftp ##查看所有ftp服務設定狀態
setsebool -P ftp_home_dir 1 ##直接將設置 寫入配置文件,修改之後會生效
參數P必須是大寫,否則命令無法執行
getsebool -a | grep ftp ##檢查是否開啓
lftp 172.25.254.122 -u student ##student用戶登陸,上傳文件成功
##由於進程的文件數量龐大,因此selinux服務會依據某些服務來制定基本的訪問安全性策略,這些策略裏還會有詳細的規則來制定不同的服務開放某些資源的訪問與否。