LAMP架构(七)

一 配置防盗链

首先来了解一下什么是盗链,全称是盗取链接,假如我们的网站有很多好看的图片,别人可以查看我们网站图片的链接,然后应用在他的网站上,这样的话,去访问他的网站,实际上消耗的是我们的流量(因为实际链接在我们这里),这样我们就不得不去配置防盗链,使得别人不能复制我们图片的链接。

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

    # vim /usr/local/apache2.4/conf/extra/httpd-vhost.conf

    在文件中加入以下内容:

<Directory /data/wwwroot/111.com>

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

    SetEnvIfNoCase Referer "http://111.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的三行内容是设置白名单

txt|doc|mp3|zip|rar|jpg|gif|png 表示防盗链防盗的对象,设置后,这些类型的文件就不能被白名单外的第三方引用

Order用于定义顺序,是先允许还是先拒绝

225450_vsfK_3746774.png

2、验证

    首先将配置文件中的空referer一行隐藏

234935_8o7U_3746774.png

    然后开启apache服务

    # /usr/loacl/apache2.4/bin/apachectl -t

    # /usr/local/apache2.4/bin/apachectl start

    这时我们在浏览器输入111.com/hw.jpg来访问服务器上hw.jpg这张图片时,出现如下提示

234907_s9bO_3746774.png

    但是如果在白名单的网站上我们发一个帖子,在帖子中加入111.com/hw.jpg这个链接,通过帖子链接跳转又能正常访问

现在我们将配置文件中的空referer一行的#号去掉,重新加载配置文件后,我们再在浏览器输入111.com/hw.jpg来访问服务器上hw.jpg这张图片时,就能正常访问了

000149_GD3m_3746774.png

  以上实验可以看出:"^$"空的referer指的是从浏览器输入图片地址直接访问,没有跳转链接,

我们再来通过curl做实验,当前空referer行未被隐藏

先直接访问,空referer状态,结果访问成功:

000857_9FvD_3746774.png

再来模拟一个不在白名单中的referer访问图片,结果被拒绝访问:

二 访问控制Directory

只允许白名单内的IP访问指定的目录

1、修改配置文件

    配置文件中加入以下内容:

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

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

</Directory>

150215_ILas_3746774.png

以上Order用于定义顺序,是先执行deny还是先执行allow,如果Order后先是allow那么就会先执行allow的语句,如果先是deny,就会先执行deny的语句,它有一个特点是:无论是否匹配到指定的IP,都会从头至尾将语句执行完;admin/为指定的访问控制的目录

创建访问控制目录及子文件

150542_tXEf_3746774.png

2、重新加载配置文件

    # /usr/local/apache2.4/bin/apachectl -t

    # /usr/local/apache2.4/bin/apachectl graceful

3、测试访问控制

    # curl -x127.0.0.1:80 111.com/admin/index.php -I  //此处指定了目标IP,未指定源IP,默认源访问IP同目标IP一致;源IP在配置文件的白名单内,访问200 OK

150627_OCue_3746774.png

    # curl -x192.168.31.157:80 111.com/admin/index.php -I  //此处指定了目标IP,未指定源IP,默认源访问IP同目标IP一致,源IP不在配置文件的白名单内,访问403 Forbidden

150813_nEgp_3746774.png

    我们来查看访问日志记录

    # tail /usr/local/apache2.4/logs/111.com-access_log

151221_msbc_3746774.png

    再来测试通过物理机访问虚拟机

    在浏览器输入111.com/admin/index.com结果也提示被禁止访问

152102_KoQm_3746774.png

三 访问控制FilesMatch

只有指定的IP才能访问匹配的文件或者说是链接

1、编辑配置文件

    在配置文件中加入以下内容

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

153157_ttGL_3746774.png

以上表示匹配admin.php(.*)文件或链接只有指定的IP能访问

2、重新加载配置文件

    # /usr/local/apache2.4/bin/apachectl -t

    # /usr/local/apache2.4/bin/apachectl graceful

3、测试验证

    # curl -x192.168.31.157:80 111.com/sfdfsfs -I   //以下结果表示找不到这个页面

154832_ENk1_3746774.png

    # curl -x192.168.31.157:80 111.com/admin.php?sfdfsfs -I  //以下结果表示不允许源IP访问

154856_6Dzx_3746774.png

    # curl -x127.0.0.1:80 111.com/admin.php?dfdfdfdfdfd -I //以下结果表示已经允许的源IP的访问,只是找不到对应的页面

154907_mbzB_3746774.png

 

推荐链接

几种限制ip的方法 http://ask.apelearn.com/question/6519

apache 自定义header http://ask.apelearn.com/question/830

apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556

 

 

 

转载于:https://my.oschina.net/u/3746774/blog/1630128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值