Apache实现盗链与防盗链与隐藏版本信息


前言

mark

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。

一:盗链实操步骤

提供网站服务的主机我做了DNS解析,是使用域名www.abc.com进行访问的

客户机IP地址:20.0.0.41 盗链机IP地址:20.0.0.42

服务端配置

1.1:配置DNS服务

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
#配置DNS
[root@localhost ~]# yum -y install bind
  • 配置DNS主配置文件

options {
    
    
        listen-on port 53 {
    
     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; };
  • 配置区域
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "ab.com" IN {
    
            type master;
        file "ab.com.zone";
        allow-update {
    
     none; };
};      
  • 配置区域数据
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost ab.com.zone
[root@localhost named]# vim ab.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       20.0.0.41
#重启服务
[root@localhost named]# systemctl restart named

1.2:win 10 测试dns解析

mark:

1.3:首先需要手工编译安装Apache

  • 将三个软件包解压到空文件夹/opt中
[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz 
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2
#将解压后的/apr-1.4.6和/apr-util-1.4.1两个文件夹复制到/httpd-2.4.2/srclib/中分别命名为apr和apr-util,apr-1.4.6和apr-util-1.4.1在一定作用上可以缓解并发连接数进程
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
#用yum安装需要的基本环境软件包,包括:gcc、gcc-c++、make、pcre、pcre-devel 五个包(pcre :一个Perl库,支持正则表达式)
[root@localhost opt]# yum install gcc gcc-c++ pcre pcre-devel perl expat-devel zlib-devel
在/opt/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                                      #开启通用网关接口

1.4:make编译安装make install

[root@localhost httpd-2.4.29]# make		'//编译'
...省略内容
[root@localhost httpd-2.4.29]# make install  '//安装'
...省略内容

1.5:编辑配置文件

  • 这里方便管理可以建立软连接,直接编辑链接文件
[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/
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
#复制一张图片进来
[root@localhost htdocs]# rz -E
rz waiting to receive.
[root@localhost htdocs]# ls
1389753641370.jpg  index.html
[root@localhost htdocs]# vim index.html
#编写首页信息
<html><body><h1>It works!</h1></body></html>
<img src="1389753641370.jpg"/>

#设置监听地址  输入本机IP地址,表示监听本机IP地址80端口 下面加#注释 是监听IPv6
Listen 20.0.0.41:80
#Listen 80
#设置域名
ServerName www.shuai.com:80
##启动服务
[root@localhost htdocs]# cd ..
[root@localhost httpd]# cd bin/
#关闭服务在开启
[root@localhost bin]# ./apachectl stop
#关闭服务时端口没有开启
[root@localhost bin]# netstat -ntap | grep httpd
#开启端口
[root@localhost bin]# ./apachectl start
[root@localhost bin]# netstat -ntap | grep httpd
tcp        0      0 20.0.0.41:80            0.0.0.0:*               LISTEN      121958/httpd        

1.6:客户机测试正常访问自己主主页

在这里插入图片描述

二:盗链主机设置

2.1:准备环境

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install httpd -y

2.2:修改监听地址跟域名


#监听地址
Listen 20.0.0.42:80
#Listen 80
#设置域名
ServerName www.shuai.com:80

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vim index.html 

<h1>Hello<h1>
<img src="http://www.ab.com/1389753641370.jpg"/>

[root@localhost html]# echo "nameserver 20.0.0.41" > /etc/resolv.conf

2.3:重启服务

[root@localhost html]# systemctl start httpd.service
[root@localhost html]# netstat -ntap | grep httpd
tcp        0      0 20.0.0.42:80            0.0.0.0:*               LISTEN      21810/httpd 

2.4:进行盗链测试

mark

三:正常主机开启防盗链功能

Apache防盗链的实现方法,可以用rewrite实现
确保开启rewrite module配置
#/搜索rewrit 开启rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so
##DocumenRoot是站点目录一会去配置
DocumentRoot "/usr/local/httpd/htdocs"
先去末行插入下面内容

 RewriteEngine On
    RewriteCond %{
    
    HTTP_REFERER} !^http://ab.com/.*$ [NC]
    RewriteCond %{
    
    HTTP_REFERER} !^http://ab.com$ [NC]
    RewriteCond %{
    
    HTTP_REFERER} !^http://www.ab.com/.*$ [NC]
    RewriteCond %{
    
    HTTP_REFERER} !^http://www.ab.com$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.ab.com/MZY7BWZN(6~~KTS5MILYXAX.png

mark

3.1:配置站点信息

[root@localhost bin]# cd ..
[root@localhost httpd]# pwd
/usr/local/httpd
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
1389753641370.jpg  index.html
#复制一个图片进来
[root@localhost htdocs]# rz -E
rz waiting to receive.
[root@localhost htdocs]# ls
1389753641370.jpg  index.html  MZY7BWZN(6~~KTS5MILYXAX.png

[root@localhost htdocs]# cd ..
[root@localhost httpd]# cd bin/
#服务关闭在开启
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start

3.2:查看是否可以盗链

mark

防盗链设置成功

四:隐藏版本信息

攻击者往往是先通过扫描软件的版本信息然后进行针对性的攻击,在apache安装完成应该第一时间隐藏它的版本信息

mark

4.1:配置Apache隐藏版本信息

  • Apache的版本信息,透露了-定的漏洞信息,从而给
    网站带来安全隐患
  • 生产环境中要配置Apache隐藏版本信息

4.2:修改版本信息

  • 将主配置文件httpd.conf以下行注释去掉
[root@localhost conf]# pwd
/usr/local/httpd/conf
[root@localhost conf]# vim httpd.conf
#/搜索Include conf   取消注释
Include conf/extra/httpd-default.conf

[root@localhost conf]# cd extra/
[root@localhost extra]# ls
httpd-autoindex.conf  httpd-mpm.conf
httpd-dav.conf        httpd-multilang-errordoc.conf
httpd-default.conf    httpd-ssl.conf
httpd-info.conf       httpd-userdir.conf
httpd-languages.conf  httpd-vhosts.conf
httpd-manual.conf     proxy-html.conf
[root@localhost extra]# vim httpd-default.conf 
#/Token搜索 修改为
ServerTokens Prod       #仅软件名称
##重启服务
[root@localhost extra]# cd ..
[root@localhost conf]# cd ..
[root@localhost httpd]# cd bin/
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start

4.3:访问验证

在这里插入图片描述

业精于勤,荒于嬉;行成于思,而毁于随

猜你喜欢

转载自blog.csdn.net/weixin_47151643/article/details/107973458
今日推荐