频道栏目
首页 > 系统 > Linux > 正文

linux系统中selinux的简介与用法

2018-05-16 11:02:51      个评论    来源:jay_youth的博客  
收藏   我要投稿

一.selinux的简介

1.什么是selinux:

selinux(security enhanced linux)安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统。

selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

2.selinux有两个级别 强制和警告 setenforce 0|1 0表示警告,1表示强制

3.selinux相当于一个插件 (内核级的插件)

4.selinux功能开启后,会关闭系统中不安全的功能

5.查看日志中的警告:cat /var/log/audit/audit.log

6.修改selinux的状态:

vim /etc/sysonfig/selinux

修改为enforcing

reboot

getfenforce

7.selinux有两个功能:程序访问文件 安全上下文

程序访问功能 sebool

二,selinux的用法:影响文件的安全上下文

(一)修改文件的安全上下文:

我们从别的地方复制一个文件到/var/ftp,而当我们登陆lftp之后,发现看不到该文件,是因为这个文件的安全上下文和/var/ftp的安全上下文不匹配,这就是selinux的保护机制,所以我们需要将这个文件的安全上下文修改和/var/ftp的达到一致。

1.touch /mnt/file1

2.mv /mnt/file1 /var/ftp 为什么是移动而不是复制,移动是重命名的过程,文件的属性和权限不会改变,而复制是新建 的过程,文件的属性和权限等等可能会发生改变。

3.lftp 172.25.254.210 ls

\

4.touch /var/ftp/file2

5.lftp 172.25.254.210 ls

6.cd /var/ftp

7.ls -Z 显示/var/ftp的安全上下文的类型

或者 semanager fcontext -l | grep /var/ftp 查看/var/ftp的安全上下文 \

\

8.chcon -t public_context_t file1 修改file1的安全上下文

9.lftp 172.25.254.210 ls

\

semanage fcontext -l 显示内核已经记录的安全上下文

(二)修改目录的安全上下文

/var/ftp是lftp的默认发布目录,它默认的安全上下文是public_content_t,如果我们想要修改/var/ftp的默认发布目录,就必须修改这个新的发布目录的安全上下文。

1.mkdir /jay

2.touch /jay/file

3.vim /etc/vsftpd/vsftpd.conf

anon_root=/jay

4.systemctl restart vsftpd

5.lftp 172.25.254.210

6.ls 不会显示/jay和/jay里边的文件,因为其安全上下文不是content_public_t

setenforce 0/1 ls后可以显示里边的文件 说明这个问题的出现和selinux有关系

\

7.修改/jay目录的安全上下文有两种方法,一种是临时的,一种是永久的

(1)临时的:

chcon -t public_content_t /jay -R -R表示递归

修改selinux的配置文件,将selinux修改为disable后重启,再修改为enfrocing重启,/jay的安全上下文会变回原样。

(2)永久的:

semanage fcontext -a -t public_content_t '/jay(/.*)'修改/jay和底下的所有文件的安全上下文

-a表示增加,-t表示类型

semanage fcontext -l |grep /jay 查看/jay的安全上下文

restorecon -FvvR /jay 递归刷新并显示刷新过程

\

8.lftp 172.25.254.210

9.ls

二,selinux的用法:对进程本身开关的影响sebool值

selinux会对我们系统中有些功能加上开关,我们在使用这些功能时,应该先打开开关才可以使用

(一).功能开关的影响

1.lftp 172.25.254.210 -u student

2.put /etc/passwd 显示不能上传,如果将selinux的值修改为0,则可以上传,说明这是selinux对上传文件的影响

\

3.getsebool -a |grep ftp 显示ftp的上传功能未开启

4.setsebool -P ftp_home_dir on 打开ftp的上传功能 -P表示永久打开

\

5.getsebool -a |grep ftp 显示ftp的上传功能开启

6.lftp 172.25.254.210 -u student

7.put /etc/group

\

(二).selinux的排错工具: setroubleshoot-server

1.touch /mnt/file

2.mv /mnt/file /var/ftp

3.在浏览器里输入ftp://172.25.254.210/file 不能看到自己建立的文件,这是由于安全上下文的关系

4.清空/var/log/messages

5.在浏览器处刷新,查看/var/log/messages

6.里边有解决方案:里边说明解决方案在/var/log/audit/audit.log里

解决方案是:restorecon -v /var/ftp/*

7.这个解决方案是软件setroubleshoot-server-3.2.17.e17.x86_64提供的

8.如果我们卸载这个软件,那么在/var/log/audit/audit.log里边就不会再有解决方案

(三).selinux影响服务所使用的资源

1.安装http服务

2.cat /etc/services |grep http 查看http的tcp协议使用默认端口为80

\

3.vim /etc/httpd/conf/httpd.conf 将第42行httpd的tcp协议端口修改为6666

\

\

4.systemctl restart httpd 这时候我们发现不能重启服务

5.setforence 0 将selinux的状态设置为警告

6.systemctl restart httpd 这时候我们发现可以重启服务,说明这是selinux的保护机制

\

7.semanage port -l | grep http 查看http服务的tcp协议默认端口列表里没有6666

\

8.semanage port -a -t http_port_t -p tcp 6666 将6666端口添加到tcp列表的默认端口中

9.semanage port -l | grep http 查看6666端口已经添加到tcp的端口列表中

\

上一篇:CentOS /Linux 开放80、8080端口或者开放某个端口
下一篇:CentOS下安装Anaconda3-4.4.0-Linux-x86_64,并实现python2和python3共存
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站