安全增强机制--Selinux

1.基本 SELINUX 安全性概念

SELINUX(Security Enhanced Linux),意思是安全增强型Linux, 是可保护你系统安全性的额外机制

在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 , 并且系统上的文件和其他资源都设置了权限 (若要访问文件 ,你必须具有普通访问权限和 SELinux 访问权限。因此 , 即使以超级用户身份root 运行进程 , 根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源) 标签

2.SElinux安全上下文访问规则

web服务器的http进程设置了SElinux上下文system_u:system_r:httpd_t 标签。该上下文的重要部分是第三个用冒号分隔的字段,SElinux类型:httpd_t
系统上的文件和资源也设置了 SElinux上下文标签 , 并且重要的部分是 SElinux类型。例如 ,/var/www/html 中的文件具有类型 httpd_sys_content_t 。 /tmp 和 /var/tmp 中的文件通常具有类型 tmp_t
Selinux 策略具有允许以 httpd_t 身份运行的进程访问标记为httpd_sys_content_t 的文件的规则。没有规则允许这些进程访问标记有 tmp_t 的文件 , 因此将拒绝这些访问 , 即使常规文件权限指出应该允许这些访问

3.SElinux模式

Disabled不警告不拒绝/关闭状态
Enforcing强制模式,如果不符合会拒绝访问
Permissive警告模式,不符合会警告但是可以访问

锁定管理selinux状态

更改 selinux的开机状态

在配置文件vim /etc/sysconfig/selinux中修改:

修改后必须重启reboot,否则不生效

查看selinux状态

更改SELINUX 模式

简单更改,只能在enforcing和permissive两种状态之间切换

更改安全上下文

临时更改安全上下文:

chcon -t public_content_t file文件名

更改前

更改后

改目录以及目录下所有文件的改安全上下文

chcon -t public_content_t /ftpdir/ -R 

永久性修改安全上下文:

通过命令semanage fcontext -l | grep /var/ftp可以查看目录以及目录中文件的安全上下文

更改安全上下文

semanage fcontext -a -t public_content_t '/ftpdir(/ . *)?'

执行命令restorecon -FvvR /ftpdir让他生效

通过lftp也可以访问到

管理SElinux的布尔值:

  • SELinux 布尔值是更改 SELinux 策略行为的开关, 是可以启用或禁用的规则
  • 安全管理员可以使 SELinux 布尔值来调整策略 , 以有选择地进行调整
  • getsebool 用于显示布尔值 , setsebool 用于修改布尔值
  • setsebool -P 修改 SELinux 策略 , 以永久保留修改

例:匿名用户上传和下载

首先修改配置文件/etc/vsftpd/vsftpd.conf,开启上传和下载服务,重启vsftpd服务:

修改默认发布目录权限,组:

开启服务对应的bool值:

设置布尔值1开启,0关闭)也可以用on和off控制

更改默认发布目录的安全上下文,增加读写权限:

测试:在selinux为enforcing的状态下匿名用户可以很顺利的上传和下载文件

例:本地用户上传和下载

首先,在vsftpd配置文件中开启相应的服务,并重启vsftpd服务

修改ftp相应服务的bool值:

测试:可以看到,本地用户student可上传可删除可下载可建目录

监控 SELinux 冲突

  • 必须安装 setroubleshoot-server 软件包 , 才能将 SELinux消息发送至 /var/log/messages
  • setroubleshoot-server 侦听 /var/log/audit/audit.log 中的审核信息并将简短摘要发送至 /var/log/messages
  • 摘要包括 SELinux 冲突的唯一标识符 ( UUIDs ), 可用于收集更多信息
  • Sealert -l UUID 用于生成特定事件的报告。Sealert-a/var/log/audit/audit.log 用于在该文件中生成所有事件的报告
  • 当setroubleshoot-server 软件包存在时,客户端如果访问失败,cat /var/log/messages日志中会有解决方案
  • 如果卸载setroubleshoot-server 软件包  日志中没有解决方案
/var/log/audit/audit.logselinux日志存放位置
/var/log/messagesselinux解决方案

安装软件:

yum install setroubleshoot-server.x86_64

清空日志:

> /var/log/audit/audit.log

>/var/log/messages

查看ftp://172.25.254.205  发现看不到westos

cat /var/log/audit/audit.log  查看问题出在哪里

cat /var/log/messages         查看解决方案

检测:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值