配置Apache实现防盗链功能

一、防盗链简介

  • 防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源

  • 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力

  • 作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用

  • 配置规则变量说明:

  1. %{HTTP_REFERER}:浏览header中额链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页
  2. !^:不以后面的字符串开头
  3. .$:以任意字符结尾
  4. NC:不区分大写
  5. R:强制跳转
  • 规则匹配说明
  1. RewriteEngine On:打开网页重写功能
  2. RewriteCond:设置匹配规则
  3. RewriteRule:设置跳转动作
  • 规则匹配:

如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配

二、在Apache上配置防盗链功能

  • 实验环境:VMware Workstation 15.5、XShell 6、Centos 7.6、Windows10专业工作站版
  • 实验所需要的三个软件包的下载地址:
    httpd-2.4.25:https://wwa.lanzous.com/i0VcXebkl6h
    apr-util-1.4.1:https://wwa.lanzous.com/i8Cbjebkl3e
    apr-1.4.6:https://wwa.lanzous.com/iR5Orebkl0b
  • 实验步骤

1、清空防火墙规则并关闭核心防护功能

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0

2、将安装http服务的三个包上传到服务器opt目录下,并解压缩

[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2
[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz

3、两个apr包移动到httpd目录中

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

4、安装DNS服务

[root@localhost opt]# yum -y install bind

5、修改DNS主配置文件

[root@localhost opt]# vi /etc/named.conf 

将原先的127.0.0.1修改为any

aRwBUP.md.jpg
6、修改DNS区域文件

[root@localhost opt]# vi /etc/named.rfc1912.zones

修改图示两处位置,第一处为要设置的域名,第二处为区域数据配置文件名

aRwaDA.jpg
7、修改DNS区域数据配置文件

[root@localhost opt]# cd /var/named/
[root@localhost named]# cp -p named.localhost test.com.zone

aRw0Et.jpg
8、启动DNS服务

[root@localhost named]# systemctl start named

9、在客户机上进行查看DNS解析是否生效

nslookup www.test.com

aRwtjH.jpg
10、安装必须的依赖及编译环境

[root@localhost named]# yum -y install gcc gcc-c++ pcre pcre-devel perl expat-devel zlib-devel

11、进入http服务软件目录

[root@localhost named]# cd /opt/httpd-2.4.29/

配置http服务安装脚本:
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

12、配置完成后进行编译和安装

[root@localhost httpd-2.4.29]# make && make install

13、建立软连接

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc

14、进入站点目录,修改站点页面文件

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/htdocs/

将一张图片上传到站点目录中
修改站点页面文件,将图片添加进去:
<img src="cat.jpg"/>

aRwUud.jpg
15、在http配置文件中修改域名及监听地址

[root@server bin]# vim /etc/httpd.conf    ## 编辑配置文件

修两处51、52与198行:

Listen 192.168.50.134:80     ## 51行
#Listen 80       ## 52行
ServerName localhost:80     ## 198行

aRwdHI.jpg
aRwD4f.jpg
16、重启http服务

cd /usr/local/httpd/bin   ## 进入http命令存放目录
停止服务:
[root@localhost bin]# ./apachectl stop
启动服务:
[root@localhost bin]# ./apachectl start

17、在客户机中打开浏览器,输入192.168.50.134进行访问
aRwsC8.jpg
网站服务器已经部署好了,现在我们来部署盗链服务器

1、清空防火墙规则并关闭系统核心防护

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0

2、安装http服务

[root@localhost ~]# yum -y install httpd

3、编辑http服务配置文件

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 

修改51、52、198行中的监听地址、端口及域名信息,方法同上。(配置信息见下图)

aRwy8S.jpg
aRwcvQ.jpg

4、创建盗链站点主页

[root@daolian ~]# vim /var/www/html/index.html    ## 创建站点页面
写入如下内容:
<h1>dao lian wang</h1>
<img src="http://www.test.com/cat.jpg">

aRw6gg.png
5、将DNS服务器地址添加到盗链服务器上的resolv.conf中

[root@daolian ~]# echo "nameserver 192.168.50.134" > /etc/resolv.conf

6、重启http服务

[root@daolian ~]# systemctl restart httpd

7、再次访问192.168.50.136(盗链web),发现已经将server上的图片链接过来了
aRwRDs.md.png
下面在源站进行防盗链操作:

1、编辑源站服务器上的http服务配置文件,开启功能模块并设置防盗链规则

[root@server bin]# vim /etc/httpd.conf 

将156行的rewrite模块功能开启(前面的#去掉)
156 LoadModule rewrite_module modules/mod_rewrite.so

在<Directory "/usr/local/httpd/htdocs">标签内添加如下防盗链的规则:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://test.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://test.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.test.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.test.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.test.com/error.png

aRw2uj.md.png
2、进入站点目录,将一张error.jpg图片上传到该目录下,如果发生盗链情况则自动显示该图片

[root@server bin]# cd /usr/local/httpd/htdocs/

3、因为之前修改过配置文件,所以现在重启一下http服务

[root@server local]# cd /usr/local/httpd/bin/      ## 进入http命令存放目录
[root@server bin]# ./apachectl stop      ## 停止服务
[root@server bin]# ./apachectl start     ## 启动服务

4、回到客户机上,首先清除浏览器缓存,再重启浏览器,访问盗链网站192.168.50.136

显示如下页面,说明防盗链配置已经生效了
aRwWbn.png

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值