伺服器羣集——apache防盜鏈與隱藏版本

2020-08-10 01:51:16

一、設定Apache實現防盜鏈

1.1 防盜鏈概述

1、防盜鏈是防止別人的網站程式碼裏面盜用我們自己伺服器上的圖片、檔案、視訊等相關資源
2、如果別人盜用網站的這些靜態資源,明顯的是會增大伺服器的頻寬壓力
3、作爲網站的維護人員,要杜絕伺服器的靜態資源被其他網站盜用

1.2 使用三臺主機模擬盜鏈

三臺主機設定與功能

IP地址 域名 用途
192.168.2.19 www.kxr.com 源主機
192.168.2.4 www.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} ttpt:/prcom/.*$ [NC]
  • RewriteCond %HTTP_ REFERER} htp/:/p.com [NC]
  • RewiteCond %{HTTP_ REFERER} htp:/wkw.om/.** [NC]
  • RewriteCond %{HTTP_ REFERER} !t://…om/$ [NC]
  • RewiteRule …gifjpg[sw)$S ht:p:/w.kw.w.m.erro…

二、設定Apache隱藏版本資訊

1、Apache的版本資訊,透露了-定的漏洞資訊,從而給網站帶來安全隱患
2、生產環境中要設定Apache隱藏版本資訊
3、設定Apache隱藏版本資訊
將主設定文t件ttpd. conl以下行註釋去掉

  • #Inlude cofetrattpd-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
開啓瀏覽器瀏覽頁面,沒有版本號了在这里插入图片描述

在这里插入图片描述