1.防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源
2.若是别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
3.因此做为网站的维护人员,要杜绝咱们服务器的静态资源被其余网站盗用php
两台主机配置与功能以下:html
1.两台主机配置测试页面
2.盗链网站的测试网页page盗 用源主机目录page/image的一个logo.jpg文件
3.在Windows中访问 http://a.test2.com/page.html,并用Fiddler抓包工具的查看效果图mysql
1./usr/ocal/apache/bin/apachectl -t -D DUMP_MODULES
2.若是输出中没有rewrite_module (static),, 则说明编译时没有安装
mod_rewrite模块linux
1…/configure --enable-rewrite…
2.make &&make installc++
1.%{HTTP_ REFERER}: 浏览header中的连接字段,存放一一个链
接的URL,表明是从哪一个连接访问所需的网页
2.!^:不之后面的字符串开头
3…*$:以任意字符结尾
4.NC:不区分大写
5.R:强制跳转web
1.RewriteEngine On:打开网页重写功能
2.RewriteCond:设置匹配规则
3.RewriteRule:设置跳转动做sql
1.若是相应变量的值匹配所设置的规则,则逐条往下处理;若是不匹配,则日后的规则再也不匹配数据库
修改配置文件启用防盗链功能并设置规则:apache
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]
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服务,访问网站,抓包测试vim
一、配置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
二、共享文件
[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 <html><body><h1>It works!</h1> <img src="time.jpg"/> </body></html> //须要插入图片,作以上更改,后按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
三、验证
win10-1做为盗链网站,win7-1做为测试客户端
在win7-1中,网络把DNS解析的地址改成本身linux系统的IP地址
四、咱们进入浏览器输入: www.kgc.com, 此时能够浏览咱们写好的网页:
五、咱们进入win7-1盗链客户端的浏览器输入www.kgc.com,此时也能够访问这个网页,此时咱们想到用这个图片,右键点击图片,选择属性,能够看到这张图片的URL:http://www.kgc.com/time.jpg
六、此时咱们须要搭建盗链网站:
控制面板—程序—程序和功能—打开和关闭windows功能—选择Internet信息服务
七、咱们点击左下角的图标,在搜索栏搜索iis
八、新建文档
九、看文档扩展名
十、把网页文件拖至如下路径中: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保存退出
四、拷贝图片
[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
五、验证防盗链:
咱们使用测试机再次输入192.168.234.161,此时由于设置了防盗链因此会强制弹出咱们的error图片,此时说明了防盗链设置成功!
基于上一个防盗链的配置不变,开始隐藏版本号的优化操做。
实验步骤
一、实验前的验证
进入Windows客户端,使用fiddler抓包,可看到版本信息
二、抓包会显示版本后缀,图谋不轨之人会针对该版本的漏洞对服务器进行attack,这是很是不安全,所以须要对版本号进行隐藏。
三、优化过程以下:
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf /default 搜索default,进行以下修改 Include conf/extra/httpd-default.conf //将开头的#删除 wq保存退出
四、开启后将会在/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 //重启服务
五、验证结果:版本号被隐藏