SElinux配置httpd

一、启用SELinux策略并安装httpd服务,改变网站的默认主目录为/website,添加SELinux文件标签规则,使网站可访问

    1、修改selinux策略并重启

[root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing 

    2、安装http服务

yum install -y httpd

    3、修改默认的Directory 项指定的目录为/website

[root@localhost ~]vim /etc/httpd/conf/httpd.conf
<Directory "/website">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/website">
DocumentRoot "/website"

    4、添加目录,创建index.html文件

[root@localhost ~]# mkdir /website

[root@localhost ~]# cd /website/

[root@localhost website]# echo "<center><h1>hello world" > index.html

    5、修改index文件selinux标签

[root@localhost website]# chcon -t httpd_sys_content_t index.html  

[root@localhost website]# ls -Z

-rw-r–r–. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html

    6、重启httpd服务,使用网页访问:

[root@localhost website]# systemctl restart httpd
[root@localhost website]# ss -tan
State       Recv-Q Send-Q           Local Address:Port     Peer Address:Port              
            .......(省略).........
LISTEN      0      128              :::80             :::*                  
                  .......(省略).........
注:如遇不能访问,查看防火墙是否打开,使用iptables -F 命令关闭。

blob.png

二、修改上述网站的http端口为9527,增加SELinux端口标签,使网站可访问

    1、编辑httpd配置文件,将80端口替换为9527

[root@localhost website]# vim /etc/httpd/conf/httpd.conf
Listen 9527
使用vim内置命令,直接将80端口替换为9527(:%s/80/9527/)

    2、添加httpd的端口

(需要使用semanage 命令,如没有,使用$(yum install -y policycoreutils-python)安装
1)查看当前http服务端口
[root@localhost website]# semanage port -l | grep http_port_t   
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
2)添加http服务端口9527

    3、重启httpd服务,并查看端口

[root@localhost website]# systemctl restart httpd
[root@localhost website]# ss -tan
State       Recv-Q Send-Q       Local Address:Port                     Peer Address:Port                              
LISTEN      0      128          :::9527    /http端口变为9527监听             :::*

    4、使用网页访问,ip地址加端口号9527(因为web服务默认端口为80,如不手动添加端口,则不能访问)

blob.png

三、启用相关的SELinux布尔值,使上述网站的用户student的家目录可通过http访问

   (如要添加家目录中的网页能通过http访问,需将httpd服务selinux限制家目录e的规则开启:)

    1)查看其相关的规则:

~]# getsebool -a | grep homedir
git_cgi_enable_homedirs --> off
git_system_enable_homedirs --> off
httpd_enable_homedirs --> off   //此规则处于off状态,需要设置为on
.....(省略).....

    2)将http家目录规则开启为on

[root@localhost website]# setsebool -eP httpd_enable_homedirs on   //-P选项为永久更改,直接修改进规则库保存
[root@localhost website]# getsebool -a | grep homedir  
git_cgi_enable_homedirs --> off
git_system_enable_homedirs --> off
httpd_enable_homedirs --> on   //此时此规则为开启
(使用命令"semanage boolean -l"  可查看所有SElinux布尔型规则)
[root@localhost website]# semanage boolean -l 
SELinux boolean                State  Default Description
ftp_home_dir                   (off  ,  off)  Allow ftp to home dir
smartmon_3ware                 (off  ,  off)  Allow smartmon to 3ware
mpd_enable_homedirs            (off  ,  off)  Allow mpd to enable homedirs
xdm_sysadm_login               (off  ,  off)  Allow xdm to sysadm login
.........(省略)........
(使用命令"semanage boolean -l  -C "  可查看所有更改过SElinux布尔型规则)
[root@localhost website]# semanage boolean -l -C
SELinux boolean                State  Default  Description
httpd_enable_homedirs          (on   ,   on)   Allow httpd to enable homedirs

    3)修改http服务的配置文件,将其中的禁用家目录字段开启

        (注:Centos6和Centos7配置文件地址不相同)        
        Centos6配置文件:/etc/httpd/conf/httpd.conf
        Centos7配置文件:/etc/httpd/conf.d/userdir.conf
[root@localhost website]# vim /etc/httpd/conf.d/userdir.conf
<IfModule mod_userdir.c>
#
....(省略)......
#
#UserDir disabled     //此项原来为开启,将其注释掉,
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
# 
UserDir web   //此项原来为禁止,将其开启,意为使用用户目录访问,访问方式上面的描述已经说明了“To enable requests to /~user/ to serve the user's public_html ”,由于我更改了目录名称,“public_html”则就为web

    4)在用户家目录下创建web目录,在其中创建index.html文件,更改其他用户访问权限,查看权限及标签信息

[root@localhost ~]# su - li 
[li@localhost ~]$ mkdir web
[li@localhost ~]$ echo "<center><h3>This is user:<h1> li</h1>home" > ./web/index.html
[li@localhost ~]$ cd web/
[li@localhost web]$ chmod 711 index.html
[li@localhost web]$ ls -Z
-rwx--x--x. li li unconfined_u:object_r:httpd_user_content_t:s0 index.html

    5)重启服务,使用格式:"IP地址/~用户名/web/index.html" 访问

[root@localhost ~]# systemctl restart httpd

SElinux配置httpd

原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/47604

(4)
LiiLii
上一篇 2016-09-19
下一篇 2016-09-19

相关推荐

  • 树的遍历和排序

    树的遍历和排序

    Linux干货 2017-10-23
  • 马哥教育21期网络班—第11周课程+练习—-成长进行时–不退步–上

    1、详细描述一次加密通讯的过程,结合图示最佳。 对称加密: 加密和解密使用同一个密钥; 缺点:如何通信方多的话,需要保存多组密钥 公钥加密:密钥是成对儿出现 公钥:公开给所有人;pubkey 私钥:自己留存,必须保证其私密性;secret key 特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然; 数字签名:主要在于让接收方确认发送方…

    Linux干货 2016-09-19
  • Linux系统上获取命令的帮助信息方法

    当我们在操作linux时忘记相关命令的用法时,可以使用man 命令或者命令 -h来查询该命令的用法; man文档共有9个章节 1:所有用户可以操作的指令或可执行文件 2:系统核心调用的函数与工具 3:子调用,常用的函数与函数库 4:设备,硬件文件说明,通常是/dev/的文件 5:文件格式,配置文件或者是某些档案的格式 6:游戏相关 7:杂项,例如linux文…

    Linux干货 2018-03-04
  • bash编程基础(二)补

       bash脚本编程         脚本文件格式:         第一行,顶格:#!/bin/bash         注释信息:#         代码注释:  …

    Linux干货 2016-12-23
  • Linux系统的基础命令及事例讲解

    Linux操作系统是系统运维领域里逐步强大,逐步受到关注的一款开源系统,它包含里大量的命令及程序,以下是我在这一周内学到的几种命令及获取帮助命令的方法: 1  tty    tty是查看终端设备的一个命令,输入之后系统会提示如下:    /dev/pts/1   其中pts代表是在命令行接口下终端类…

    Linux干货 2016-10-30
  • 磁盘管理之磁盘分区,主引导分区表修复

    磁盘管理: I/O Ports: I/O设备地址 一切皆文件: open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number, 标识设备类型…

    Linux干货 2016-08-25

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 13:55

    文章内容较为完整,但是有乱码,好像不是第一次出现这种情况了哦,需要花点时间找找原因啊。