【linux进阶7】内核级加强火墙(如何对产生的问题问题进行排错)

一、Selinux的实验环境功能

一、selinux的介绍
SELinux 全称为安全增强式 Security-Enhanced Linux(SELinux),是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。对于目前可用的 Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的
二、实验环境搭建
1、重置一个虚拟机
2、关闭虚拟机的selinux

vim /etc/selinux/config 

3、安装vsftp,重启服务

dnf install lftp
dnf install vsftpd
systemctl enable --now vsftpd
firewall-cmd --permanent  --add-service=ftp
firewall-cmd --reload 

4、开启匿名用户登陆和上传功能

vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

chmod 777 /var/ftp/pub/
systemctl restart vsftpd.service 

二、Selinux实验现象

selinux从关闭到警告和强制模式或者反之都需要重启系统

一、第一个实验

当Selinux未开启时,在/mnt中建立文件被移动到/var/ftp,上传文件。
在这里插入图片描述
在这里插入图片描述

结论:

1、匿名用户可以进行vsftpd服务访问,并且可以随意的创建文件
2、匿名用户可以随意的上传文件
3、当使用ls -Z /var/ftp/pub查看文件时显示"?"

二、第二个实验

当selinux开启后在强制模式下(设定开启后必须重启),在/mnt中建立文件移动到/var/ftp,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结论:

1、匿名用户登陆vsftpd,查看不到移动到/var/ftp/下面的文件
2、虽然给予了上传文件的权限,但是匿名用户无法上传文件。
3、当使用ls -Z /var/ftp查看软件的selinux的信息时发现其安全上下文只能读,不能写和执行
4、发现seliunx给予的权限都是关闭的, 内核会对程序的功能加载开关,并设定此开关的状态为关闭,当需要此功能时需要手动开启功能开关,此开关叫做sebool

三、selinux的作用

对于文件的影响:

当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文(context)

对于程序功能的影响:

当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此开关叫做sebool

三、Selinux的状态及管理

selinux的开启

 vim /etc/selinux/config
SELINUX=disabledselinux关闭
SELINUX=enforcingselinux开机设定为强制状态此状态为selinux开启
SELINUX=permissiveselinux开机设定为警告状态此状态为selinux开启

selinux开启或关闭需要重启系统

enforcing强制状态解释:不符合条件一定不能被允许,并会收到警告信息
permissive警告模式解释:不符合条件被允许,并会收到警告信息

selinux状态的查看:getenforce
警告: setenforce 0
强制: setenforce 1
selinux日志位置:/var/log/audit/audit.log

四、Selinux的安全上下文

一、查看方式

ls -Z查看文件的安全上下文
ls -Zd查看目录的安全上下文
ps axZ查看进程的安全上下文

在这里插入图片描述

二、临时修改文件/目录安全上下文

(此方式更改的有些文件的安全上下文在selinux重启后会还原)
(1)基本原理
chcon -t 标签 文件/目录
chcon -t public_content_t /var/ftp/file1 修改文件的安全上下文
chcon -Rt public_content_t /westosdir2 修改目录及目录中的所有子文件的安全上下文
touch /.autorelabel 开机自动重新读取selinux记载的文件安全上下文

(2)具体操作
1、为方便实验建立对象
在这里插入图片描述
2、给予权限,刷新权限
在这里插入图片描述
3、建立重启文件,验证权限
发现重启后,文件恢复到原有的安全上下文
在这里插入图片描述

三、永久修改文件/目录安全上下

(1)、永久更改的代码
semanage fcontext -l查看永久内核安全上下文
semanage fcontext -a -t public_content_t '/dir(/.*)?'给予目录及其子目录安全上下文
restorecon -RvvF /var/ftp/file1 恢复文件的权限和目录本来的权限
touch /.autorelabel 开机自动重新读取selinux记载的文件安全上下文

(2)、实验步奏
1、建立实验目录/dir3,/dir4,查看安全上下文权限
建立两个文件,方便做对比
在这里插入图片描述

2、/dir3用临时设定的方式进行设定,/dir4用永久的方式进行设定
可以看到临时设定的已经更改为了公共目录,永久设定的还没有更改文件的安全上下文(是因为现在只是在内核安全上下文里面进行了更新)
在这里插入图片描述
3、刷新内核文件记录的安全上下文信息

restorecon -RvvF /westosdir/

可以看到
临时设定的文件因为没有记录在内核安全文件里面,所以一刷新就恢复了原本的默认文件信息。
永久设定方式的文件因为记录在了内核安全文件里面,所以一刷新就更改为了公共发布文件信息。
在这里插入图片描述

4、建立重启文件,查看最终效果
结果发现,哪怕重新读取内核记录的安全上下文,永久设定方式的安全上下文继续不变。
在这里插入图片描述

五、程序的SEBOOL设定

当selinux开启时内核会对程序的功能加载开关,并设定此开关的状态为关闭,当需要此功能时需要手动开启功能开关,此开关叫做sebool。

一、基本原理

getsebool -a ##查看目前的程序的安全权限波尔值
setsebool -P ftpd_anon_write on #更改

二、实现强制模式下FTP匿名用户的上传功能

此时开启了强制模式的seliunx

1、查看目前的情况
发现不能上传,系统权限问题
在这里插入图片描述
2、给予FTP满权限,查看效果
发现还是权限拒绝
在这里插入图片描述
3、给予可写的安全上下文
在这里插入图片描述
4、查看setbool值

getsebool  -a | grep ftp

ftp各种功能都是关闭的
在这里插入图片描述
4、将匿名用户上传功能的权限打开

setsebool  -P ftpd_anon_write on

在这里插入图片描述
6、再次上传成功
在这里插入图片描述

六、selinux(setrouble )的排错

一、排错相关信息

1.日志地址
/var/log/audit/audit.log
2.排错地址:
cat /var/log/messages
3.排错软件下载:
dnf research setrouble

二、修改http的端口进行排错

1.更改http的端口为80000

vim /etc/httpd/conf/httpd.conf 

在这里插入图片描述

2.清空日志,重启服务

> /var/log/audit/audit.log 
systemctl restart httpd.service

3.利用selinux查看报错信息

cat /var/log/messages 

在这里插入图片描述
将目录地址里的45行改回来即可

三、在强制模式下,将文件移动到/var/ftp/,进行排错

1.建立环境

touch /mnt/111
mv /mnt/111 /var/ftp/
> /var/log/audit/audit.log
> /var/log/messages 
lftp 172.25.254.120

2.发现查看不到我们的文件,进行排错
在这里插入图片描述
3.用建议的命令完成以下操作,即可查看。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值