十四、Apache配置访问控制

访问控制介绍

可以实现针对某些目录进行访问控制,禁止一些IP地址的访问


针对目录访问控制

1、编辑主配置文件

$ vim /usr/local/apache2/conf/httpd.conf
478 Include conf/extra/httpd-vhosts.conf #去掉该行注释启用配置文件

2、编辑虚拟主机配置文件

$ vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
	DocumentRoot "/www/tz"
	ServerName www.tz.com
	<Directory "/www/tz"> 
	Order deny,allow #访问规则,先拒绝后允许,即只拒绝10.154.0.0网段用户访问
	deny from 10.154.0.0/24 
	</Directory>
</VirtualHost>

$ apachectl -t && apachectl graceful

针对URI作访问控制

禁止指定用户访问网站后台

以下为虚拟主机配置文件

$ vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
	DocumentRoot "/www/tz"
	ServerName www.tz.com
	<filesmatch "(.*)admin(.*)"> 
	Order allow,deny  #先允许后拒绝,即只允许10.154.0.0网段访问后台其他都不允许
	allow from 10.154.0.0/24
	</filesmatch>
</VirtualHost>

$ apachectl -t && apachectl graceful

禁止相关目录解析php

比如某些目录上传文件,避免上传的有木马,可以针对某些路径禁止解析php

以下为虚拟主机配置文件

$ vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
	DocumentRoot "/www/tz"
	ServerName www.tz.com
	<Directory /www/tz/updata> # 对updata目录进行php解析限制
	php_admin_flag engine off # 将php解析引擎关闭 
	<filesmatch "(.*)php">
        #若不加filesmatch,只是将engine off,在浏览器访问该文件时,会将php文件下载下来
	Order deny,allow 
	Deny from all 
        #禁止解析所有,
	</filesmatch> 
	</Directory
</VirtualHost>

参考资料:
B站:千锋教育云计算650集-P147

posted @ 2021-05-13 20:43  努力吧阿团  阅读(202)  评论(0)    收藏  举报