您的位置:首页 > 运维架构 > Apache

Apache访问控制

2016-01-01 16:22 543 查看
有时候我们会把站点,做一个白名单或者黑名单的限制比如说我们发现一个来源的IP会有非法的请求,那我们通过访问日志可以发现其中某一个IP一直在进行尝试攻击我的站点,这个时候我就可以把这个IP禁掉,我们可以在配置文件里去实现,怎么做呢我们先去主配置文件里去拷贝一个模板
[root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/httpd.conf
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
拷贝到虚拟主机的配置文件里面去
[root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
具体位置放在哪了都行
<Directory "/data/www">
AllowOverride None 这是一个控制语句
Options None
Order allow,deny
Allow from all
Deny from 2.2.2.2
</Directory>
这里又一个讲究这个Order我们可以先deny也可以先Allow,哪一个在前面就先看哪一个,比如我们这个地方先写 Order Deny,allow那么在下面的时候,就要先看Deny的语句了,先后它们是有影响的

Deny from 1.1.1.1 所以先看这个规则
Allow from all 所有的IP网段
如果写成这个样子deny是不生效的,最终所有都被允许,如果是 Order allow,deny 那么就是先允许所有的通过,但是后来又发现一条规则把 1.1.1.1给deny了,所以关键的我们要看它们的顺序,哪一个在前,哪一个在后,然后根据这个顺序去看规则,不分上下分的是先后顺序
<Directory "/data/www"> AllowOverride None Options None Order allow,deny Allow from all Deny from 127.0.0.1</Directory>那么意味着我们访问127.0.0.1的时候是403[root@zhangmengjunlinux ~]# curl -x127.0.0.1:80 www.test.com -I
HTTP/1.1 403 Forbidden
Date: Thu, 31 Dec 2015 09:33:36 GMT
Server: Apache/2.2.31 (Unix) PHP/5.3.27
Content-Type: text/html; charset=iso-8859-1
除了这种写法还有根据URI forum.php或者是admin.php 这样的访问,他是我们的后台,那我们完全可以根据admin.php去做一个简单的白名单限制,只允许某一些人访问我,怎么做呢,可以这样写 filesmatch 用这个来实现
<filesmatch "(.*)admin(.*)">
Order deny,allow
Deny from all
Allow from 192.168.140.100
</filesmatch>
[root@zhangmengjunlinux ~]# apachectl -t
Syntax OK
[root@zhangmengjunlinux ~]# apachectl restart
[root@zhangmengjunlinux ~]# curl -x192.168.140.100:80 www.test.com/admin.php -I
HTTP/1.1 200 OK
Date: Thu, 31 Dec 2015 10:23:09 GMT
Server: Apache/2.2.31 (Unix) PHP/5.3.27
X-Powered-By: PHP/5.3.27
Set-Cookie: YQdF_2132_saltkey=MyWNr2Ex; expires=Sat, 30-Jan-2016 10:23:09 GMT; path=/; httponly
Set-Cookie: YQdF_2132_lastvisit=1451553789; expires=Sat, 30-Jan-2016 10:23:09 GMT; path=/
Set-Cookie: YQdF_2132_sid=WMOQJg; expires=Fri, 01-Jan-2016 10:23:09 GMT; path=/
Set-Cookie: YQdF_2132_lastact=1451557389%09admin.php%09; expires=Fri, 01-Jan-2016 10:23:09 GMT; path=/
Cache-Control: max-age=0
Expires: Thu, 31 Dec 2015 10:23:09 GMT
Content-Type: text/html; charset=gbk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: