Linux——管理SElinux安全性
一、selinux概念:
1、什么是selinux?为什么要使用selinux?包括哪些模式?
(1)Selinux是用于确定进程可以访问那些文件、目录和端口的一组安全规则,主要目标是防止已遭泄露的系统服务访问用户数据。
(2)Selinux主要用于保护系统资源,使用特定方式特定用户操作和访问文件,防止系统资料被其他方式打开和修改。
(3)包括强制(enforcing)、许可(permissive)、禁用(disabled)三种模式。
2、什么是selinux上下文?selinux有哪些标签?
(1)selinux上下文:每个文件、进程、目录和端口都具有的专门的安全标签,标签代表了与安全有关的信息。selinux策略使用它来确定某个进程能否访问文件、目录或端口。
(2)selinux标签:用户、角色、类型(通常以_t结尾)和敏感度。
3、类型上下文(通常以t结尾):
httpd_t # web服务器
http_port_t # web服务器端口:
httpd_sys_content_t # /var/www/html中的目录和文件
tmp_t # /var/tmp和/tmp中的目录和文件
httpd_t # Apache
/var/www/html # Apache用户和组队该文档根目录具有读取权限
mysqld_t # MariaDB
mysqld_db_t # /data/mysql中的文件
注意:许多处理文件的命令都使用 -Z 选项和ps、ls、cp、mkdir命令组合,可以显示或设置selinux上下文。
4、更改当前的selinux模式:
getenforce # 确定当前的selinux值
# enforcing=1表示强制模式,enforcing=0表示许可模式,selinux=0表示禁用selinux
setenforce # 将selinux设置为其他模式
5、设置默认selinux模式:
编辑/etc/selinux/config文件来设置默认selinux
二、控制selinux文件上下文:
新文件通常会从父目录继承selinux上下文,确保他们有适当的上下文。
1、移动或复制设置了selinux上下文的文件:
移动(mv) # selinux上下文为创建它时所在目录的selinux上下文,保留了原始标签,不是目标目录的
复制(cp) # selinux上下文为继承父目录的标签
ls -Z #显示文件的selinux上下文
ls -Zd #显示目录的selinux上下文
注意:/var/www/html/index.html与父目录/var/www/html/具有相同的标签。
2、更改文件的selinux上下文:
semanage fcontext # 更改文件selinux上下文,包括文件的默认标签
restorecon # 将上下文应用于文件(添加-v选择显示运行的详细信息,可结合-R选项递归使用)
# -v 选项显示运行的详细过程
chcon #更改selinux上下文,设置存储在文件系统中的文件安全上下文,对于测试和实验很有用,但是不会将上下文更改保存到selinux上下文数据库中
3、semanage fcontext规则:
(1)正则表达式(/.*)?:匹配在表达式前面列出的目录并递归地匹配该目录中的所有内容。
(2)-a、-t选项:添加指定类型
(3)-d选项:删除指定类型
(4)-l选项:列出指定类型
注意:确保目录中所有文件都具有正确的文件上下文,先运行semanage fcontext -l命令,再运行restorecon命令。