配置Apache实现防盗链功能

   日期:2020-08-09     浏览:105    评论:0    
核心提示:文章目录一、防盗链简介二、在Apache上配置防盗链功能一、防盗链简介防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用配置规则变量说明:%{HTTP_REFERER}:浏览header中额链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页!^:不以后面的字符串开头.$:以任意字符结尾NC:不区分大写R:强制跳

文章目录

    • 一、防盗链简介
    • 二、在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


6、修改DNS区域文件

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

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


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

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


8、启动DNS服务

[root@localhost named]# systemctl start named

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

nslookup www.test.com


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"/>


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行



16、重启http服务

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

17、在客户机中打开浏览器,输入192.168.50.134进行访问

网站服务器已经部署好了,现在我们来部署盗链服务器

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行中的监听地址、端口及域名信息,方法同上。(配置信息见下图)


4、创建盗链站点主页

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


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

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

6、重启http服务

[root@daolian ~]# systemctl stop firewalld

7、再次访问192.168.50.136(盗链web),发现已经将server上的图片链接过来了

下面在源站进行防盗链操作:

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


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

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

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服