selinux管理
一、selinux简介
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
selinux:内核级加强型防火墙
二、selinux状态控制
1、/etc/sysconfig/selinux ##selinux状态控制文件(开关)
文件内容如下:
SELINUX=enforing ##强制模式,也就是打开了,生效了。
SELINUX=permissive ##警告模式
SELINUX=disabled ##关闭模式,
设置保存完后,需重启才能生效。permissive模式和enforce模式切换不要重启。
2、检测selinux的状态
终端命令getenforence
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服务中看不到,
为什么呢?
就是因为文件file的安全上下文不一样
file的安全上下文(标记)不一样,ftp服务不识别。
我们就改一下file文件的标识
chcon -t public_content_t file ##修改安全上下文
修改后就能看见了,
2、selinux的错误信息
当文件的安全上下文不匹配,selinux阻挡了程序访问这个文件时,就会生成错误信息。
由 setroubleshoot-server 这个程序管理错误的信息。
默认情况下都是安装的。
先清空日志。
然后浏览器访问ftp的文件,file文件不显示。
这是selinux错误的日志信息
selinux报错信息,
3、selinux服务功能的开关
selinux服务会给服务设置好多sebool开关,默认都是关闭的
getsebool -a | grep ftp
ftp_home_dir -->off
功能举例。
vsftp服务器配置本地用户可写。
连上ftp后却发现不能上传文件。
打开ftp_home_dir开关后,能上传文件了。
这就是selinux对程序对程序设置的sebool 开关。
4、对系统资源的控制。
semanage port -l |grep http
上图第三行显示了http服务可用的端口地址。
然后我们配置http服务的配制信息。
vim /etc/httpd/conf/httpd.conf修改监听端口为6666(httpd的selinux端口列表以外的端口)
保存后重启服务。
会发现报错。
打开/var/log/messages,会发现selinux阻挡了httpd服务监听6666端口,因为selinux为httpd服务分配的可用端口中没有6666端口,所以被selinux阻挡了。
我们在selinux的httpd列表中加上6666端口。
semanage port -a -t http_port_t -p tcp 6666 ##加上端口
加上后我们在重启服务,发现服务正常启动。
这就是selinux对系统资源的管理。