231weq 发表于 2016-1-4 10:12:58

Apache访问控制

有时候我们会把站点,做一个白名单或者黑名单的限制比如说我们发现一个来源的IP会有非法的请求,那我们通过访问日志可以发现其中某一个IP一直在进行尝试攻击我的站点,这个时候我就可以把这个IP禁掉,我们可以在配置文件里去实现,怎么做呢我们先去主配置文件里去拷贝一个模板# vim /usr/local/apache2/conf/httpd.conf
<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
拷贝到虚拟主机的配置文件里面去
# 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# 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>
# apachectl -t
Syntax OK
# apachectl restart
# 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


页: [1]
查看完整版本: Apache访问控制