服务器群集——apache防盗链与隐藏版本

一、配置Apache实现防盗链

1.1 防盗链概述

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

1.2 使用三台主机模拟盗链

三台主机配置与功能

IP地址域名用途
192.168.2.19www.kxr.com源主机
192.168.2.4www.dt.com盗链网站
客户端Windows 10火狐浏览器

1.3 盗链模拟步骤

1.两台主机配置测试页面
2.盗链网站的测试网页, 盗用源主机网站目录下的一个logo.jpg文件
3.在Windows中访问验证

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

  • /usr/local/apache/bin/apachectl -t -D DUMP_ MODULES
  • 如果输出中没有rewrite_ module (static),则说明编译时没有安装mod_ rewrite模块
  • 如果没有安装,需要重新编译安装
  • ./configure -enable-rewrite…
  • make &&make install

1.5 设置规则变量说明

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

1.6规则匹配说明

  • RewiteEngine On:打开网页重写功能
  • RewriteCond:设置匹配规则
  • RewiteRule:设置跳转动作
    规则匹配
    如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配

1.7 配置操作演示

  • 修改配置文件启用防盗链功能并设置规则
  • RewriteEngine On
  • RewriteCond %(HTTP_ REFERER} !^http://kxr.com/.*$ [NC]
  • RewriteCond %HTTP_ REFERER} !^http://kxr.com$ [NC]
  • RewriteCond %{HTTP_ REFERER} !^http://www.kxr.com/.*$ [NC]
  • RewriteCond %{HTTP_ REFERER} !^http://www.kxr.com/$ [NC]
  • RewiteRule …(gif|jpg|swf)$ http://www.kxr.com/error.png

二、配置Apache隐藏版本信息

1、Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
2、生产环境中要配置Apache隐藏版本信息
3、配置Apache隐藏版本信息
将主配置文件httpd. conf以下行注释去掉

  • #Include conf/extra/httpd-defaut.conf
    修改httpd- default.conf文件
  • SeverTokens Full修改为SeverTokens Prod
    4、重启httpd服务,访问验证

三、实验

实验一:Apache实现防盗链

Apache防盗链
192.168.200.110是官网
192.168.200.40是盗取图片的网站
[root@promote ~]# hostnamectl set-hostname kgc
[root@promote ~]# su
[root@kgc ~]# 
[root@kgc ~]#  iptables -F
[root@kgc ~]#  setenforce 0
[root@kgc ~]#  yum install -y bind
[root@kgc ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };
        allow-query     { any; };
[root@promote ~]# vim /etc/named.rfc1912.zones 
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
[root@kgc ~]#  cd /var/named/
[root@kgc named]# cp -p named.localhost kgc.com.zone
[root@kgc named]# vim kgc.com.zone 
www IN  A       192.168.200.110
[root@kgc named]# systemctl start named
打开虚拟机中win10查看
C:\Users\zhouwei>nslookup www.kgc.com
服务器:  UnKnown
Address:  192.168.200.110
名称:    www.kgc.com
Address:  192.168.200.110
手工编译安装Apache
[root@kgc ~]# cd /opt/
[root@kgc opt]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.25.tar.gz  rh
[root@kgc opt]# tar zxvf apr-1.7.0.tar.gz 
[root@kgc opt]# tar zxvf apr-util-1.6.1.tar.gz 
[root@kgc opt]# tar zxvf httpd-2.4.25.tar.gz 
[root@kgc opt]# cp -p apr-1.7.0 httpd-2.4.25/srclib/apr
[root@kgc opt]# cp -p apr-util-1.6.1 httpd-2.4.25/srclib/apr-util
[root@kgc opt]# yum -y install gcc gcc-c++ pcre pcre-devel perl expat-devel zlib-devel
[root@kgc opt]# cd httpd-2.4.25/
[root@kgc httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@kgc httpd-2.4.25]# make && make install
[root@kgc httpd-2.4.25]# ln -s /usr/local/httpd/conf/httpd.conf /etc/     //设置软连接,快捷操作
[root@kgc httpd-2.4.25]# vim /etc/httpd.conf   //查看配置文件
[root@kgc httpd-2.4.25]# cd /usr/local/httpd/
[root@kgc httpd]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@kgc httpd]# cd htdocs/
[root@kgc htdocs]# ls
index.html
[root@kgc htdocs]# ls                               //使用xshell拖入图片
error.png  girl.jpg  index.html
[root@kgc htdocs]# vim index.html 
<html><body><h1>It works!</h1></body></html>
<img src="girl.jpg"/>
[root@kgc htdocs]# cd ..
[root@kgc httpd]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@kgc httpd]# vim conf/httpd.conf 
Listen 192.168.200.110:80
#Listen 80
ServerName www.kgc.com:80
[root@kgc httpd]# cd bin/
[root@kgc bin]# ./apachectl start     //开启Apache服务
[root@kgc bin]# netstat -antp | grep httpd     //查看端口是否开启
tcp6       0      0 :::80                   :::*                    LISTEN      124497/httpd  
进入虚拟机win10,输入www.kgc.com,跳转出来的网站是girl图片
#
使用另一台服务器192.168.200.40做盗链网站
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.200.40:80
#Listen 80
ServerName www.test.com:80
[root@localhost ~]# cd /var/www/html/      //创建首页
[root@localhost html]# ls
[root@localhost html]# vim index.html
<h1>this is test web</h1>
<img src="http://www.kgc.com/girl.jpg"/>        //出现域名一定要解析,不然没用,可换成IP地址
[root@localhost html]# echo "nameserver 192.168.200.110" > /etc/resolv.conf   //配置DNS解析服务器,找110主机解析地址
[root@localhost html]# systemctl start httpd
[root@localhost html]# netstat -ntap | grep httpd
tcp        0      0 192.168.200.40:80       0.0.0.0:*               LISTEN      69354/httpd 
在虚拟机上输入192.168.200.40,跳转出的图片为girl.jpg
[root@kgc httpd]# cd /usr/local/httpd/conf/
[root@kgc conf]# vim httpd.conf 
LoadModule rewrite_module modules/mod_rewrite.so   //开启rewrite模块
开启防盗链
249     RewriteEngine On
250     RewriteCond %{HTTP_REFERER} !^http://kgc.com/.*$ [NC]
251     RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
252     RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]
253     RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
254     RewriteRule .*\.(gif|jpg|swf)$ http://www.kgc.com/error.png
[root@kgc conf]# cd ..
[root@kgc httpd]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@kgc httpd]# cd bin/
[root@kgc bin]# ./apachectl stop
[root@kgc bin]# ./apachectl start



实验二:隐藏版本号

打开监控软件,然后浏览页面,可以查看到版本号
[root@kgc bin]# cd …
[root@kgc httpd]# vim conf/httpd.conf
Include conf/extra/httpd-default.conf 开启功能
[root@kgc httpd]# cd conf/extra/
[root@kgc extra]# vim httpd-default.conf
ServerTokens Prod
[root@kgc extra]# cd …
[root@kgc conf]# cd …
[root@kgc httpd]# cd bin/
[root@kgc bin]# ./apachectl stop
[root@kgc bin]# ./apachectl start
打开浏览器浏览页面,没有版本号了在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值