centos 7.6 —— Apache 网页防盗链和隐藏Apache版本号

centos 7.6 —— Apache 网页防盗链和隐藏Apache版本号

一、Apache 网页防盗链

使用三台主机模拟盗链

三台主机配置与功能

在这里插入图片描述

盗链模拟步骤

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

配置规则变量说明

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

规则匹配说明

  • RewriteEngine On:打开网页重写功能
  • RewriteCond:设置匹配规则
  • RewriteRule:设置跳转动作

规则匹配

  • 如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配

防盗链——服务端配置

(1)手工编译Apache

准备阶段

安装包:apr-1.7.0.tar.gz 、apr-util-1.6.1.tar.gz 、httpd-2.4.25.tar.gz

实验步骤

[root@localhost opt]# tar zxvf apr-1.7.0.tar.gz -C /opt
[root@localhost opt]# tar zxvf apr-util-1.6.1.tar.gz -C /opt
[root@localhost opt]# tar zxvf httpd-2.4.25.tar.gz -C /opt
[root@localhost opt]# mv apr-1.7.0/ httpd-2.4.25/srclib/apr
[root@localhost opt]# mv apr-util-1.6.1/ httpd-2.4.25/srclib/apr-util               
[root@localhost opt]#  yum -y install gcc gcc-c++ make pcre-devel expat-devel perl   ==//安装gcc的编译和pcre 包是per语言   pcre-devel :正则表达式  ==
[root@localhost opt]# yum -y install zlib-devel  //压缩工具
[root@localhost httpd-2.4.25]#  ./configure \
>--prefix=/usr/local/httpd \
>--enable-so--enable-rewrite\      //so 开启核心功能模块和web 服务,rewrite 开启重写功能(防盗链使用)
>--enable-charset-lite\    //开启字符集
>--enable-cgi
>--enable-deflate   //开启网页压缩
[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]#make install
[root@localhost httpd-2.4.25]# cd /usr/local/       //到安装路径
[root@localhost local]# cd httpd/
[root@localhost httpd]# cd conf/
[root@promote bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@promote bin]# ls /etc/init.d
functions  httpd  netconsole  network  README
[root@promote bin]# vim /etc/init.d
[root@promote bin]# vim /etc/init.d/httpd 

#!/bin/sh
#chkconfig: 35 85 21 //35级别自动运行  第85个启动  第21个关闭
#description:Apache is a World Wide Web server

[root@promote local]# chkconfig --add httpd    //将httpd加入到service 管理器
[root@promote /]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf   //将http的配置文件做软链接到/etc/httpd.conf

[root@promote local]# cd /usr/local/httpd/conf

[root@promote conf]# vim httpd.conf 

Listen 192.168.75.134:80  //修改Apache服务器的地址
#Listen 80
#ServerName www.kgc.com:80  //设置域名的地址

[root@promote /]# ln -s /usr/local/httpd//bin/* /usr/local/bin  //将http的数据文件软链接到/usr/local/bin目录中
[root@promote /]# ls /usr/local/httpd//bin
ab            checkgid     htcacheclean  httxt2dbm
apachectl     dbmmanage    htdbm         logresolve
apr-1-config  envvars      htdigest      rotatelogs
apu-1-config  envvars-std  htpasswd
apxs          fcgistarter  httpd
[root@promote /]# service httpd start
httpd (pid 66785) already running

[root@promote /]# httpd -t  //检查语法
Syntax OK
[root@promote /]# netstat -ntap | grep 80
tcp        0      0 192.168.75.134:80       0.0.0.0:*               LISTEN      66785/httpd         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8031/dnsmasq        
[root@promote /]# 
[root@promote /]# iptables -F
[root@promote /]# setenforce 0
[root@promote /]# 

(2)虚拟机win 10验证

在这里插入图片描述

(3)配置dns 服务

 [root@localhost /]# yum -y install bind
 [root@localhost /]#  vim /etc/named.conf 
     listen-on port 53 { any; };
     allow-query     { any; };
   [root@localhost /]#vim /etc/named.rfc1912.zones 
        zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };

  [root@localhost /]# cd /var/named/
  [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.75.134

  [root@localhost named]#systemctl restart named

(3)虚拟机win10 验证

在这里插入图片描述

(4)主服务端 防盗链配置


[root@localhost named]# vim /etc/httpd.conf 


LoadModule rewrite_module modules/mod_rewrite.so   //去掉注释

****************添加如下命令*************************
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
[root@localhost named]#/usr/local/httpd/htdocs
[root@localhost htdocs]# ll
总用量 100
-rw-r--r--. 1 root root 29221 86 15:26 error.png    ///将需要的图片拖至当前网页的目录下
-rw-r--r--. 1 root root    89 86 15:39 index.html
-rw-r--r--. 1 root root 64598 85 22:12 timg.jpg
[root@localhost htdocs]# vim index.html 

<html><body><h1>ke la  la   !!!!!!!</h1></body></html>
<img src="timg.jpg"width=500px/>



(4)虚拟机win10 验证域名访问

在这里插入图片描述

(5) 盗链服务端配置

1. yum 安装Apache服务

[root@localhost /]# yum -y install httpd
[root@localhost /]#cd /etc/httpd/conf
[root@promote conf]# vim httpd.conf
[root@promote conf]# systemctl restart httpd
[root@promote conf]# iptables -F
[root@promote conf]# setenforce 0
setenforce: SELinux is disabled
[root@promote conf]# cd /var/www/html/
[root@promote html]# ll
总用量 0
[root@promote html]# vim index.html
[root@promote html]# systemctl restart httpd
[root@promote html]# vim index.html
[root@promote html]# systemctl restart httpd
[root@promote html]# vim index.html

<h1> web   !!!!!!!!! </h1>
<img src="http://www.kgc.com/timg.jpg" width=500px/>


(6)主服务端未设置防盗链时

- 网站可以盗链主服务端的网页图片

在这里插入图片描述

(7)主服务端——设置防盗链后

虚拟机win10 验证

注意事项:虚拟机win10 在验证时,需要多次清除浏览器的缓存,要不然无法实时验证。因为浏览器会有缓存之前的信息。就不能出现设置之后的效果。

在这里插入图片描述

排错小结

故障原因

主服务端Apache主配置文件httpd.conf 的防盗链语句

RewriteRule .*.(gif|jpg|swf)$http://www.kgc.com/error.png

注意: error图片的格式不能属于过滤的图片的格式(jpg 、 gif 、 swf )

所以:这里的error图片的格式必须是png 格式才能访问网页,图片才能正常显

示否则网页无法显示图片。

二、隐藏Apache版本号

(1)修改Apache主配置文件httpd.conf

[root@localhost conf]#vim /etc/httpd.conf

Include conf/extra/httpd-default.conf   //去掉注释

[root@localhost conf]#cd /usr/local/httpd/conf/extra
[root@localhost extra]# vim httpd-default.conf 
ServerTokens Prod   //将这条命令Full 改为 Prod
[root@localhost extra]# systemctl restart httpd


(2)未隐藏Apache版本号

在这里插入图片描述

(3)虚拟机win10 验证Apache隐藏版本号

在这里插入图片描述
注意:虚拟机win10 浏览器验证时 ,需要多次清除缓存。

猜你喜欢

转载自blog.csdn.net/weixin_42099301/article/details/107841780