一、SELinux简介
1、什么是SELinux:
SELinux(security enhanced linux)安全增强型Linux系统,它是一个linux内核模块,也是Linux的一个安全子系统。

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

2、SELinux有两个级别:
强制、警告
setenforce 0 :表示警告(Permissive)
setenforce 1 :表示强制(Enforcing)
3、SELinux相当于一个插件(内核级的插件)
4、SELinux功能开启后,会关闭系统中不安全的功能
5、查看日志中的警告

cat /var/log/audit/audit.log

6、修改SELinux的状态

vim /etc/sysconfig/selinux

状态分为以下三种:
SELINUX=enforcing #selinux开启,级别为强制
SELINUX=permissive #selinux开启,级别为警告
SELINUX=disabled #selinux关闭
7、SELinux有两个功能
1、程序访问文件 :安全上下文
安全上下文的临时更改

chcon -t 安全上下文  文件
chcon -R -t 安全上下文 目录

设置后,可通过ls -lZ进行查看
2、程序访问功能:sebool
selinux 对服务功能添加的开关
#查看xxx的功能开关

getsebool -a | grep xxx

二、selinux的用法:影响文件的安全上下文
(一)修改文件的安全上下文
当我们从别的地方复制一个文件到/var/ftp,而当我们登录lftp之后,发现看不到该文件,是因为这个文件的安全上下文和/var/ftp的安全上下文不匹配,这就是selinux的保护机制,所以我们需要将这个文件的安全上下文修改和/var/ftp的达到一致。
1、创建文件

touch /mnt/file1

2、将该文件移动到/var/ftp下
注:为什么是移动而不是复制,移动是重命名的过程,文件的属性和权限不会改变,文件的属性和权限不会改变,而复制是新建文件的过程,文件的属性和权限等等可能会发生改变。

mv /mnt/file /var/ftp

3、通过lftp IP 命令 查看当前目录下的文件

lftp 172.25.254.210 ls


发现并没有生成file1文件

4、切换至 /var/ftp 下

cd /var/ftp

5、通过ls -Z 查看文件类型【包括文件的安全上下文属性】

ls -z


也可以通过 semanager fcontext -l | grep /var/ftp 查看/var/ftp的安全上下文

semanager fcontext -l | grep /var/ftp


6、然后修改file1的安全上下文

chcon -t public_content_t file1

7、然后执行lftp IP ls 命令 进行查看

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
注:setenfoce 0/1 ls 后可以显示里边的文件,说明这个问题的出现和selinux有关

7、修改/jay目录的安全上下文由两种方法,一种是临时的,一种是永久的
(1)临时的:

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

注意:如果要恢复安全上下文,修改selinux的配置文件,将selinux修改为disable后重启,再修改为enforcing重启,/jay的安全上下文会变回原样。

(2)永久地:
修改/jay和底下的所有文件的安全上下文,-a表示增加,-t表示类型

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

查看/jay的安全上下文

semanage fcontext -l | grep /jay

递归刷新并显示刷新过程

restorecon -F vvR /jay

然后

lftp 172.25.254.210
ls

便可以查看

三、selinux的用法:对进程本身开关的影响sebool值
selinux会对我们系统中有些功能加上开关,我们在使用这些功能时,应该先打开开关才可以使用
(一)功能开关的影响
1、

lftp 172.25.254.210 -u abc

2、

put /etc/passwd

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

3、

getsebool -a | grep ftp

显示ftp的上传功能未开启
4、

setsebool -P ftp_home_dir on

打开ftp的上传功能 -P表示永久打开

5、

getsebool -a | greo ftp

显示ftp的上传功能开启
6、

 lftp 172.25.254.210 -u abc

7、

put /etc/group


(二)selinux的排错工具:setroubleshoot-server
该工具需要安装:

yum install -y 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里边就不会再有解决方案

原文链接:https://blog.csdn.net/jay_youth/article/details/80327599

Linux之SELinux的介绍以及用法相关推荐

  1. 提升篇——SELINUX相关介绍

    1.SElinux简介 SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Comp ...

  2. 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  3. linux基础配置脚本,Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...

  4. 用户管理 之 Linux 用户管理工具介绍

    作者:北南南北 赞助: 来自:LinuxSir.Org 摘要: 本文主要介绍Linux系统的用户和用户组的查询.添加.修改及删除等管理工具: 目录索引 一.与用户管理相关的配置文件: 1./etc/p ...

  5. linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?

    今天小编要跟大家分享的文章是关于Linux系统中SSH命令的用法有哪些?一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通 ...

  6. Linux at命令定时发送邮件具体用法

    Linux at命令定时发送邮件具体用法 Linux at命令定时发送邮件具体用法 - 51CTO.COM Linux at命令定时发送邮件具体用法 2010-06-22 12:58 佚名 Linux ...

  7. Linux中sysstat服务,Linux sysstat常用命令介绍

    一.sysstat 软件安装 下载sysstat软件包,解压 tar zxvf *.tar.gz ./configure make make install 二.sar 命令介绍 sar -h 用法: ...

  8. Linux 用户管理工具介绍

    目录索引 一.与用户管理相关的配置文件: 1./etc/passwd 和/etc/groups 2.超级权限控制 sudo 的配置文件/etc/sudoers : 3.添加用户规则文件 /etc/lo ...

  9. 十二 个经典 Linux 进程管理命令介绍

    From:http://blog.chinaunix.net/uid-25681671-id-3201927.html 进程和作业管理命令:http://man.linuxde.net/sub/进程和 ...

最新文章

  1. Scrapy框架中的crawlspider爬虫
  2. Cell重磅:记忆研究的突破进展!在诺奖成果基础上,用“全光学”组合来“操纵记忆”...
  3. MP实战系列(十一)之封装方法详解(续一)
  4. 川大计算机文化基础在线作业,川大1309《计算机文化基础0008》在线作业2答案.docx...
  5. java 构造 super_Java中的构造方法this、super的用法详解
  6. Lua语言面向对象之复制表的方式面向对象
  7. loadrunner11破解技巧
  8. 龙威PS305D维修案例收集
  9. 关于晶圆介绍以及IGBT晶圆的应用
  10. zzuli OJ 2331:小新同学的智商
  11. [转载] 晓说——第26期:艺术北纬三十度 回忆印度(上)
  12. 零基础入门网络安全最直线距离的学习路线
  13. 如何申请Office365试用账号
  14. 【轻聊前端】JavaScript中的数字游戏
  15. Windows第一次博客作业:委托实现信用卡用户定时还款
  16. 使用滴滴mpx 开发一个小程序组件
  17. 牛逼c语言代码,这段c语言代码牛逼在哪?
  18. windows10 安装linux,windows 10安装linux(ubuntu)子系统
  19. pairproject总结和结果
  20. 日增百万级文件的实时采集的入坑出坑自强之路

热门文章

  1. sendto和recvfrom
  2. 容祖儿爱情复兴在线试听,容祖儿 爱情复兴歌词,下载 mp3
  3. Java3D设计作品入门级教程
  4. 推荐一位文字真特么有趣的程序员
  5. Linux中bash
  6. Node.js —— 回调函数callback
  7. 关于协方差矩阵的概念及意义
  8. sv编程语言_SV DPI-C接口学习心得
  9. java 自动编译_java自动编译批处理
  10. “天猫双11”背后的流量治理技术与标准实践