SElinux学习总结

概念

SELinux:【Security-Enhanced Linux】安全增强式Linux,是一个Linux内核的安全模块,其提供了访问控制安全策略机制。SELinux是可保护你系统安全性的额外机制,在某种程度上,它可以被看作是与标准权限系统并行的权限系统。在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签 ( 控制哪些用户对哪些文件具有哪些访问权 SELinux 的另一个不同之处在于,若要访问文件,你必须具有普通访问权限和 SELinux 访问权限。因此,即使以超级用户身份 root 运行进程,根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源限 )。

SELinux模式

  1. SELinx支持3种模式
    • Enforcing:强制模式,表示Selinux正在运行中,且已按照正确规则进行限制;
    • Permissing: 宽容模式,表示Selinux正在运行中,会有警告信息但并不限制domain/type的访问。
    • Disable: 关闭模式,表示Selinux没有运行。
  2. 切换模式方式
getenforce			#SELinux的状态可以通过此命令查看

setenforce 0|1		#在开启状态下,切换强制和宽容模式
setenforce 0 		#宽容模式Permissing
setenforce 1		#强制模式Enforcing

vim /etc/vim /etc/sysconfig/selinux
SELINUX=enforcing|permissive|disabled
#修改配置文件,设置启动后模式
#注:配置文件生效,必须重启系统

安全上下文

  1. 概念
    1. 安全上下文:是针对程序访问文件设置的一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),”域”和”域类型”意思都一样,即都是安全上下文中的“TYPE”。
    2. 作用: 访问的凭证,特定的文件被特定的程序访问,会关闭系统认为不安全的所有功能
  2. 显示安全上下文
ls -Z 						#显示安全上下文
semanage fcontext -l		#查询安全上下文列表,但是需要'|grep'在列表中找出文件
  1. 修改安全上下文
  • 临时修改
    消除临时效果是需要selinux重启而不是系统重启
    SELinux重启的意思是enforcing启动机器一次,再改为disable启动机器一次
chcon命令					#修改对象(文件)的安全上下文
chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件... 
-h, --no-dereference		#影响符号连接而非引用的文件
    --reference=参考文件	#使用指定参考文件的安全环境,而非指定值
-R, --recursive				#递归处理所有的文件及子目录
-v, --verbose				#为处理的所有文件显示诊断信息
-u, --user=用户				#设置指定用户
-r, --role=角色				#设置指定角色
-t, --type=类型				#设置指定类型
-l, --range=范围			#设置指定范围
chcon -t public_content_t /testdir/filetest1
#改变/testdir/目录下的filetest1文件的安全上下文为public_content_t
  • 永久修改
semanage fcontext 命令				#用来查询与修改SELinux默认目录的安全上下文
semanage fcontext [选项] 文件路径 
-l			#查询安全上下文列表
-a			#增加一些目录的默认安全上下文类型到列表中
-d			#删除设置
semanage fcontext -l | grep '/testdir(/.*)?'
#在显示列表中查看是否有/testdir路径文件安全上下文设置
#/testdir(/.*)?格式表示testdir目录及目录下所有文件
semanage fcontext -a -t public_content_t '/westosdir(/.*)?'
#添加相应规则到安全上下文列表
semanage fcontext -d '/westosdir(/.*)?'
#删除列表中相应规则

布尔值

  1. SElinux布尔值:是针对服务程序功能设置的,是更改 SELinux 策略行为的开关。 SELinux 布尔值是可以启用或禁用的规则。安全管理员可以使 SELinux 布尔值来调整策略 , 以有选择地进行调整。
  2. 显示布尔值
getsebool [-a] [布尔值条款]
-a			#列出目前系统上面的所有布尔值条款设置为开启或关闭值
[root@station ~]# getsebool -a |grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
#显示所有布尔值条款设置中名字与ftp相关的
[root@station ~]# getsebool ftpd_anon_write
ftpd_anon_write --> off
#显示ftp匿名用户写权限开关情况
  1. 修改布尔值
setsebool [-P] 布尔值条款=[0|1]|[off|on]
-P				#直接将设置值写入配置文件,永久保留,0是关闭  1是开启
setsebool -P ftpd_anon_write on
setsebool -P ftpd_anon_write=1
#打开匿名上传功能selinux控制开关

例子

ftp服务匿名用户安全上下文设置

vim /etc/vsftpd/vsftpd.conf 
systemctl restart vsftpd.service 
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
#设置匿名用户上传功能
semanage fcontext -l |grep public_content
semanage fcontext -a -t public_content_rw_t "/var/ftp/pub(/.*)?"
restorecon -RvvF /var/ftp/pub
ls -Zd /var/ftp/pub/
#设置匿名用户安全上下文列表
getsebool -a |grep ftp
setsebool -P ftpd_anon_write on
#打开匿名上传功能selinux控制开关

监控SELinux冲突

  1. 必须安装 setroubleshoot-server 软件包 , 才能将 SELinux 消息发送至 /var/log/messages
  2. setroubleshoot-server服务负责侦听 /var/log/audit/audit.log 中的审核信息并将简短摘要发送至/var/log/messages
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值