Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.基于用户的访问控制概述
认证质询:
WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码
认证:
Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源
认证方式两种: basic:
明文认证,不过可以配合https进行加密传输问题也不大。 digest:
消息摘要认证,兼容性差,有的浏览器可能不支持哟~
安全域:
需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因
用户的账号和密码 虚拟账号:
仅用于访问某服务时用到的认证标识 存储:
文本文件,SQL数据库,ldap目录存储,nis等
二.基于basic认证配置实战案例
1>.创建测试数据
[root@node101.yinzhengjie.org.cn ~]# mkdir /var/www/html/admin [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# echo "/var/www/html/admin/index.html" > /var/www/html/admin/index.html [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll /var/www/html/admin total 4 -rw-r--r-- 1 root root 31 Dec 9 06:11 index.html [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/admin/index.html /var/www/html/admin/index.html [root@node101.yinzhengjie.org.cn ~]#
2>.提供账号和密码存储(文本文件)
使用专用命令完成此类文件的创建及用户管理 htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
常用选项: -c:
自动创建文件,仅应该在文件不存在时使用 -p:
明文密码 -d:
CRYPT格式加密,默认 -m:
md5格式加密 -s:
sha格式加密 -D:
删除指定用户
具体使用案例如下图所示。
[root@node101.yinzhengjie.org.cn ~]# htpasswd -c /etc/httpd/conf.d/httpdpasswd jason #创建第一个用户时需要使用"-c"选项创建的用户的同时会自动创建文件,若文件已经存在则清空文件所有内容重新写入咱们新创建的用户。 New password: Re-type new password: Adding password for user jason [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll /etc/httpd/conf.d/httpdpasswd -rw-r--r-- 1 root root 44 Dec 9 06:15 /etc/httpd/conf.d/httpdpasswd [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# date Mon Dec 9 06:15:33 CST 2019 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# htpasswd -s /etc/httpd/conf.d/httpdpasswd jay #创建第二个用户时千万别在使用"-c"选项哟,不过咱们可以使用-s指定加密算法为sha格式加密哟~ New password: Re-type new password: Adding password for user jay [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# chmod 600 /etc/httpd/conf.d/httpdpasswd #为了安全起见,可以将文件权限改小点。 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll /etc/httpd/conf.d/httpdpasswd -rw------- 1 root root 82 Dec 9 06:20 /etc/httpd/conf.d/httpdpasswd [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# cat /etc/httpd/conf.d/httpdpasswd jason:$apr1$fnoHrDaP$Q0ZGtsOj9D4W3xHzIKm9E/ jay:{SHA}o78nbN18sxTgXokaJRMEYOxV5b8= [root@node101.yinzhengjie.org.cn ~]#