selinux管理

一、selinux简介


SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
selinux:内核级加强型防火墙

 

二、selinux状态控制

 

1、/etc/sysconfig/selinux    ##selinux状态控制文件(开关)

文件内容如下:

selinux管理

SELINUX=enforing    ##强制模式,也就是打开了,生效了。

SELINUX=permissive     ##警告模式

SELINUX=disabled    ##关闭模式,

设置保存完后,需重启才能生效。permissive模式和enforce模式切换不要重启。

2、检测selinux的状态

终端命令getenforence

selinux管理

enforceing    表示打开。

3、selinux临时状态设定

setenforce 0    ##警告模式设定(重启后恢复)

setenforce 1    ##强制模式设定(重启后恢复)

三、selinux安全上下文

命令:

临时更改

chcon -t 安全上下文 文件

 

 

 

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

 

 

 

永久更改

semanage fcontext -l ##列出内核安全上下文列表内容

semanage fcontext -a -t public_content_t '/mnt(/.*)?'    #添加到selinux列表

restorecon -FvvR /mnt/        ##同步到文件

 

1、文件夹/var/ftp/中的文件file在lftp服务中看不到,

selinux管理

为什么呢?

就是因为文件file的安全上下文不一样

selinux管理

file的安全上下文(标记)不一样,ftp服务不识别。

我们就改一下file文件的标识

chcon -t public_content_t file    ##修改安全上下文

selinux管理

修改后就能看见了,

2、selinux的错误信息

当文件的安全上下文不匹配,selinux阻挡了程序访问这个文件时,就会生成错误信息。

由 setroubleshoot-server    这个程序管理错误的信息。

默认情况下都是安装的。

selinux管理

先清空日志。

selinux管理

然后浏览器访问ftp的文件,file文件不显示。

selinux管理

这是selinux错误的日志信息

selinux管理

selinux报错信息,

selinux管理

 

3、selinux服务功能的开关

selinux服务会给服务设置好多sebool开关,默认都是关闭的

getsebool -a | grep ftp

selinux管理

ftp_home_dir -->off

功能举例。

vsftp服务器配置本地用户可写。

selinux管理

连上ftp后却发现不能上传文件。

selinux管理

打开ftp_home_dir开关后,能上传文件了。

selinux管理

这就是selinux对程序对程序设置的sebool 开关。

4、对系统资源的控制。

semanage port -l |grep http

selinux管理

上图第三行显示了http服务可用的端口地址。

然后我们配置http服务的配制信息。

vim /etc/httpd/conf/httpd.conf修改监听端口为6666(httpd的selinux端口列表以外的端口)

selinux管理

保存后重启服务。

会发现报错。

selinux管理

打开/var/log/messages,会发现selinux阻挡了httpd服务监听6666端口,因为selinux为httpd服务分配的可用端口中没有6666端口,所以被selinux阻挡了。

selinux管理

我们在selinux的httpd列表中加上6666端口。

semanage port -a -t http_port_t -p tcp 6666    ##加上端口

selinux管理

加上后我们在重启服务,发现服务正常启动。

selinux管理

这就是selinux对系统资源的管理。