取消文件服务器防盗链,配置Apache实现防盗链、隐藏版本信息(防盗秘笈)

一、配置Apache实现防盗链

1.防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源

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

3.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用

使用两台主机模拟盗链

两台主机配置与功能如下:

75aacd04a877ab152138e73b7dde753d.png

盗链模拟步骤

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

time.jpg

//需要插入图片,做以上更改,后按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地址

866a4c9ef956902258501595c1c62dc8.png

4、我们进入浏览器输入: www.kgc.com, 此时可以浏览我们写好的网页:

d398cdc3e105a41524f3c55f5d80ce22.png

5、我们进入win7-1盗链客户端的浏览器输入www.kgc.com,此时也可以访问这个网页,此时我们想到用这个图片,右键点击图片,选择属性,可以看到这张图片的URL:http://www.kgc.com/time.jpg

440b0dd3d3a4d63158ef3d1452a745dc.png

6、此时我们需要搭建盗链网站:

控制面板—程序—程序和功能—打开和关闭windows功能—选择Internet信息服务

b923ea50e204980581c691a1ce925932.png

7、我们点击左下角的图标,在搜索栏搜索iis

164bfb3676bb62c1bef5a462c71eaaf0.png

8、新建文档

fa2da23f74453b0f28a7adc9f42e0bf5.png

9、看文档扩展名

38022764837021a5e2ddb19104968f02.png

03589f2ae1883b71c18a98b811aa76a3.png

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抓包,可看到版本信息

d42077a1017b3ff074cff05ad2f48b6c.png

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 //重启服务

924050193453733a8c9630b5bf57b599.png

5、验证结果:版本号被隐藏

e14eedf641ca67ac39b884de64d90de2.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值