扩展:

几种限制ip的方法 :

http://ask.apelearn.com/question/6519

apache 自定义header :

http://ask.apelearn.com/question/830

apache的keepalive和keepalivetimeout :

http://ask.apelearn.com/question/556

1. 更改虚拟主机配置文件:网站设定防盗链(非白名单网站不可引用)

给111.com网站下所有(txt,doc,mp3,zip,rar,jpg,gif,png等这些格式的资源),

防止其他网站私自引用,设定只给白名单网站引用显示,设定防盗链:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

删除之前的配置

clipboard.png

增加内容(防盗链配置信息):

注意:设定防盗链规则对应的文件和图片格式,要和做实验上传访问的格式要一致!

   <Directory /data/wwwroot/111.com>

       SetEnvIfNoCase Referer "http://111.com" local_ref

       SetEnvIfNoCase Referer "http://aaa.com" local_ref

      #SetEnvIfNoCase Referer "^$" local_ref

       <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">

           Order Allow,Deny

           Allow from env=local_ref

       </filesmatch>

   </Directory>

clipboard.png

注意:#SetEnvIfNoCase Referer "^$" local_ref 这行如果不注释掉,下面行设定的防盗链所防的格式图片文件等就会失效!也就是所有网站都可以引用了,一定要注释掉这行才可以。

2. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 启动apache2.4/httpd

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  start

4. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

5. 进入111.com网站目录下 :

[root@hao-01 ~]# cd /data/wwwroot/111.com

6. 6. window上传一张图片当前目录下

[root@hao-01 111.com]# rz

clipboard.png

7. 查看虚拟主机111.com目录下的文件 :

(1.jpg就是刚刚从windows上传到当前目录的图片)

[root@hao-01 111.com]# ls

clipboard.png

8. Linux服务器上打开80端口 :

[root@hao-01 111.com]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

(关闭80端口:iptables -D INPUT -p tcp --dport 80 -j ACCEPT )

10. Windows上游览器,访问111.com/1.jpg

(.jpg图片做防盗链虚拟主机配置文件一定要有这个格式规则):

clipboard.png

11. 测试非白名单网站,访问111.com下的防盗链后的txt等格式文件 :

[root@hao-01 111.com]# curl -e "http://aaa.com/123.txt" -x127.0.0.1:80 111.com/1.jpg -I

clipboard.png

12. 测试白名单网站,访问111.com下的防盗链后的txt等格式文件 :

[root@hao-01 111.com]# curl -e "http://bbb.com/123.txt" -x127.0.0.1:80 111.com/1.jpg -I

clipboard.png

11.26 访问控制Directory

Directory设定访问控制

1. 编辑虚拟主机配置文件

[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加内容(111.com/admin是受限的目录)

   <Directory /data/wwwroot/111.com/admin/>

      Order deny,allow

       Deny from all

       Allow from 127.0.0.1

   </Directory>

clipboard.png

2. 111.com主机目录下,创建一个admin目录:

这个admin目录,是在配置文件中设定只有白名单ip可以访问的!

[root@hao-01 ~]# mkdir /data/wwwroot/111.com/admin/

3. amdin目录下,创建一个index.php文件,编写任意字符

[root@hao-01 ~]# vim /data/wwwroot/111.com/admin/index.php

内容任意

4. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

5. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

6. curl 白名单来源ip 访问111.com主机下的限制目录文件可以访问的 :

[root@hao-01 111.com]# curl -x127.0.0.1:80 111.com/admin/index.php -I

clipboard.png

7. curl 跟非白名单来源ip访问111.com主机下的限制目录文件不能访问的 :

[root@hao-01 111.com]# curl -x192.168.223.128:80 111.com/admin/index.php -I

clipboard.png

11.27 访问控制FilesMatch

1. 编辑虚拟主机配置文件

[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加内容(上面的限制admin目录的内容删掉了)

  <Directory /data/wwwroot/111.com>

       <FilesMatch admin.php(.*)>

       Order deny,allow

       Deny from all

     Allow from 127.0.0.1

       </FilesMatch>

   </Directory>

clipboard.png

2. 检测虚拟机配置文件是否有错误 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加载配置文件(不会重启服务) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

4. curl 白名单来源ip 访问111.com主机下的admin.php限制文件可以访问

[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/admin.php.123' -Ispacer.gifclipboard.png

5. curl 非白名单来源ip 访问111.com主机下限制目录文件不可以访问

[root@hao-01 ]# curl -x192.168.223.128:80 'http://111.com/admin.php.123' -Ispacer.gifclipboard.png