扩展:
几种限制ip的方法 http://www.lishiming.net/thread-6519-1-1.html
apache 自定义header http://www.aminglinux.com/bbs/thread-830-1-1.html
apache的keepalive和keepalivetimeout
http://www.aminglinux.com/bbs/thread-556-1-1.html
1. 更改虚拟主机配置文件:网站设定防盗链(非白名单网站不可引用):
给111.com网站下所有(txt,doc,mp3,zip,rar,jpg,gif,png等这些格式的资源),
防止其他网站私自引用,设定只给白名单网站引用显示,设定防盗链:
[root@hao-01 111.com]#
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
删除之前的配置,增加内容(防盗链配置信息):
注意:设定防盗链规则对应的格式一定要注意,和做实验上传访问的格式要一致。
<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>
2. 检测虚拟机配置文件是否有错误:
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
3. 启动apache2.4/httpd:
[root@hao-01 apache2.4]# /usr/local/apache2.4/bin/apachectl start
4. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
5. 进入111网站目录下:
[root@hao-01 ~]# cd /data/wwwroot/111.com
6. 从window上传一张图片到当前目录下:
7. 查看虚拟主机111.com目录下的文件:
(baidu.png就是刚刚从windows上传到当前目录的图片)
8. Linux服务器上打开80端口:
[root@hao-01 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
(关闭80端口:iptables -D INPUT -p tcp --dport 80 -j ACCEPT )
10. windows上游览器,访问111.com/baidu.png
(png图片做防盗链虚拟主机配置文件一定要有这个格式规则):
12. 编辑虚拟主机配置文件,把111.com网站中的一行注释掉!
注释掉此行:所有111.com网站下的(txt,doc,mp3,zip,rar,jpg,gif等这些格式的资源),不能直接通过111.com访问,但是白名单网站可以引用,这就是防盗链!!!
[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
13. 检测虚拟机配置文件是否有错误:
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
14. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
15. 在Windows游览器上访问111.com/baidu.png(空的Referer这行给注释掉,直接访问111.com/baidu.png就访问受限了!!!)
16. 测试非白名单网站,访问111.com下的防盗链后的txt等格式文件:
[root@hao-01 ~]# curl -e "http://aaa.com/123.txt" -x127.0.0.1:80 111.com/baidu.png -I
17. 测试白名单网站,访问111.com下的防盗链后的txt等格式文件:
[root@hao-01 ~]# curl -e "http://bbb.com/123.txt" -x127.0.0.1:80 111.com/baidu.png -I
11.26 访问控制Directory
Directory设定访问控制
1. 编辑虚拟主机配置文件:
[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
增加内容:
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>2. 在111.com主机下,创建一个admin目录:
[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
7. curl 跟非白名单来源ip访问111.com主机下的限制目录文件不能访问的:
[root@hao-01 ]# curl -x192.168.130.138:80 111.com/admin/index.php -I
11.27 访问控制FilesMatch
1. 编辑虚拟主机配置文件:
[root@hao-01 ]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
增加更改内容:
<Directory /data/wwwroot/111.com>
<FilesMatch admin.php(.*)>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
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主机下的限制类型地址是可以访问的:
[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/admin.php?jakgjf' -I5. curl 跟非白名单来源ip访问111.com主机下的限制目录文件不能访问的:
[root@hao-01 ]# curl -x192.168.130.138:80 'http://111.com/admin.php?jakgjf' -I