如何配置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 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.htmlIt 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地址
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.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抓包,可看到版本信息
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 //重启服务
5、验证结果:版本号被隐藏
以上是“如何配置Apache实现防盗链、隐藏版本信息”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
当前文章:如何配置Apache实现防盗链、隐藏版本信息
网站URL:http://pwwzsj.com/article/jdcodj.html