配置Apache實現防盜鏈

配置Apache實現防盜鏈

1.防盜鏈就是防止別人的網站代碼裏面盜用服務器的圖片、文件、
視頻等相關資源
2.如果別人盜用網站的這些靜態資源,明顯的是會增大服
務器的帶寬壓力
3.所以作爲網站的維護人員,要杜絕我們服務器的靜態資
源被其他網站盜用

使用兩臺主機模擬盜鏈:

兩臺主機配置與功能如下
IP地址 域名 用途
192.168.2.19 www.kxr.com 源主機
192.168.2.4 www.dt.com 盜鏈網站

盜鏈模擬步驟:

1.兩臺主機配置測試頁面
2.盜鏈網站的測試網頁page盜 用源主機目錄page/image的一個logo.jpg文件
3.在Windows中訪問http://a.test2.com/page.html,並用Fiddler抓包工具的查看效果圖

檢查Apache是否安裝了mod_ rewrite模塊

1./usr/ocal/apache/bin/apachectl -t -D DUMP_MODULES
2.如果輸出中沒有rewrite_module (static),, 則說明編譯時沒有安裝
mod_rewrite模塊

如果沒有安裝則要重新編譯安裝

1…/configure --enable-rewrite…
2.make &&make install

配置規則變量說明:

1.%{HTTP_ REFERER}: 瀏覽header中的鏈接字段,存放一一個鏈
接的URL,代表是從哪個鏈接訪問所需的網頁
2.!^:不以後面的字符串開頭
3…*$:以任意字符結尾
4.NC:不區分大寫
5.R:強制跳轉

規則匹配說明:

1.RewriteEngine On:打開網頁重寫功能
2.RewriteCond:設置匹配規則
3.RewriteRule:設置跳轉動作

規則匹配:

1.如果相應變量的值匹配所設置的規則,則逐條往下處理;如果不匹配,則往後的規則不再匹配

配置操作演示

修改配置文件啓用防盜鏈功能並設置規則:

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]

配置Apache隱藏版本信息

1.Apache的版本信息,透露了一定的漏洞信息,從而給網站帶來安全隱患
2.生產環境d要配置Apache隱藏版本信息
3.可使用Fiddler抓包工具分析
4.配置Apache隱藏版本信息
5.將主配置文件httpd.conf以下行註釋去掉

#Include conf/extra/httpd-default. conf
修改httpd-default.conf文件兩個地方
Server Tokens Full修改爲Server Tokens Prod
將ServersSignature On修改爲ServersSignature Off

6.重啓httpd服務,訪問網站,抓包測試

——————————————————————————————————————————————

Demo:盜鏈及防盜鏈

[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

創建Apache:

[root@localhost named]# mkdir /aaa
[root@localhost named]# mount.cifs //192.168.0.103/rpm /aaa			
//在宿主機中把有壓縮文件的文件夾共享出來
Password for root@//192.168.0.103/rpm: 		//此處直接回車 
[root@localhost named]# cd /aaa/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
[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
[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.18.128: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="ha.jpg"/>
</body></html>
//需要插入圖片,做以上更改,後按Esc,輸入:wq保存退出
[root@localhost bin]# cp /aaa/LAMP/ha.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 

驗證:

win7-1作爲盜鏈網站,win7-2作爲測試客戶端

在win7-2中,網絡把DNS解析的地址改爲自己linux系統的IP地址

在這裏插入圖片描述

我們進入瀏覽器輸入:www.kgc.com,此時可以瀏覽我們寫好的網頁:

在這裏插入圖片描述

我們進入win7-1盜鏈客戶端的瀏覽器輸入www.kgc.com,此時也可以訪問這個網頁,此時我們想到用這個圖片,右鍵點擊圖片,選擇屬性,可以看到這張圖片的URL:http://www.kgc.com/ha.jpg

在這裏插入圖片描述

此時我們需要搭建網站:

控制面板—程序—程序和功能—打開和關閉windows功能—選擇Internet信息服務

在這裏插入圖片描述

我們點擊左下角的圖標,在搜索欄搜索iis

在這裏插入圖片描述

新建一個新的盜鏈網站,用文本文檔寫,格式如下:(其中的網址用的就是圖片的URL網址)

在這裏插入圖片描述

選擇計算機—點擊組織—選擇文件夾和搜索選項—點擊查看—高級設置中隱藏已知文件類型的擴展名去勾

在這裏插入圖片描述

將寫好的網頁文檔改爲index.html網頁文件

在這裏插入圖片描述

把網頁文件拖至以下路徑中:C:\inetpub\wwwroot

此時就可以用測試機進行訪問了:

1.此處需要注意的是兩臺win7都需要關閉防火牆,否則會無法訪問網頁

2.在win7-2瀏覽器中國輸入win7-1的IP地址:192.168.18.129,就可以訪問到盜鏈的網站

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.18.128,此時因爲設置了防盜鏈所以會強制彈出我們的error圖片,此時說明了防盜鏈設置成功!

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章