扩展:
几种限制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
删除之前的配置:
增加内容(防盗链配置信息):
注意:设定防盗链规则对应的文件和图片格式,要和做实验上传访问的格式要一致!
<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>
注意:#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
7. 查看虚拟主机111.com目录下的文件 :
(1.jpg就是刚刚从windows上传到当前目录的图片)
[root@hao-01 111.com]# ls
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图片做防盗链虚拟主机配置文件一定要有这个格式规则):
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
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
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>
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
7. curl 跟非白名单来源ip访问111.com主机下的限制目录文件不能访问的 :
[root@hao-01 111.com]# curl -x192.168.223.128:80 111.com/admin/index.php -I
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>
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' -I
5. curl 跟非白名单来源ip 访问111.com主机下限制目录文件是不可以访问 :
[root@hao-01 ]# curl -x192.168.223.128:80 'http://111.com/admin.php.123' -I