一、防盗链:
(1)防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源;
(2)如果别人盗用网站的这些静态资源,明细的是会增大服务器的带宽压力;
(3)所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用
HTTP标准协议中有专门的Referer 字段记录,它的作用如下:
(1)可以追溯上一个入站地址是什么;
(2)对于资源文件,可以追踪到包含显示它的网页地址是什么,因此所有防盗链方法都是基于Referer字段。
1、配置规则变量说明:
2、规则匹配说明:
- RewriteEngine On :打开网页重写功能;
- RewriteCond : 设置匹配规则;
- RewriteRule :设置跳转动作
3、规则匹配:如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配。
二、配置实例:
(1)第一步:准备环境:
- 一台linux虚拟机(192.168.220.129)
- 一台win7(192.168.220.139)虚拟机作为盗链网站;win10(192.168.220.132)作为测试客户端
IP地址 | 域名 |
---|---|
192.168.220.129 | www.kgc.com |
1、安装DNS服务,命令:yum install bind -y
2、配置DNS配置文件,加入映射IP地址与域名
3、在 httpd-2.4.29路径下,重新编译Apache,参数中加入 mod_rewrite 模块内容。
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \ //加入 mod_rewrite 模块
--enable-charset-lite \
--enable-cgi
4、make && make install
(2)第二步:配置mod_rewrite 模块
文件位置:/usr/local/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so //启用 mod_rewrite 模块
ServerName www.kgc.com:80 //开启域名
Listen 192.168.220.129:80 //开启监听地址和端口
#Listen 80 //取消ipv6监听端口
1、在 Apache首页中插入一张图片
2、在 /usr/local/httpd/bin/ 目录下,开启服务
./apachectl start
(3)第三步:检测客户机上是否能够访问
两台客户机要指定DNS服务器ip地址:192.168.220.129
(4)第四步:配置盗链网站
1、复制图片路径(右击选择图片,选择属性):http://192.168.220.129/xiongmao.jpg
2、搭建网站:
控制面板 → 系统 → 程序与功能 → 打开或关闭windows 功能 → Indexing Service
写一个txt文档,内容如下:
修改txt文档扩展名为 index.html
把这个网页放到 C:\inetpub\wwwroot 中
(5)第五步:此时,在win10上访问win7主机(192.168.220.139)刚刚做的网页,就会出现和官网一模一样的图片,这样就盗链成功了。
(6)设置防盗链:
1、先将防盗链照片复制到 /htdocs 中
2、需要修改Apache的配置文件 http.conf,配置mod_rewrite 模块:
在 <Directory “/usr/local/httpd/htdocs”> 板块中,添加以下代码:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://kgc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.kgc.com/kakaxi.png
3、在 /usr/local/httpd/bin/ 目录下,再重新关闭开启服务
./apachectl stop //关闭服务
./apachectl start //开启服务
(7)为了展示实验效果,我们在开启一台windows虚拟机(指定linux虚拟机的DNS服务器地址),这样一台访问官网,一台访问盗链网站,就有对比了。
1、win10-2 先访问官网 www.kgc.com
2、由于我们已经做了防盗链设置,现在我们在win10-2访问盗链网站,观察是否还会出现和官网一样的图片
三、隐藏版本信息:
(1)配置Apache隐藏版本信息:
Apache的版本信息,透露出了一定的漏洞信息,在现网中如果不隐藏版本信息,外界知道Apache版本,会根据对应版本的漏洞进行攻击,所以这体现了隐藏版本信息的重要性。
1、将主配置文件 httpd.conf 以下行注释去掉
#Include conf/extra/httpd-default.conf
2、修改 httpddefault.conf 文件两个地方
- ServerTokens Full 修改为 ServerTokens Prod
- 将 ServerSignature On 修改为ServerSignature Off
(2)重启httpd 服务,访问网站,可以用 Fiddler工具 进行抓包测试
(3)操作示例:
不隐藏版本信息,用 fiddler工具抓包,可以看到版本信息,如下:
2、隐藏步骤:
第一步:主配置文件 httpd.conf
Include conf/extra/httpd-default.conf //开启httpd-default
第二步:httpddefault.conf 文件
第三步:重启一下服务
第四步:在用fiddler 抓包工具测试一下,观察是否已经隐藏版本信息了