有時候咱們會把站點,作一個白名單或者黑名單的限制好比說咱們發現一個來源的IP會有非法的請求,那咱們經過訪問日誌能夠發現其中某一個IP一直在進行嘗試***個人站點,這個時候我就能夠把這個IP禁掉,咱們能夠在配置文件裏去實現,怎麼作呢咱們先去主配置文件裏去拷貝一個模板php
[root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/httpd.confhtml
<Directory "/usr/local/apache2/cgi-bin">linux
AllowOverride Noneapache
Options Nonevim
Order allow,denycurl
Allow from allide
</Directory>url
拷貝到虛擬主機的配置文件裏面去spa
[root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.confrest
具體位置放在哪了都行
<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