http配置文件说明--站点访问控制常见机制

8、站点访问控制常见机制
可基于两种机制指明对哪些资源进行何种访问控制
访问控制机制有两种:客户端来源地址,用户账号


文件系统路径:
	<Directory “/path">...</Directory>     目录
	<File “/path/file”> ...</File>         文件
	<FileMatch "PATTERN">...</FileMatch>   文件表达式
URL路径:
	<Location "">...</Location>
	<LocationMatch "">...</LocationMatch> 
	
	示例:
	<FilesMatch "\.(gif|jpe?g|png)$">
	<Files “?at.*”> 通配符
	<Location /status> <LocationMatch "/(extra|special)/data">	


参数说明:1.Options 2.AllowOverride 3.Require

(1) Options:后跟1个或多个以空白字符分隔的选项列表
 在选项前的+,- 表示增加或删除指定选项
 常见选项:
	Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户,默认不显示符号链接。
	FollowSymLinks:允许访问符号链接文件所指向的源文件,(DocumentRoot里可能有软连接路径。)
	None:全部禁用
	All: 全部允许
	示例:
	<Directory /var/www/html/>
	    Require all granted
		Options Indexes FollowSymLinks
	</Directory>

	
(2) AllowOverride 
与访问控制相关的哪些指令可以放在指定目录下的.htaccess(由AccessFileName指定)文件中,覆盖之前的配置指令
cat /var/www/html/.htaccess
	Options Indexes FollowSymLinks

在配置文件中对启用.htaccess设置授权。
 1.只对<directory>语句有效 2.针对不同的文件夹设置不同的功能。
	AllowOverride All          #.htaccess中所有指令都有效
	AllowOverride None         #.htaccess 文件无效,服务器不会读取.htaccess文件
	AllowOverride AuthConfig   #.htaccess 文件中,除了AuthConfig 其它指令都无法生效
	
	<Directory /var/www/html/>
	Require all granted
	#Options Indexes FollowSymLinks #这项已在.htaccess设置了。
	AllowOverride All
	</Directory>

	<Files "*.conf">
		Require all denied
	</Files>


(3) 基于IP的访问控制:
	无明确授权的目录,默认拒绝
	允许所有主机访问:Require all granted
	拒绝所有主机访问:Require all denied
	控制特定的IP访问:
		Require ip IPADDR/mask:授权指定来源的IP访问
		Require not ip IPADDR:拒绝特定的IP访问
	控制特定的主机访问:
		Require host HOSTNAME:授权特定主机访问
		Require not host HOSTNAME:拒绝
	HOSTNAME:
		FQDN:特定主机
		domin.tld:指定域名下的所有主机	



#禁止访问配置文件
<Files "*.conf">
	Require all denied
</Files>

#不能有失败,至少有一个成功匹配才成功,即失败优先
<directory /data/www/>
	<RequireAll> 
		Require all granted
		Require not ip 172.16.1.1 拒绝特定IP
	</RequireAll> 
</directory>

#多个语句有一个成功,则成功,即成功优先
 <directory /data/www/>
	<RequireAny>
		Require all denied
		require ip 172.16.1.1 允许特定IP
	</RequireAny>
 </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

  

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