乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Linux_seLinux 大致介绍
2017-02-26 03:28:42
74
0
0
admin
> seLinux 由美国NASA开发,是一种控制某些程序只能访问某些资源的安全策略,是对传统的基于用户和组的安全控制方式的一种补充。其配置较为复杂,使用成本较高,目前没看到什么公司真的在大规模使用。。。。 #seLinux 的意义 举个例子,httpd 服务通常是root 进程,但是如果httpd 有漏洞,那么黑客入侵了httpd 就等于获得了这台机器的root权限,而seLinux 就是控制了即使是root,在跑httpd 进程的时候也只有网站服务所需要的权限,所以黑客即使控制了httpd,最多也就只能影响这台机器的网站服务。 个人认为seLinux 未来不会有市场,docker的资源隔离也可以有效防止上述情况 **强调一下** seLinux 不能代替传统的权限认证,只是一种补充 只有传统的权限认证通过后,才会由seLinux继续判断其是否可以通过seLinux验证。 *** #一些概念 ##安全上下文: 每个文件都会被赋予安全上下文。通常情况下,目录下建立的文件的安全上下文与目录相同。 进程也有自己的安全上下文,可执行文件运行时候,进程会继承可执行文件的类型。  **格式:** 身份:角色:类型:级别 级别分为abcd 四个级别,a最高。 一个进程,可以读写与自己级别相同的文件,只能写级别更高的文件,只能读级别更低的文件 同一个级别还通过数字分成了不同的小级别。。。 **要SELINUXTYPE=mls 模式才能使用级别这一功能** ##策略: 就是规定只有某些上下文属性的进程才能访问某些文件 自定义策略好麻烦,要用专门的seLinux 语法build sesLinux Policy 包。。。。。 *** #seLinux 简单使用 ##启动、关闭 seLinux 有三个模式 **enforcing**:检查权限并阻止不满足条件的 **permissive**: 检查权限但不阻止不满足条件的 **disabled**:关闭 当前的模式可以用**getenforce** 命令查看 **enforcing** 和 **permissive** 可以在用 **setenforce 0/1**命令动态切换,**0**代表**permissive**,**1**代表**enforcing** 切换**disabled** 需要重启。 修改以下文件可以永久性设置 ``` [root@hadoop1 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted ``` *当你切换模式的时候,尤其从disabled 切换到开启的时候,很多文件可能没有上下文设置,如果“touch /.autorelabel”就可以让系统启动时候自动给一些文件加上上下文。* *** ##操作文件上下文 ###修改文件上下文 chcon [-R] [-t 类型] [-u 身份] [-r 角色] file -R 递归修改整个目录 chcon [-R] --reference=范例文件 文件1 文件2 #参照范例文件修改其他文件的上下文 *** ###恢复文件默认上下文 restorecon [-Rv] file -R 递归修改整个目录 -v 显示过程 *** ###修改文件默认上下文 需要使用到命令semanage (yum -y install policycoreutils-python) semanage fcontext 是对文件上下文操作,具体看man semanage fcontext [-S store] -{a|d|m|l|n|D} [-frstN] file_spec semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target -a 增加/-d 删除/-m 修改/-l 列出/-e 相等 semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?" restorecon -R -v /web *** ##操作策略 策略的格式是 名字 + 布尔值(就是某种情况下允许访问或不允许访问) ###查看策略布尔值 **命令seinfo** seinfo -t/-r/-u/-b/--all # 列出所有 type/role/user/policy 布尔值/全部 **命令sesearch** sesearch [-b] [-t] [--all] #-b policy 布尔值 / -t type / --all 所有 **命令getsebool** getsebool [-a] [policy 名称] **命令semanage** semanage boolean -l *** ###修改布尔值 **命令setsebool** setsebool [-P] [policy=0|1] #0 => 关闭 , 1 => 打开 -P 表示写进配置文件,重启后仍旧生效 *** #解决seLinux 产生的问题 利用selinux 的audit 服务日志来寻找解决方案 yum -y install setroubleshoot /etc/init.d/auditd status sealert -a /var/log/audit/audit.log 这个命令的输出会告诉你什么被阻止了,如果不想被阻止,可以怎么做。
上一篇:
Linux_kernel 1.0 系统启动:/boot/grub
下一篇:
Linux_防火墙
文档导航