httpd基于用户的访问控制

13、基于用户的访问控制
 认证质询:WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码
 认证:Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源
 认证方式两种:
		basic:明文
		digest:消息摘要认证,兼容性差
 安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因
 用户的账号和密码
	    虚拟账号:仅用于访问某服务时用到的认证标识
	    存储:文本文件,SQL数据库,ldap目录存储,nis等


basic认证配置
(1) 定义安全域
	<Directory “/path">
	Options None
	AllowOverride None
	#Require all granted
	AuthType Basic       							#认证方式
	AuthName "String“   							#登录描述信息
	AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE"  	#账号路径文件,由htpasswd命令生成
	Require user username1 username2 ...   			#允许文件中特定用户登录访问
	Require valid-user   							#允许账号文件中的所有用户登录访问
	</Directory>
(2) 提供账号和密码存储(文本文件)
	使用专用命令完成此类文件的创建及用户管理
	htpasswd [options] /PATH/HTTPD_PASSWD_FILE username 
		-c 自动创建文件,仅应该在文件不存在时使用
		-p 明文密码
		-d CRYPT格式加密,默认
		-m md5格式加密
		-s sha格式加密
		-D 删除指定用户
方法一:
1.使用htpasswd -c /etc/http/conf.d/user.list zzhz
2.配置文件设置
<directory /var/www/html/admin>
       AuthType Basic       
       AuthName  "aaaaaaa"
       AuthUserFile "/etc/http/conf.d/user.list"  
       Require valid-user   
</directory>

方法二:
1.在/var/www/html/admin下创建.htaccess文件并设置   
	AuthType Basic       
	AuthName  "aaaaaaa"
	AuthUserFile "/etc/http/conf.d/user.list"  
	Require valid-user   
2.设置配置文件
	<directory /var/www/html/admin>
		AllowOverride AuthConfig
	</directory>


基于组账号进行认证
	创建用户账号和组账号文件
	组文件:每一行定义一个组(组名在文件中随意取名,用户要使用htpasswd生成)
	GRP_NAME: username1 username2 ...

	示例:
	vim /etc/httpd/conf.d/.htgroup
		webadmins:wang mage

	<Directory "/www/htdocs/admin">
	 Options None
	 AllowOverride None
	 AuthType Basic
	 AuthName "Administator private"
	 AuthUserFile "/etc/httpd/conf.d/.htpasswd"
	 AuthGroupFile "/etc/httpd/conf.d/.htgroup"
	 Require group webadmins
	</Directory>


远程客户端和用户验证的控制(用户验证的控制有基于IP/用户的访问控制的两种)
	Satisfy ALL|Any
	ALL 客户机IP和用户验证都需要通过才可以
	Any 客户机IP和用户验证,有一个满足即可
	示例:
	Require valid-user
	<RequireAll> 
		Require all granted
		Require not ip 172.16.1.1
	 </RequireAll>
	Satisfy Any



14、实现用户家目录的http共享
基于模块mod_userdir.so实现
 相关设置:
vim /etc/httpd/conf.d/userdir.conf
	<IfModule mod_userdir.c> 
		#UserDir disabled
		UserDir public_html #指定共享目录的名称
	</IfModule> 
	<directory /home/wang/public_html>
		Require all granted
		#AuthType Basic
		#AuthName "wanghome Page"
		#AuthUserFile "/etc/httpd/conf.d/.httpuser"
		#Require valid-user
	</directory>
	准备目录
	su – wang;
	mkdir ~/public_html
	setfacl –m u:apache:x /home/wang
  访问 http://localhost/~wang/index.html

  

posted @ 2022-08-18 17:52  yuanbangchen  阅读(24)  评论(0编辑  收藏  举报