必威体育Betway必威体育官网
当前位置:首页 > IT技术

selinux

时间:2019-08-11 02:14:38来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

selinux

内核级加强型火墙selinux

一.selinux的功能

1.selinux对文件的影响——context 安全上下文

会给每一个文件都加载一个标签,每一个程序也会有安全上下文,程序需要和文件相匹配,才能被读取,如果不匹配,在读取这个文件时,会被seliux拒绝。它管的是这个程序可以查看什么文件。

2.seliux对程序的影响——sebool

给程序功能加个开关sebool,sebool值决定程序功能的状态,ftp默认是允许本地用户上传,但是selinux会将这些不安全的功能默认关闭。

 

二.selinux的状态

1.disabled      关闭状态

2.enforcing     开启 ,强制状态,会拒绝并警告

3.permissive  开启,警告状态,会警告但是不会拒绝,在/var/log/messages中可以查看到警告信息

三.selinux状态查看修改

1.getenforce               ----查看seliux状态

2.setenforce 0           ---将selinux从强制改为警告状态

3.setenforce 1           ---将selinux从警告改为强制状态(0与1命令进行切换不需要重启) 

开启与关闭状态更改时必须要重启系统才能读取

3.vim /etc/sysconfig/selinux       ---编辑seliux配置文件,可修改selinux的状态

修改后必须reboot重启才能生效

实验一:seliux状态的影响

环境配置:

将之前在虚拟机中的设置还原

rm -fr /etc/vsftpd/vsftpd.conf

yum reinstall vsftpd -y            ---重新安装vsftpd软件

chmod 700 /home/student/      ---将/home/student/目录权限还原

永久开启vsftpd服务,并永久添加ftp服务

systemctl start vsftpd

systemctl enable vsftpd

systemctl start firewalld

firewall-cmd --permanent --add-service=ftp ---永久添加ftp服务,需要火墙开启状态

firewall-cmd --reload          ---重新加载火墙服务,但凡在火墙中永久添加服务的,但需要reload操作

yum install lftp      ---安装lftp软件,方便后续实验

实验步骤:

1.首先查看selinux状态,处于关闭状态

2.vim /etc/sysconfig/selinux   ---编辑文件,修改selinux状态为enforcing(关闭)

 3.reboot重启使修改生效

4.getenforce     ---再次查看selinux状态

5.touch /mnt/dai1file                           ---先在mnt下创建文件westosfile1,

  mv /mnt/westosfile1 /var/ftp/pub      ---将文件移动到匿名用户lftp连接家目录中

6.然后lftp 172.25.254.162  --> ls 如果是强制状态就看不见westosfile1,有警告

cat /var/log/messages           ---查看日志,存在警告信息

7.如果是警告状态就可以看见westosfile1,有警告.

cat /var/log/messages      ---查看日志,有警告信息

四.selinux对文件的影响

1)chcon临时更改安全上下文

(但是这是暂时性的,更改完后连续更改getenforce的值重启,安全上下文会变回去)

实验二:

环境:selinux处于开启状态

1.更改用户家目录 anon_root=/home/ftphome  (在/etc/vsftpd/vsftpd.conf下更改,此目录需要先新建)

2.lftp 172.25.254.162        ---匿名用户连接,ls进行检测,查看不到/home/ftphome/下的文件

3.ls -Zd /home/ftphome/             ---Z表示查看目录安全上下文

4.chcon -t  public_content_t  /home/ftphome/  -R   ---参数-R表示递归,临时更改用户上下文

5.ls -Zd /home/ftphome/                         ---查看目录安全上下文

6.lftp 172.25.254.162                  ---匿名连接ls进行查看,可以看到目录下的文件

7.vim /etc/sysconfig/selinux          ---编辑selinux配置文件

SELINUX=disabled                                          ---将状态修改为disabled

reboot

8.vim /etc/sysconfig/selinux/        ---编辑selinux配置文件

SELINUX=enforcing              ---将状态修改为enforcing

reboot

9.ls -Zd /ftphome/             ---查看目录的安全上下文,变更为修改之前,所以chcon只能临时更改安全上下文

综上所述:chcon命令可以也只能临时更改安全上下文

2)永久更改安全上下文(在内核上更改)

1.semanage fcontext -l | grep /var/ftp   ---查看内核里/var/ftp的安全上下文设定,默认加public_content_t

2.semanage fcontext -l | grep /ftphome    ---查看内核里/home/ftphome的安全上下文设定,默认加public_content_t

3.semanage fcontext -a -t public_content_t /ftphome(/.*)"" class="has" height="43" src="https://img-blog.csdnimg.cn/20181107151736455.png" width="868" />

4.semanage fcontext -l | grep /home/ftphome    ---查看内核里/home/ftphome的安全上下文设定,查看是否添加成功

五.selinux对程序的影响

实验三:匿名用户上传

环境:

1.先把用户家目录修改一行删除

2.把匿名用户上传权限打开

3.修改匿名用户家目录的拥有组及权限

实验步骤:

1.警告状态在程序开关开启时,可以进行上传

首先getsebool -a | grep ftp        ---查看ftp的程序开关

setsebool -P ftpd_anon_write on   ---打开ftp的程序开关,-P表示永久

setenforce 0                                     ---切换到警告状态

lftp 172.25.254.162                       ---匿名连接172.25.254.162

cd pub

quit

可以上传文件/etc/passwd(如果已经存在,上传其他文件)

2.强制状态在程序状态开启状态不能上传

setenforce 1                 ---切换到强制状态

lftp 172.25.254.162

cd pub

此时不能上传文件

quit

getsebool -a | grep ftp   ---查看ftp的程序开关

3.强制状态在程序开关开启时,需要安全上下文中添加读写权限才能上传

ls -Zd /var/ftp/pub/      ---查看ftp匿名登陆家目录的安全上下文

getenforce                ---查看内核级火墙状态

chcon -t public_content_rw_t /var/ftp/pub/  ---临时添加安全上下文中的读写权限

ls -Zd /var/ftp/pub/      ---再次查看ftp匿名登陆家目录的安全上下文,读写权限添加成功

lftp 172.25.254.162

cd pub

此时能够上传文件

六.排错方法

/var/log/sudit/audit.log 这个文件记录了所有selinux的报错信息,但是不提供解决方案

/var/log/messages日志文件中会提供解决方案,但是不一定会记录报错信息

实验四:

1.清空日志文件

> /var/log/audit/audit.log ---清空

> /var/log/messages    ---清空日志文件

2.制造错误

在selinux强制状态下

touch /mnt/file

mv /mnt/file /var/ftp/

lftp 172.25.254.162

ls

查看不到文件file

3.查看日志

cat /var/log/sudit/audit.log  ---可以查看到报错信息,但是没有解决方案

cat /var/log/messages   ---可以查看到解决方案

#解决方案来源实验:

yum remove setroubleshoot-server.x86_64 -y          ---卸载提供日志文件中解决方案的软件

lftp 172.25.254.162

ls

查看不到文件file

cat /var/log/sudit/audit.log  ---可以查看到报错信息,但是没有解决方案

cat /var/log/messages   ---此时没有信息

相关阅读

关闭SELINUX

SELINUX一款为了提高系统安全性的软件,但是会和好多服务都冲突,非常麻烦,大家都选择关闭!查看selinux状态:# getenforce  Disabled

一文彻底明白linux中的selinux到底是什么

一、前言安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux

分享到:

栏目导航

推荐阅读

热门阅读