SELinux(Security-EnhancedLinux)是美国国家安全局(NAS)对于强制访问控制的实现,字面上的意思就是安全强化的linux之意。
1.开启selinux 后要重新启动系统才能生效
2.也可以在修改
[root@localhost ~]# vim /etc/sysconfig/selinux
6 SELINUX=enforcing #设置为强制
[root@localhost ~]# vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8" #中文界面
没有图像界面解决
2.安装apache 测试selinux 及排错
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm
设置默认主目录为/abc
[root@localhost ~]# mkdir /abc
[root@localhost ~]# vim index.html
[root@localhost ~]# cd /etc/httpd/conf/
[root@localhost conf]# vim httpd.conf
281 DocumentRoot "/abc"
开启selinux以后,再次启动httpd的时候发现已经不能启动了。
而且selinux也会出现如下界面
点击一下就会出现如下界面:
如果没有安装图形界面可以通过查看日志:
[root@localhost ~]# tail -f /var/log/messages
最后一行提示
run sealert -l 6d4b54ef-9617-48f0-9613-b7cc1e18f21b
咱们试着运行一下:效果是一样的
先把selinux的参数修改一下试试
[root@localhost ~]# setenforce 0 /1 #0代表警告 但是可以运行,1代表强制
[root@localhost ~]# getenforce #得到selinux的状态。
Enforcing
这样就不用重启系统,比较方便。把参数值改为0的时候是可起来的。1就不能起来
只要把目标和源的上下文修改为一致就可以了
命令如下:
[root@localhost ~]# chcon -R -t httpd_sys_content_t /abc
设置完就可以正常启动和访问了。
下面修改一下监听端口,发现又启动不了了
[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# vim httpd.conf
134 Listen 800
查看selinux支持的http端口
[root@localhost ~]# semanage port -l |grep http
http_cache_port_t tcp 3128, 8080, 8118, 11211, 10001-10010
http_cache_port_t udp 3130, 11211
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 59
修改方法,把800加入到selinux支持http的端口
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 800
重启一下,就可以基于端口访问
例如::800/