linux下的selinux

一.selinux简介
selinux:内核级加强型防火墙

二.selinux状态控制

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

SELINUX=enforing    ##强制模式,也就是打开了,生效了。
SELINUX=permissive    ##警告模式
SELINUX=disabled    ##关闭模式

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

linux下的selinux

2.检测selinux状态
getenforce

linux下的selinux

3.selinux临时状态设定
setenforce 0    ##警告模式设定(重启后恢复)
setenforce 1    ##强制模式设定(重启后恢复)

linux下的selinux

三.selinux安全上下文
命令:
临时更改
chcon -t 安全上下文 文件

linux下的selinux

linux下的selinux
chcon -t public_content_t/mnt -R    ##-R表示递归

 

linux下的selinux

 

永久更改
semanage fcontext -l    ##列出内核安全上下文列表内容
semanage fcontext -a -t public_content_t '/mnt(/.*)?'    ##添加到selinux列表
restorecon -FvvR /mnt    ##同步到文件

linux下的selinux


3.selinux服务功能的开关
selinux服务会给很多服务设置好多sebool开关,默认都是关闭的
getsebool -a | grep ftp

linux下的selinux

ftp_anon_write -->off

setsebool -P ftp_home_dir on

linux下的selinux

linux下的selinux

linux下的selinux

linux下的selinux

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

4.对系统资源的控制。
semanage port -l |grep http

第三行显示了http服务可用的端口地址。
然后配置http服务的配置信息。
vim /etc/httpd/conf/httpd.conf
listen 6666

linux下的selinux
保存后重启服务
会发现报错

linux下的selinux
查看日志会发现selinux阻挡了httpd服务监听6666端口,因为在上面的httpd可用端口中没有6666.
我们在selinux的httpd列表山加上6666端口
semanage port -a -t http_port_t -p tcp 6666

linux下的selinux
##加上端口,重启服务,服务正常启动。