如何配置Apache实现防盗链、隐藏版本信息

这篇文章主要为大家展示了“如何配置Apache实现防盗链、隐藏版本信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何配置Apache实现防盗链、隐藏版本信息”这篇文章吧。

站在用户的角度思考问题,与客户深入沟通,找到平桥网站设计与平桥网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册雅安服务器托管、企业邮箱。业务覆盖平桥地区。

一、配置Apache实现防盗链

1.防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源
2.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
3.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用

使用两台主机模拟盗链

两台主机配置与功能如下:
如何配置Apache实现防盗链、隐藏版本信息

盗链模拟步骤

1.两台主机配置测试页面
2.盗链网站的测试网页page盗 用源主机目录page/image的一个logo.jpg文件
3.在Windows中访问  http://a.test2.com/page.html,并用Fiddler抓包工具的查看效果图

检查Apache是否安装了mod_ rewrite模块

1./usr/ocal/apache/bin/apachectl -t -D DUMP_MODULES
2.如果输出中没有rewrite_module (static),, 则说明编译时没有安装
mod_rewrite模块

如果没有安装则要重新编译安装

1…/configure --enable-rewrite…
2.make &&make install

配置规则变量说明

1.%{HTTP_ REFERER}: 浏览header中的链接字段,存放一一个链
接的URL,代表是从哪个链接访问所需的网页
2.!^:不以后面的字符串开头
3…*$:以任意字符结尾
4.NC:不区分大写
5.R:强制跳转

规则匹配说明

1.RewriteEngine On:打开网页重写功能
2.RewriteCond:设置匹配规则
3.RewriteRule:设置跳转动作

规则匹配

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

配置操作演示

修改配置文件启用防盗链功能并设置规则:

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.html [R,NC]

配置Apache隐藏版本信息

1.Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
2.生产环境d要配置Apache隐藏版本信息
3.可使用Fiddler抓包工具分析
4.配置Apache隐藏版本信息
5.将主配置文件httpd.conf以下行注释去掉
(1)#Include conf/extra/httpd-default. conf
修改httpd-default.conf文件两个地方
(1)Server Tokens Full修改为Server Tokens Prod
(2)将ServersSignature On修改为ServersSignature Off
6.重启httpd服务,访问网站,抓包测试

配置实验

1、配置DNS域名解析文件

[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };     //括号内127.0.0.1改为any
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };       //括号内localhost改为any
#修改后按Esc,输入:wq保存退出

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
#在同格式下添加以上内容后按Esc,输入:wq保存退出

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves 
[root@localhost named]# cp -p named.localhost kgc.com.zone
[root@localhost named]# vim kgc.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.18.128
#做以上格式的改动,注意最后的IP地址是填自己linux主机的IP地址,修改后按Esc,输入:wq保存退出

[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforce 0

2、共享文件

[root@localhost named]# mkdir /abc
[root@localhost named]# mount.cifs  //192.168.124.17/LAMP-C7  /abc          
//在宿主机中把有压缩文件的文件夹共享出来
Password for root@//192.168.124.17/rpm:         //此处直接回车 
[root@localhost named]# cd /abc/LAMP/
[root@localhost LAMP]# ls       //此时可以看到挂载文件夹中的压缩文件
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  MySQL-5.6.26.tar.gz
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           php-5.6.11.tar.bz2
awstats-7.6.tar.gz     httpd-2.4.29.tar.bz2

[root@localhost LAMP]# tar   jxvf   httpd-2.4.29.tar.bz2   -C   /opt/
[root@localhost LAMP]# tar   zxvf   apr-1.6.2.tar.gz   -C   /opt/
[root@localhost LAMP]# tar   zxvf   apr-util-1.6.0.tar.gz   -C   /opt/
[root@localhost LAMP]# cd /opt/
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
[root@localhost opt]# mv apr-1.6.2/     httpd-2.4.29/srclib/apr     #srclib为数据库,可解析apr
[root@localhost opt]# mv apr-util-1.6.0/    httpd-2.4.29/srclib/apr-util
[root@localhost opt]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel expat-devel -y      #expat环境包不能忘
[root@localhost opt]#cd  httpd-2.4.29/    
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
[root@localhost httpd-2.4.29]#make
[root@localhost httpd-2.4.29]#make   inatall
[root@localhost httpd-2.4.29]# vim   /usr/local/httpd/conf/httpd.conf 
/ServerName,搜索到网址处,把#注释去掉,内容改为如下内容
ServerName www.kgc.com:80
/Listen,搜索到监听端口,把IPv6注释加上,把IPv4监听IP地址改为自己linux的地址
Listen 192.168.234.164:80
#Listen 80
#修改后按Esc,输入:wq保存退出  
[root@localhost httpd-2.4.29]# ln   -s   /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
//建立软连接
[root@localhost httpd-2.4.29]# cd   /usr/local/httpd/bin/
[root@localhost bin]# ls
ab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbm
apachectl     apxs          envvars      htcacheclean  htpasswd  logresolve
apr-1-config  checkgid      envvars-std  htdbm         httpd     rotatelogs
[root@localhost bin]# vim   /usr/local/httpd/htdocs/index.html  

It works!

//需要插入图片,做以上更改,后按Esc,输入:wq保存退出 [root@localhost bin]# cp   /aaa/LAMP/time.jpg    /usr/local/httpd/htdocs/ //复制图片到此目录下  [root@localhost bin]# ./apachectl start [root@localhost bin]# netstat -ntap | grep 80 tcp      0      0 192.168.18.128:80       0.0.0.0:*        LISTEN      93989/httpd

3、验证
win10-1作为盗链网站,win7-1作为测试客户端
在win7-1中,网络把DNS解析的地址改为自己linux系统的IP地址

如何配置Apache实现防盗链、隐藏版本信息
4、我们进入浏览器输入:  www.kgc.com,  此时可以浏览我们写好的网页:
如何配置Apache实现防盗链、隐藏版本信息
5、我们进入win7-1盗链客户端的浏览器输入www.kgc.com,此时也可以访问这个网页,此时我们想到用这个图片,右键点击图片,选择属性,可以看到这张图片的URL:http://www.kgc.com/time.jpg
如何配置Apache实现防盗链、隐藏版本信息
6、此时我们需要搭建盗链网站:
控制面板—程序—程序和功能—打开和关闭windows功能—选择Internet信息服务
如何配置Apache实现防盗链、隐藏版本信息
7、我们点击左下角的图标,在搜索栏搜索iis
如何配置Apache实现防盗链、隐藏版本信息
8、新建文档
如何配置Apache实现防盗链、隐藏版本信息
9、看文档扩展名
如何配置Apache实现防盗链、隐藏版本信息
如何配置Apache实现防盗链、隐藏版本信息
10、把网页文件拖至以下路径中:C:\inetpub\wwwroot

此时就可以用测试机进行访问了

1.此处需要注意的是两台主机都需要关闭防火墙,否则会无法访问网页
2.在盗链浏览器中国输入测试主机的IP地址:192.168.234.161,就可以访问到盗链的网站
3.此时图片相同说明盗链成功,test.web是盗链网站,盗用了kgc的官方网站的图片,别人在访问test.web的时候,这张图片被自动加载,但是流量依旧被导给了kgc的官方网站
以上是盗链的过程,但是有盗链的事情出现我们需要杜绝就要用到防盗链

[root@localhost bin]# vim ../conf/httpd.conf 
/rewrite,将此行注释去掉
LoadModule rewrite_module modules/mod_rewrite.so

Require all granted
//在此行下插入以下规则  
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/error.png  
#修改后按Esc,输入:wq保存退出

4、拷贝图片

[root@localhost bin]# ls ../htdocs/
ha.jpg  index.html
[root@localhost bin]# cp /aaa/LAMP/error.png ../htdocs/
[root@localhost bin]# ls ../htdocs/
error.png  ha.jpg  index.html
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start

5、验证防盗链:
我们使用测试机再次输入192.168.234.161,此时因为设置了防盗链所以会强制弹出我们的error图片,此时说明了防盗链设置成功!

二、隐藏版本信息

基于上一个防盗链的配置不变,开始隐藏版本号的优化操作。
实验步骤
1、实验前的验证
进入Windows客户端,使用fiddler抓包,可看到版本信息
如何配置Apache实现防盗链、隐藏版本信息
2、抓包会显示版本后缀,图谋不轨之人会针对该版本的漏洞对服务器进行attack,这是非常不安全,因此需要对版本号进行隐藏。
3、优化过程如下:

[root@localhost ~]# vim  /usr/local/httpd/conf/httpd.conf
/default  搜索default,进行如下修改
Include conf/extra/httpd-default.conf    //将开头的#删除
wq保存退出

4、开启后将会在/usr/local/httpd/conf/extra/中生成httpd-default.conf配置文件用于优化

[root@localhost bin]# vim /usr/local/httpd/conf/extra/httpd-default.conf 
/ServerTokens 搜索ServerTokens,进行如下修改
ServerTokens Prod               //将Full改为Prod
wq保存退出
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start     //重启服务

如何配置Apache实现防盗链、隐藏版本信息
5、验证结果:版本号被隐藏
如何配置Apache实现防盗链、隐藏版本信息

以上是“如何配置Apache实现防盗链、隐藏版本信息”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站栏目:如何配置Apache实现防盗链、隐藏版本信息
本文来源:http://hbruida.cn/article/jdcodj.html