Linux之SELinux的介绍以及用法
一、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的介绍以及用法相关推荐
- 提升篇——SELINUX相关介绍
1.SElinux简介 SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Comp ...
- 浅谈Linux中ldconfig和ldd的用法
ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...
- linux基础配置脚本,Linux中selinux基础配置教程详解
selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...
- 用户管理 之 Linux 用户管理工具介绍
作者:北南南北 赞助: 来自:LinuxSir.Org 摘要: 本文主要介绍Linux系统的用户和用户组的查询.添加.修改及删除等管理工具: 目录索引 一.与用户管理相关的配置文件: 1./etc/p ...
- linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?
今天小编要跟大家分享的文章是关于Linux系统中SSH命令的用法有哪些?一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通 ...
- Linux at命令定时发送邮件具体用法
Linux at命令定时发送邮件具体用法 Linux at命令定时发送邮件具体用法 - 51CTO.COM Linux at命令定时发送邮件具体用法 2010-06-22 12:58 佚名 Linux ...
- Linux中sysstat服务,Linux sysstat常用命令介绍
一.sysstat 软件安装 下载sysstat软件包,解压 tar zxvf *.tar.gz ./configure make make install 二.sar 命令介绍 sar -h 用法: ...
- Linux 用户管理工具介绍
目录索引 一.与用户管理相关的配置文件: 1./etc/passwd 和/etc/groups 2.超级权限控制 sudo 的配置文件/etc/sudoers : 3.添加用户规则文件 /etc/lo ...
- 十二 个经典 Linux 进程管理命令介绍
From:http://blog.chinaunix.net/uid-25681671-id-3201927.html 进程和作业管理命令:http://man.linuxde.net/sub/进程和 ...
最新文章
- Scrapy框架中的crawlspider爬虫
- Cell重磅:记忆研究的突破进展!在诺奖成果基础上,用“全光学”组合来“操纵记忆”...
- MP实战系列(十一)之封装方法详解(续一)
- 川大计算机文化基础在线作业,川大1309《计算机文化基础0008》在线作业2答案.docx...
- java 构造 super_Java中的构造方法this、super的用法详解
- Lua语言面向对象之复制表的方式面向对象
- loadrunner11破解技巧
- 龙威PS305D维修案例收集
- 关于晶圆介绍以及IGBT晶圆的应用
- zzuli OJ 2331:小新同学的智商
- [转载] 晓说——第26期:艺术北纬三十度 回忆印度(上)
- 零基础入门网络安全最直线距离的学习路线
- 如何申请Office365试用账号
- 【轻聊前端】JavaScript中的数字游戏
- Windows第一次博客作业:委托实现信用卡用户定时还款
- 使用滴滴mpx 开发一个小程序组件
- 牛逼c语言代码,这段c语言代码牛逼在哪?
- windows10 安装linux,windows 10安装linux(ubuntu)子系统
- pairproject总结和结果
- 日增百万级文件的实时采集的入坑出坑自强之路