前提:清除防火墙和selinux策略

   iptables -F ; setenforce 0


basic认证配置示例:

一、基于用户认证:

  (1) 定义安全域

    

    AuthType Basic    认证方式

    AuthName "String“  提示信息

    AuthUserFile  "/etc/httpd/conf.d/.htusers"  存放用户的文件(利用htpasswd生成,下面有示例)

    Require user http1 http2 ...       定义允许访问的用户

    

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

7358595515220143d1aa284751a7b216.jpg

或者把directory里的四行内容写到需要认证的目录下的文件(/var/www/html/secret/.htaccess),

然后在配置文件里写上AllowOverride authconfig(允许安全认证),如下所示

  vim /var/www/html/secret/.htaccess

     authtype basic

    authname "tingjie dir"

     uthuserfile "/etc/httpd/conf.d/.htusers"

    require user http1 http2

  vim /etc/httpd/conf/httpd.conf

     

     AllowOverride authconfig

     

  (2) 提供账号和密码存储(文本文件)

 使用专用命令完成此类文件的创建及用户管理

 htpasswd [options] /PATH/HTTPD_PASSWD_FILE username

    -c:自动创建文件,仅应该在文件不存在时使用

    -m:md5格式加密,默认方式

    -s: sha格式加密

    -D:删除指定用户

         比如创建http1,http2,http3用户,并分别设置密码

实验-------basic认证配置_第1张图片 

  (3)重新加载服务service httpd reload

测试:在linux上测试如下:

             curl http://192.168.119.129/secret/

实验-------basic认证配置_第2张图片 

在Windows上测试如下:

http://192.168.119.129/secret/,弹出如下用户认证界面,只有http1http2能访问,http3不能

实验-------basic认证配置_第3张图片 

二、基于组账号进行认证

  (1) 定义安全域

    

    AuthType Basic

    AuthName "String“

    AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE"

    AuthGroupFile "/PATH/HTTPD_GROUP_FILE"

    Require group grpname1 grpname2 ...

    

           具体示例如下图所示,允许group1组的用户访问

实验-------basic认证配置_第4张图片 

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

     组文件:每一行定义一个组

      GRP_NAME: username1 username2 ...

             vim /etc/httpd/conf.d/.htgroup

                group1:http1 http2   

                group2:http3

47463c98b616cd16198d22d49e86e134.jpg 

  (3)重新加载服务service httpd reload

  (4)测试方法同上(结果:http3不能访问,http1和http2可以访问)


说明:basic认证是明文的,不安全,可以配合安全的https来使用。https的实现请参看博文:http://13150617.blog.51cto.com/13140617/1974469

j_0080.gif