一.SELinux的類型
- targeted : redhat默認使用,只是對一些比較敏感的進程做了SELinux限制。即部分使用SELinux。
- strict : 全部受SELinux限制。這種很麻煩,不太好控制。
- mils : 主要是軍方使用,是更爲嚴格的全面SELinux 。
二.SELinux的狀態
SELinux:Security Entenced Linux
.SELiux有兩種狀態:1.enforcing 2.permissive
enforcing:強制實行SELinux規則。
permissive:只是警告違反SELinux規則但並不阻止。
三.查看現在系統SELinux狀態
- getenforce
getenforce顯示是disabled,表示SELinux還沒有開啓,若要開啓就要改動它的配置文件/etc/sysconfig/selinux或/etc/selinux/config,將SELinux=enforcing或permissive,都將表示開機啓用。
2.setenforce
setenforce 0:表示permissive狀態。
setenforce 1:表示enforcing狀態。
- 如果要這些設置長久有效,需要改動配置文件/etc/selinux/config。
vim /etc/selinux/config
- 如果想要用圖形換界面設置,使用命令:system-config-selinux.
- 如果你想在開機時就改動對selinux的配置,可以在啓動時改動按E改動grub文件:
在kernel 後添加 selinux=o(禁用selinux)或selinux=1(啓用selinux)
如果你已經知道selinux的配置文件設置的是啓用selinux,你只是想改變它的狀態:
kernel 後添加:
enforce=1(enfocing狀態)
enforce=0(permissive狀態)
四.SELiunx的應用。
- SELinnux實現是基於ext3的擴展屬性exttr,查看文件的擴展屬性使用命令:lsattr.
2.查看文件的跟多selinux屬性
文件的擴展屬性在selinux中叫做label(標籤),label和policy(策略)組成了selinux的安全上下文context。
ls –z (可以查文件或目錄的label)
注:冒號將label分成了三段:第一段是屬主,這個屬主不同於Linux中的屬主,是selinux特有的屬主;第二段是role,是subject或object;第三段是domian或type,所屬的域。
ls --context (查看安全上下文)
ls --scontext (只查看安全上下文)
ls --lcontext (顯示更多的屬性信息)
3.更改label
chcon
-t :該類型
-R:recursive,遞歸。
-u:改變用戶
chcon -t
--reference
chcon --reference a.selinux b.selinux :以a爲準更改b的label
restorecon :恢復默認標籤
這些默認標籤設置在/etc/selinux/targeted/contexts/files下的file_contexts.homedirs中
vim /file_contexts.homedirs
4.進程的標籤
ps -auxz
注:unconfiined:表示沒有label,它不受SELlinux控制。因爲我們的RedHat默認選的是targets。
5..用戶的安全上下文
id 用戶名
6.policy
策略就是一條條的規則(role)。其中一些是二進制的(布爾型)
,這樣的方式可以讓規則立即生效,而不需要重啓系統。
getsebool -a (查看所有能用布爾型調整的)
更改某個服務的布爾值
命令格式: getsebool 服務名 on|0ff
on:開啓 off:關閉
也可以用數值
1:開啓 0:關閉
注:這樣的更改都是臨時有效地,重啓系統後就沒了。想要更改長久有效,則在執行命令是加 -p選項。
五.圖形化更改
system-config-selinux
注:這樣的圖形修改如SELinux和防火牆的設置都會因爲默認的設置而將圖形化的設置屏蔽了,所以並不建議在這兩個方向上使用圖形化的設置。