千家信息网

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

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要为大家展示了"如何配置Apache实现防盗链、隐藏版本信息",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何配置Apache实现防盗链、隐藏版
千家信息网最后更新 2024年11月22日如何配置Apache实现防盗链、隐藏版本信息

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

一、配置Apache实现防盗链

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

使用两台主机模拟盗链

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

盗链模拟步骤

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 OnRewriteCond %{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.confoptions {        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.zoneszone "kgc.com" IN {        type master;        file "kgc.com.zone";        allow-update { none; };};#在同格式下添加以上内容后按Esc,输入:wq保存退出[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata  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.1www 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.gzapr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           php-5.6.11.tar.bz2awstats-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]# lsapr-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]# lsab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbmapachectl     apxs          envvars      htcacheclean  htpasswd  logresolveapr-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 80tcp 0 0 192.168.18.128:80 0.0.0.0:* LISTEN 93989/httpd

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


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

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

6、此时我们需要搭建盗链网站:
控制面板-程序-程序和功能-打开和关闭windows功能-选择Internet信息服务

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

8、新建文档

9、看文档扩展名


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.soRequire all granted//在此行下插入以下规则  RewriteEngine OnRewriteCond %{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抓包,可看到版本信息

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改为Prodwq保存退出[root@localhost bin]# ./apachectl stop[root@localhost bin]# ./apachectl start     //重启服务


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

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

0