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