18.selinux---内核级加强型防火墙

本文介绍了SELinux,一种内核级的强制访问控制系统,用于增强Linux系统的安全。主要内容包括:SELinux的基本概念、作用,如何通过添加安全上下文保护文件和进程,管理SELinux的开关,以及在enforcing模式下处理匿名FTP用户和本地用户的权限问题。此外,还提到了与SELinux相关的日志分析。
摘要由CSDN通过智能技术生成

1.selinux

selinux—内核级加强型防火墙

  • selinux是一种控制服务安全,是内核上面的一个插件,也叫做内核加强型火墙
  • SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统
  • NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件
  • SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到
  • SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统
  • 对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的
  • SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念`

(1)针对文件,会对系统中每个文件添加安全上下文(context)
(2)针对进程,会对系统中每个进程添加安全上下文(context)
(3)会在系统服务上设定sebool开关
(4)当进程的安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
(5)sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool的值

  • selinux的影响:
    一是对服务功能的影响;
    二是对文件的影响

2.管理selinux

selinux的开关

vim /etc/sysconfig/selinux

代码说明
SELINUX=enforcingselinux开启,级别为强制(对文件安全上下文的设定)<切换到此状态时,必须reboot重启>
SELINUX=permissiveselinux开启,级别为警告
SELINUX=disabledselinux关闭,级别为禁用
setenforce=0/1更改selinux当前的级别,0–警告,1–强制
getenforce查看selinux的状态

**注意:**当selinux从关到开(或从开到关),需要reboot重启系统
在这里插入图片描述
在这里插入图片描述

临时更改文件安全上下文—适用于更改文件

chcon -t 安全上下文 文件
chcon -t public_content_t /var/ftp/zxyos2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:chcon 命令临时修改安全上下文后,系统reboot重启,安全上下文会恢复到默认

永久更改文件安全上下文
semanage fcontext -l
semanage fcontext -a -t public_content_t  /var/ftp/     /*永久更改文件安全上下文*/
restorecon -Rvvf /var/ftp/     /*刷新*/

在这里插入图片描述
注意:semanage 命令永久修改安全上下文后,系统reboot重启,安全上下文不会恢复到默认

selinux设置为enforcing匿名用户仍然可以登陆ftp服务器
匿名用户:

步骤一:使用 getsebool -a | grep ftp 查看所有ftp的功能的状态
步骤二setsebool -P ftpd_anon_write on 让匿名用户可以上传 (-P 永久)
当 ftpd_anon_write -->off 时,匿名用户是不能上传的
当 ftpd_anon_write -->on 时,匿名用户可以上传

getsebool -a | grep ftp
setsebool -P ftpd_anon_write on
getsebool -a | grep ftp

在这里插入图片描述
在这里插入图片描述
步骤三chcon -t public_content_rw_t /var/ftp/pub 让匿名用户具有读写这个目录的权力(必须设置)

chcon -t public_content_rw_t /var/ftp/pub
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
lftp 172.25.254.118
ls
cd pub/
put /etc/group    /*上传文件成功*/

在这里插入图片描述

enforcing状态下本地用户家目录上传和删除文件

在这里插入图片描述

getsebool -a | grep ftp
setsebool -P ftp_home_dir on     /*将本地用户的家目录永久开启*/
getsebool -a | grep ftp
lftp 172.25.254.118 -u student
ls
put /etc/group    /*上传文件成功*/

设置好后,本地用户便可直接在enforceing状态下在自己家目录下上传和删除文件
在这里插入图片描述
在这里插入图片描述

与selinux相关的两个日志

/var/log/messages: 系统日志,提供解决方案,需要安装服务才能提供解决方案
/var/audit/audit.log:selinux真正的日志,不提供解决方案

yum search selinux 

在这里插入图片描述

yum install setroubleshoot-server.x86_64 -y

在这里插入图片描述
实验步骤如下:

(1)有setroubleshoot这个软件服务时:

步骤一

> /var/log/messages     /*清空日志文件*/
cd /mnt/
touch /mnt/file
mv /mnt/file /var/ftp/

在这里插入图片描述
步骤二:

lftp 172.25.254.118
ls     /*并未查看到 mv 过来的 file 文件*/
cat /var/log/messages     /*查看日志可知,/mnt 下的 file 文件已转移到 /var/ftp 下*/
restorecon -vR /var/ftp/     /*刷新*/
ls -Z /var/ftp/     /*查看到安全上下文一致*/
lftp 172.25.254.118 
ls     /*可查看到文件 file*/

在这里插入图片描述
(2)没有setroubleshoot 时,日志不提供解决办法:

yum remove setroubleshoot-server.x86_64  -y     /*实验前先移除已有的setroubleshoot*/

在这里插入图片描述

> /var/log/messages
cd /mnt/
touch /mnt/file
mv /mnt/file /var/ftp/
lftp 172.25.254.118
ls     /*并未查看到 mv 过来的 file 文件*/
cat /var/log/messages     /*此时日志不提供解决办法*/

在这里插入图片描述

yum install setroubleshoot-server.x86_64  -y     /*完成实验后安装setroubleshoot*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值