5月31日任务

课程内容:

11.25 配置防盗链
11.26 访问控制Directory
11.27 访问控制FilesMatch
扩展
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556

11.25 配置防盗链

通过限制referer来实现防盗链的功能,在虚拟主机vhosts.conf配置文件增加如下内容。

<Directory /data/wwwroot/.com>
SetEnvIfNoCase Referer "http://111.com" local_ref //设置白名单
SetEnvIfNoCase Referer "http://aaa.com" local_ref //设置白名单
#SetEnvIfNoCase Referer "^$" local_ref //空Referer
<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
</Directory>

保存配置文件后需要重新加载

[root@jimmylinux- ~]# /usr/local/apache2./bin/apachectl -t
Syntax OK
[root@jimmylinux- ~]# /usr/local/apache2./bin/apachectl graceful

在浏览器刷新111.com/qq.jpg 会出现以下报错,因为这是一个空Referer。

如果想不是空Referer能够正常访问,首先在猿课论坛发一个帖子。

通过帖子打开链接,这个时候同样也会是Forbidden,因为Referer是ask.apelearn.com,如果想正常访问,那么把ask.apelearn.com加入到白名单即可。

SetEnvIfNoCase Referer "http://ask.apelearn.com" local_ref

记得保存配置文件后需要重新加载

[root@jimmylinux- ~]# /usr/local/apache2./bin/apachectl -t
Syntax OK
[root@jimmylinux- ~]# /usr/local/apache2./bin/apachectl graceful

然后点击猿课论坛帖子链接http://111.com/qq.jpg 就可以正常访问了

如果想直接访问,需要把配置文件中空Referer这行前面的#删除掉,这样就可以直接访问。

SetEnvIfNoCase Referer "^$" local_ref  

保存退出重新加载配置文件,直接输入http://111.com/qq.jpg 就可以正常访问了。

一样也可以使用curl命令来测试

[root@jimmylinux- ~]# curl -x127.0.0.: .com/qq.jpg -I
HTTP/1.1 OK
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Last-Modified: Tue, Apr :: GMT
ETag: "6089-56a0cd2f55ac0"
Accept-Ranges: bytes
Content-Length:
Content-Type: image/jpeg [root@jimmylinux- ~]# curl -e "http://www.qq.com/123.txt" -x127.0.0.: .com/qq.jpg -I //通过-e “http://www.qq.com”指定Referer
HTTP/1.1 Forbidden
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Content-Type: text/html; charset=iso-- [root@jimmylinux- ~]# curl -e "http://111.com/123.txt" -x127.0.0.: .com/qq.jpg -I //111.com是本身存在的域名,使用不会报错。
HTTP/1.1 OK
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Last-Modified: Tue, Apr :: GMT
ETag: "6089-56a0cd2f55ac0"
Accept-Ranges: bytes
Content-Length:
Content-Type: image/jpeg

可以通过查看日志验证刚才的访问记录

[root@jimmylinux- ~]# tail /usr/local/apache2./logs/.com-access_20180531.log
192.168.52.1 - - [/May/::: +] "GET /favicon.ico HTTP/1.1" "http://111.com/qq.jpg" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
127.0.0.1 - - [/May/::: +] "HEAD HTTP://111.com/qq.jpg1 HTTP/1.1" - "http://111.com/123.txt" "curl/7.29.0"

11.26 访问控制Directory

访问控制的背景,之前有提到用户认证的方式进行访问,那么我希望能够控制的更严格些,比如当访问内部管理,仅仅针对内部人员,外部人员一律不开放,可以做一些白名单限制,只有在白名单里面的才可以访问,其他的访问都被拒绝。

可以修改虚拟主机配置文件vhosts.conf,为了不和防盗链的配置冲突,把添加的内容放到防盗链配置的上面。

<Directory /data/wwwroot/.com/admin/>
Order deny,allow //这里的order是指顺利,例如order deny,allow 表示先执行deny,再执行allow。
Deny from all
Allow from 127.0.0.1
</Directory> <Directory /data/wwwroot/.com>
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "http://ask.apelearn.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>

在进行测试之前我们先创建指定的admin目录和目录下面的index.php文件,然后加载配置。

[root@jimmylinux- .com]# mkdir admin
[root@jimmylinux- .com]# ls
admin admin.php index.php qq.jpg
[root@jimmylinux- .com]# cd admin/
[root@jimmylinux- admin]# ls
[root@jimmylinux- admin]# vi index.php
[root@jimmylinux- admin]# ls
index.php
[root@jimmylinux- admin]# cat index.php [root@jimmylinux- admin]# /usr/local/apache2./bin/apachectl graceful

使用curl命令进行访问测试,出现状态码403说明访问被限制了。

[root@jimmylinux- .com]# curl -x127.0.0.: .com/admin/index.php -I
HTTP/1.1 OK
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
X-Powered-By: PHP/7.1.
Content-Type: text/html; charset=UTF- [root@jimmylinux- .com]# curl -x127.0.0.: .com/admin/index.php [root@jimmylinux- .com]# curl -x192.168.52.: .com/admin/index.php -I
HTTP/1.1 Forbidden
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Content-Type: text/html; charset=iso-- [root@jimmylinux- .com]# curl -x127.0.0.: .com/admin/index.php [root@jimmylinux- .com]# tail /usr/local/apache2./logs/.com-access_20180531.log
192.168.52.1 - - [/May/::: +] "GET /favicon.ico HTTP/1.1" "http://111.com/qq.jpg" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
127.0.0.1 - - [/May/::: +] "HEAD HTTP://111.com/qq.jpg1 HTTP/1.1" - "http://111.com/123.txt" "curl/7.29.0"
127.0.0.1 - - [/May/::: +] "HEAD HTTP://111.com/admin/index.php HTTP/1.1" - "-" "curl/7.29.0"
127.0.0.1 - - [/May/::: +] "GET HTTP://111.com/admin/index.php HTTP/1.1" "-" "curl/7.29.0"
192.168.52.129 - - [/May/::: +] "HEAD HTTP://111.com/admin/index.php HTTP/1.1" - "-" "curl/7.29.0"
127.0.0.1 - - [/May/::: +] "GET HTTP://111.com/admin/index.php HTTP/1.1" "-" "curl/7.29.0"

11.27 访问控制FilesMatch

访问控制不仅仅可以针对目录形式,也可以去匹配文件名或者链接的形式进行限制。

例如:http://111.com/admin.php?&1=1&2=2   这样的方式

在vhosts.conf配置文件中添加 <FilesMatch  "admin.php(.*)">和</FilesMatch>条件,具体内容如下。

<Directory /data/wwwroot/.com>
<FilesMatch admin.php(.*)>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>

报错配置文件并重新加载,然后使用curl命令测试。

[root@jimmylinux- .com]# curl -x192.168.52.: http://111.com/admin/fjasjds -I
HTTP/1.1 Not Found
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Content-Type: text/html; charset=iso-- [root@jimmylinux- .com]# curl -x192.168.52.: 'http://111.com/admin.php?ajasjds' -I
HTTP/1.1 Forbidden
Date: Thu, May :: GMT
Server: Apache/2.4. (Unix) PHP/7.1.
Content-Type: text/html; charset=iso--

配置防盗链、访问控制Directory和FilesMatch的更多相关文章

  1. 配置防盗链 访问控制Directory 访问控制FilesMatch

  2. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  3. Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch

    一.配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 ...

  4. 11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)

    4月17日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 几种限制ip的方法 http://ask.apelearn.com/qu ...

  5. Apache配置 8.配置防盗链

    (1)介绍 防盗链,通俗讲,就是不让别人盗用你网站上的资源.这个资源,通常指的是图片.视频.歌曲.文档等. (2)配置 配置防盗链先编辑主机配置文件: #vim /usr/local/apache2. ...

  6. nginx解决服务器宕机、解决跨域问题、配置防盗链、防止DDOS流量攻击

    解决服务器宕机 配置nginx.cfg配置文件,在映射拦截地址中加入代理地址响应方案 location / { proxy_connect_timeout 1; proxy_send_timeout ...

  7. The server of Apache (四)——配置防盗链和隐藏版本信息

    一.防盗链 防盗链就是防止别人的网站代码里面盗用我们服务器的图片.文件.视频等相关资源,比如我们的网页的图片有链接,别人把链接复制粘贴到他们的服务器页面里,图片不在他们自己的网站里,每次打开他们的网站 ...

  8. LAMP 2.3 Apache配置防盗链

    如果你的站点是一个图片站,有很多非常漂亮的美女图片,那我相信,时间久了会有很多人来你网站借图片,有的人直接下载走了,还有的人直接取走图片的地址,比如你的网站域名是 www.123.com,图片地址为 ...

  9. apache配置防盗链

    1.确保apache已开启rewrite.   2.在.htaccess文件中添加如下: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://X ...

随机推荐

  1. %%%GXZ大佬回关

  2. 程序员学点xx 之 Redis

    程序员学点xx 之 Redis 概述 其实程序员也要和操作系统打交道, 比如最常见的,部署自己电脑上的开发环境. 当然有时某些牛人, 觉得运维或基础部门的同事不够给力, 亲自上手部署服务器或线上环境, ...

  3. P3128 [USACO15DEC]最大流

    秒切树上查分....(最近一次集训理解的东西) 但是,我敲了半小时才切掉这道题.... 我一直迷在了“边差分”和“点差分”的区别上. 所以,先说一下此题,再说一下区别. 首先,想到差分很容易. 然后, ...

  4. python中的集合、元组和布尔

    #元组,元组跟列表一样,只不过列表可读可写,而元组一般用来只读,不修改#python中不允许修改元组的数据,也包括不能删除其中的元素. t1 = ('a','b','c','d','s','a') & ...

  5. csp-s2019游记

    11.15D0: 复习 复习 机房里弥漫着颓废的气息,不过也是最后一个下午了 11.16D1: 五点钟爬起来,一边发抖一边去楼下买早饭 虽然平时基本不吃早饭,但考前不行 搭着同学的车去了考点,在车上重 ...

  6. centos6升级openssh至7.9

    1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /root/ssh_updateyum install -y telnet-serveryum install -y xinetd ...

  7. 并发编程-深入浅出AQS

    AQS是并发编程中非常重要的概念,它是juc包下的许多并发工具类,如CountdownLatch,CyclicBarrier,Semaphore 和锁, 如ReentrantLock, ReaderW ...

  8. java实现两个json的深度对比

    两个json的深度对比 在网上找了好多资料都没有找到想要的,还是自己写个吧! 上代码!!! 1.pom.xml中加入 <dependency> <groupId>com.ali ...

  9. pat 1092 To Buy or Not to Buy(20 分)

    1092 To Buy or Not to Buy(20 分) Eva would like to make a string of beads with her favorite colors so ...

  10. python3.7.1安装Scrapy爬虫框架

    python3.7.1安装Scrapy爬虫框架 环境:win7(64位), Python3.7.1(64位) 一.安装pyhthon 详见Python环境搭建:http://www.runoob.co ...