Linux的selinux的初级管理

简介:

1.SElinux,内核级加强型防火墙, SELinux[Security Enhanced Linux (安全强化 Linux)],是工作在内核中的MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。强制访问控制系统的用途在于增强系统 抵御 0-Day 攻击(利用尚未公开的漏洞实现的攻击行为)的能力。所以它不是网络防火墙或 ACL 的替代品,在用途上也不重复。

对于selinux的通俗理解:
       selinux,它给一些特定程序(这些程序也在不断增加)做了一个沙箱,它将文件打上了一个安全标签,这些标签属于不同的类,也只能执行特定的操作,也就是规定了某个应用程序设定了你可以访问那些文件或目录。

SElinux对系统的影响:

         对每个文件加标签,不同类的标签无法相互访问

         会影响的某些服务的功能

         一般情况下disabled,设置完后需要重启内核生效


2.SElinux管理级别
selinux开启或者关闭
vim /etc/sysconfig/selinux

wKioL1mFu5Tw9U-TAACAA0XD-xg180.png

selinux=disabled              关闭状态
selinux=Enforcing             强制状态
selinux=Permissive          警告状态

getenforce                         查看状态
当selinux开启时            两个运行运行级别

setenforce 0                      警告状态

setenforce 1                      强制状态             



3.更改文件安全上下文 

(临时更改)
chcon -t 安全上下文    文件
chcon -t public_content_t /publicftp -R 


vsftpd/vsftpd.conf里更改匿名登陆加目录

wKiom1mIZ-qyhSt4AAAn-YjGDAY330.png

新建匿名加目录,由于新建的westos目录的上下文为default,所以在selinux开启的情况下,匿名用户lftp登陆无法看见

更改westos的上下文为public_content_t,更改后,匿名用户可以看见里头的文件

wKioL1mIZ-rgZgCvAAEfsqPICVc896.png


(永久更改)

上述方法修改上下文,重启selinux服务后会消失,下面为永久生效的方法

semanage fcontext -l       列出内核安全上下文列表内容
semanage fcontext -a -t public_content_t '/publicftp(/.*)?' 内核永久设置publicftp的上下文为public_content_t
restorecon -FvvR /publicftp/         重新加载立即生效


wKioL1mIZ-ywzpSkAACkOb09t98965.png

wKiom1mIZ-7idpdWAAGuh0ST6T8193.png



4.SElinux服务功能的开关
getsebool -a | grep 服务名称
getsebool -a | grep ftp
setsebool -P 功能bool值 on|off  开启服务
setsebool -P ftp_home_dir on   可以在家目录里执行动作


(1)本地用户在开启SElinux情况下上传文件设置

在开启selinux服务后,服务禁止上传文件,开启家目录可执行动作的选项之后,可以上传文件wKiom1mIa4zAA0SFAABy_f7fUs4746.png

wKiom1mIa5PAWiqVAAFtqlkmZfc542.png


(2)匿名用户在开启SElinux情况下上传文件设置

vim /etc/vsftpd/vsftp.conf ,开启匿名可以上传的权限

wKioL1mIbWHAWO6OAABLN3_quxQ101.png

修改/var/ftp/pub的上下文

wKioL1mIbVvy3jSHAAE6MfgGXYk822.png

修改/var/ftp/pub权限后可以上传

wKiom1mIbWCQw5pKAABv00ays8A617.png


5.监控selinux的错误信息
setroubleshoot-server 服务

创建文件file1,将文件移动到/var/ftp/pub/下,由于selinux文件上下文不一致,所以无法看见pub下的file1文件

wKiom1mIbZPTZV_pAACAYmnhxzo147.png

清空日志 >/var/long/message

看看登陆日志 cat /var/long/message

wKioL1mIbZrAIn8UAAI8d_Izq7k360.png

wKiom1mIbZvTOQwwAAA7EiszJc4825.png

日志中有selinux的错误代码和解决建议

按照restorecon -v 的方案解决

wKiom1mIbZbgr6knAAC3NWOMY1A818.png

修复后,再次匿名登陆,可以看见文件









      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1953887,如需转载请自行联系原作者





相关文章
|
4月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
5月前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
241 0
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
4月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
4月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
187 1
|
4月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
5月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
88 1
|
4月前
|
运维 Linux 调度
Linux定时器的配置与管理方法
Linux定时器的配置与管理方法
|
5月前
|
监控 网络协议 Linux
技术好文共享::Linux系统日志管理日志转储
技术好文共享::Linux系统日志管理日志转储
95 0
|
5月前
|
缓存 Linux 编译器
技术笔记:Linux程序包管理
技术笔记:Linux程序包管理