selinux与NIS的应用

首先了解一下selinux,selinux是强制安全服务。

Linux 2.6.X都带有这个系统

DAC 自主的安全控制 -rw-r―r―rout rout f1 文件的所有者可以自主的控制自己的权限

Facl 文件访问控制

Mac:强制的安全控制 安全上下文

 

开启selinux安全控制服务

[root@localhost ~]# setup

clip_image002

clip_image004

选择第一个enforcing ,开启selinux,需要重启系统才能生效! init 6

重启系统时,系统会生成selinux需要的模块。

clip_image006

我们安装一个apache服务,来测试使用selinux

[root@localhost ~]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm

[root@localhost ~]# cd /var/www/html/ //进入默认站点做一个简单的网页测试。

[root@localhost html]# echo " hello! " >index.html

需要启动httpd服务

[root@localhost html]# service httpd start

客户机访问apache站点:

clip_image008

现在我们修改站点主目录,来看看selinux会怎样维护安全

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

clip_image010

[root@localhost ~]# mkdir /web

[root@localhost ~]# echo " hello !" >/web/index.html

重启系统,就会报错。原因来自selinux的阻止。

clip_image012

使用getenforce命令查看selinux的安全级别,

同时使用setenforce设置级别:0为警告,1为开启

clip_image014

在次重启apache服务成功了

clip_image016

我们在次把selinux设为开启状态,寻找解决方案

[root@localhost ~]# setenforce 1

重启apache服务,再次报错了,解决方案:

查看日志:[root@localhost ~]# tail -f /var/log/messages

clip_image018

根据提示,我们连接到是 “安全上下文” 就是类出错了

查看一些apache能够正常启动时的 进程和index.heml的类

[root@localhost ~]# ps auxZ |grep httpd //查看进程的类是httpd

clip_image020

[root@localhost ~]# ll -Z /var/www/html/index.html //查看index.html的类是httpd

clip_image022

再查看apache不能正常启动时的 进程和index.html的类

[root@localhost ~]# ll -Z /web/index.html

//类域进程不一致,所以进程无法控制文件,需要修改新站点的类,就可以了。

clip_image024

使用chcon这个命令来修改 /web目录的类 与apache的类一致

[root@localhost ~]# chcon -R -t httpd_sys_content_t /web

clip_image026

在次重启apache服务成功了

clip_image028

客户端测试正常

clip_image030

这次我们增加apache的监控端口为800,看看如何设置selinux

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

clip_image032

重启apache服务,失败了

clip_image034

查找原因:

1、查看日志

[root@localhost ~]# tail -f /var/log/messages

clip_image036

Aug 30 04:17:17 localhost setroubleshoot: SELinux is preventing httpd (httpd_t) "name_bind" to <Unknown> (hi_reserved_port_t). For complete SELinux messages. run sealert -l 9368e26c-cfe1-4817-9b9e-bbd33ab8120a

大致的意思是 name_bind 就是监听的端口出事了

2、Linux在桌面环境下Selinux有提示,点击那个星星,查看提示

clip_image038

clip_image040

两种方法看到的错误一样的,这是根据日志的提示,

run sealert -l 9368e26c-cfe1-4817-9b9e-bbd33ab8120a //在命令行中运行

[root@localhost ~]# sealert -l 9368e26c-cfe1-4817-9b9e-bbd33ab8120a

提示信息如下:800端口,selinux不能认可,

clip_image042

查看selinux对于httpd服务支持的端口

[root@localhost ~]# semanage port -l |grep http

clip_image044

使用semanage命令增加给selinux增加一个端口800

[root@localhost ~]# semanage port -a -t http_port_t -p tcp 800

此时重启apache服务成功了

clip_image046

测试也通过了。

clip_image048

有很多服务在使用时总是会出现很多状况,我们可以通过调节selinux的控制开关,来通过selinux来使用。

Selinux策略的开关,查看对各项服务的详细设置,限制是off 关闭限制是on

1、命令行getsebool �Ca //我们查看关于ftp的开关,

clip_image050

2 、图形界面clip_image052

clip_image054

总之各有各的优点!

你可能感兴趣的:(安全,target,上下文,blank,的)