关于网站项目建设的申请,汕头公司建站模板,三个页面的网页作品模板,哪个搜索引擎能搜敏感内容Selinux讲解
1、selinux的概述
Selinux的历史
Linux安全性与windows在不开启防御措施的时候是一样的#xff1b;同样是C2级别的安全防护安全级别评定#xff1a; D–C1–C2–B1–B2–B3–A1 D级#xff0c;最低安全性C1级#xff0c;主存取控制…Selinux讲解
1、selinux的概述
Selinux的历史
Linux安全性与windows在不开启防御措施的时候是一样的同样是C2级别的安全防护安全级别评定 D–C1–C2–B1–B2–B3–A1 D级最低安全性C1级主存取控制C2级较完善的自主存取控制DAC)B1级强制存取控制MACB2级良好的结构化设计、形式化安全模型B3级全面的访问控制、可信恢复A1级形式化认证
selinux的实现模型
Selinux创造者美国国家安全局NationalSecurityAgency简写为NSA
主题一个进程访问一个文件 相当于这个进程就是主题 客体被进程访问的文件规则体系 强制访问规则要求防篡改、无旁路、可验证
Selinux在Linux中的地位变化
需要手动加载的一个外部模块直接写到内核的一个模块成为一部分Linux发行版本的内核中的一部分特性 提高了 Linux 系统内部的安全等级对于进程和用户只赋予最小权限并且防止了权限升级即使受到攻击进程或者用户权限被夺去也不会对整个系统造成重大影响
selinux的原理理解
类型强制访问控制 主体和客体是存在一定的联系的例如–猫吃猫粮狗吃狗粮–不能互吃 多类型强制 如果规则库允许上面的例子是可以互吃的
2、安全上下文介绍
安全上下文的定义
所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的在SELiux中访问控制属性叫做安全上下文所有客体(文件、进程间通讯通道、套接字、网络主机等》和主体(进程》都有与其关联的安全上下文一个安全上下文由三部分组成: 用户角色类型标识符 安全上下文的格式用户角色类型
chcon命令
作用配置安全上下文的命令语法chcon 选项 【-t 类型】 【-u 用户】 【-r 角色】文件选项 -R连同该目录下的此目录也同时修改-t指定安全性文本的类型字段-u指定身份识别–system_u-r后面跟的是角色–system_r
restorecon命令
作用还原成原有的selinux type语法 restorecon 【RV】 文件或者目录选项 -R连同此目录一起修改递归修改-v显示过程
setenforce命令
作用设置selinux的开关语法selinux 0|1 0代表关闭1代表开启
getenforce命令
作用查看selinux的状态语法selinux
实验演示selinux
#永久修改selinux关闭的文件
[rootnode1 ~]# vim /etc/selinux/config #这里就注意一个选项
SELINUXenforcing#三种模式--enforcing打开模式--permissive可以调试的模式--disabled关闭模式
#selinux的开通与关闭和配置文件有关系--如果打开了selinux的话开机会明显变慢#如果disabled的状态命令是无法调用内核的selinux模块的#安装一个httpd服务
[rootnode1 ~]# echo 11111 /var/www/html/index.html#然后修改主页
[rootnode1 ~]# echo 11111 /var/www/html/index.html#然后启动
[rootnode1 ~]# service httpd start#开启selinux
[rootnode1 ~]# setenforce 1
#这时候可以直接访问--可以访问到自己看到的页面
http://192.168.75.11/#然后把httpd服务的默认页面修改到/www#创建一个/www--创建默认页面
[rootnode1 ~]# mkdir /www
[rootnode1 ~]# echo 222222222 /www/index.html
[rootnode1 ~]# chmod 777 /www/index.html #直接关闭iptables
[rootnode1 ~]# service iptables stop
#以上的配置足以说面正常的安全防护都已经全部开了--为了看selinux的效果#然后直接修改httpd的配置文件--直接让默认页面去到--/www/index.html
[rootnode1 ~]# vim /etc/httpd/conf/httpd.conf
................292 DocumentRoot /www #修改了默认路径.......317 Directory /www
#重启--然后访问
[rootnode1 ~]# service httpd restart#访问会直接跳转到apache的默认页面
http://192.168.75.11/#从这里可以说明--防火墙关了、权限关了--但是任然看不到就是selinux的问题#查看文件的角色和类型--很明显不相同
[rootnode1 ~]# ll -Z /var/www/html/index.html
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
[rootnode1 ~]# ll -Z /www/index.html
-rwxrwxrwx. root root unconfined_u:object_r:default_t:s0 /www/index.html#修改文件的用户角色类型
[rootnode1 ~]# chcon -t httpd_sys_content_t -R /www/#再次访问--访问成功了#关闭selinux--还原文件
[rootnode1 ~]# setenforce 0
[rootnode1 ~]# restorecon -Rv /www/
restorecon reset /www context unconfined_u:object_r:httpd_sys_content_t:s0-unconfined_u:object_r:default_t:s0
restorecon reset /www/index.html context unconfined_u:object_r:httpd_sys_content_t:s0-unconfined_u:object_r:default_t:s03、selinux的布尔值
Managing Boole管理Selinux布尔值
Selinux布尔值就相当于一个开关精确控制SElinux对某个服务的某个选项的保护
#查看selinux对服务的文件的布尔值
[rootlocalhost ~]# getsebool -a | grep samba
samba_create_home_dirs -- off
samba_domain_controller -- off
samba_enable_home_dirs -- off
samba_export_all_ro -- off
samba_export_all_rw -- off
samba_portmapper -- off
samba_run_unconfined -- off
samba_share_fusefs -- off
samba_share_nfs -- off
sanlock_use_samba -- off
use_samba_home_dirs -- off
virt_use_samba -- off
getsebool -a
作用命令列出系统中可用的Selinux布尔值语法getsebool选项选项 -a查看全部
setsebool命令
作用用于改变selinux的布尔值语法sesebool选项
#开启samba家目录是否能访问的控制#安装samba
[rootnode1 ~]# yum -y install samba#创建两个用户
[rootnode1 ~]# useradd zhangsan
useradd: user zhangsan already exists
[rootnode1 ~]# echo 123456 | passwd --stdin zhangsan
[rootnode1 ~]# useradd lisi
useradd: user lisi already exists
[rootnode1 ~]# echo 123456 | passwd --stdin lisi
Changing password for user lisi.
passwd: all authentication tokens updated successfully.#把这两个用户转换到samba用户
[rootnode1 ~]# pdbedit -a zhangsan
new password:
retype new password:
[rootnode1 ~]# pdbedit -a lisi#创建samba的共享目录
[rootnode1 ~]# mkdir /samba
[rootnode1 ~]# chmod 777 /samba/#修改samba的配置文件
[rootnode1 ~]# vim /etc/samba/smb.conf#指定认证的等级security userpassdb backend tdbsam#在末行添加共享规则
[public]
comment Public Stuff
path /samba
public yes
writable yes#启动samba--创建文件
[rootnode1 ~]# service smb start
Starting SMB services: [ OK ]
[rootnode1 ~]# touch /samba/{1..5}.txt
[rootnode1 ~]# chmod 777 -R /samba/*
#开启selinux
[rootnode1 ~]# setenforce 1#这里使用--另外一台主机登陆samba
[rootnode2 ~]# smbclient -U zhangsan //192.168.75.11/public
Enter zhangsans password:
Domain[MYGROUP] OS[Unix] Server[Samba 3.6.9-151.el6]#这里查看发现没有文件
smb: \ ls
NT_STATUS_ACCESS_DENIED listing \*#如果想看的话还是得修改samba的文件类型修改
[rootnode1 ~]# ll -Z /samba/
-rwxrwxrwx. root root unconfined_u:object_r:default_t:s0 1.txt
..........#直接开启
[rootnode1 ~]# chcon -t samba_share_t -R /samba/#再次访问就成功了
[rootnode2 ~]# smbclient -U zhangsan //192.168.75.11/public
Enter zhangsans password:
Domain[MYGROUP] OS[Unix] Server[Samba 3.6.9-151.el6]
smb: \ ls. D 0 Tue Feb 7 04:53:23 2023.. DR 0 Tue Feb 7 04:48:30 2023#查看selinux的布尔值
[rootnode1 ~]# getsebool -a | grep samba
samba_create_home_dirs -- off
samba_domain_controller -- off
samba_enable_home_dirs -- off
samba_export_all_ro -- off
samba_export_all_rw -- off
samba_portmapper -- off
samba_run_unconfined -- off
samba_share_fusefs -- off
samba_share_nfs -- off
sanlock_use_samba -- off
use_samba_home_dirs -- off
virt_use_samba -- off#这里可以实现上传和下载隔离需求
#设置布尔值
[rootnode1 ~]# setsebool -P samba_export_all_ro on