题目

1、建立httpd服务,要求:
(1) 提供两个基于名称的虚拟主机:
www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;
www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;
(2) 通过www1.stuX.com/server-status输出其状态信息,且要求只允许提供账号的用户访问;
(3) www1不允许192.168.1.0/24网络中的主机访问;

2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(jzbg);
(2) 设置部门为Ops, 主机名为www2.stuX.com;

参考

参考:https://www.cnblogs.com/jzbgltb/p/10051124.html
参考:http://uee.me/bh4Gh
参考:https://blog.51cto.com/shumao/1826349?source=dra
参考:https://www.cnblogs.com/jiesying/p/7710888.html

实验总结

1、基于域名的虚拟主机,配置两个虚拟机主机,没有域名的使用hosts解析,监听在本地IP或所有IP的80端口。
2、通过www1.stuX.com/server-status输出其状态信息 即添加一个location,

13、status页面
    LoadModule  status_module  modules/mod_status.so

    httpd-2.2
        
            SetHandler server-status
            Order allow,deny
            Allow from 172.16
        

    httpd-2.4
        
            SetHandler server-status
            
                Require ip 172.16
            
         

3、资源限制访问

11、基于用户的访问控制

    认证质询:
        WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码;

    认证:
        Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源;

        认证方式有两种:
            basic:明文 
            digest:消息摘要认证

    安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因;

    用户的账号和密码存放于何处?
        虚拟账号:仅用于访问某服务时用到的认证标识

        存储:
            文本文件;
            SQL数据库;
            ldap目录存储;

    basic认证配置示例:
        (1) 定义安全域
            
                Options None
                AllowOverride None
                AuthType Basic
                AuthName "String“
                AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
                Require  user  username1  username2 ...
            

            允许账号文件中的所有用户登录访问:
                Require  valid-user

        (2) 提供账号和密码存储(文本文件)
            使用专用命令完成此类文件的创建及用户管理
                htpasswd  [options]   /PATH/TO/HTTPD_PASSWD_FILE  username 
                    -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;
                    -m:md5格式加密
                    -s: sha格式加密
                    -D:删除指定用户
                    -b:批模式添加用户 
                        htpasswd -b  [options]   /PATH/TO/HTTPD_PASSWD_FILE  username password

        另外:基于组账号进行认证;
            (1) 定义安全域
                
                    Options None
                    AllowOverride None
                    AuthType Basic
                    AuthName "String“
                    AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
                    AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
                    Require  group  grpname1  grpname2 ...
                

            (2) 创建用户账号和组账号文件;

                组文件:每一行定义一个组
                    GRP_NAME: username1  username2  ...

4、限制不同网段主机访问

站点访问控制常见机制

可基于两种机制指明对哪些资源进行何种访问控制

    文件系统路径:
        
        ...
        

        
        ...
        

        
        ...
        
    URL路径:
        
        ...
        

        
        ...
        

中“基于源地址”实现访问控制:

    httpd-2.2:

         order和allow、deny
            order:定义生效次序;写在后面的表示默认法则;

            Allow from, Deny from
                来源地址:
                    IP
                    NetAddr:
                        172.16
                        172.16.0.0
                        172.16.0.0/16
                        172.16.0.0/255.255.0.0

    httpd-2.4:
        基于IP控制:
            Require ip  IP地址或网络地址
            Require not ip IP地址或网络地址
        基于主机名控制:
            Require host 主机名或域名
            Require not host 主机名或域名

        要放置于配置块中或配置块中;

    控制页面资源允许所有来源的主机可访问:
        httpd-2.2
            
                ...
                Order allow,deny
                Allow from all 
            

        httpd-2.4
            
                ...
                Require all granted
                

    控制页面资源拒绝所有来源的主机可访问:
        httpd-2.2
            
                ...
                Order allow,deny
                Deny from all 
            

        httpd-2.4
            
                ...
                Require all denied
                

    Options:Configures what features are available in a particular directory
        后跟1个或多个以空白字符分隔的“选项”列表;
            Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户;
            FollowSymLinks:允许跟踪符号链接文件所指向的源文件;
            None:
            All:All options except for MultiViews.

5、status页面

13、status页面
    LoadModule  status_module  modules/mod_status.so

    httpd-2.2
        
            SetHandler server-status
            Order allow,deny
            Allow from 172.16
        

    httpd-2.4
        
            SetHandler server-status
            
                Require ip 172.16