1. 程式人生 > >詳解Apache配置圖片防盜鏈以及隱藏版本信息

詳解Apache配置圖片防盜鏈以及隱藏版本信息

試圖 地址重寫 selinux modules 搭建DNS服務器 efault https director 添加圖片

簡介

防盜鏈就是防止別人的網站代碼裏面盜用服務器的圖片、文件、視頻等相關資源

實驗環境

  • 系統環境:CentOS6.5
  • 相關源碼包下載地址:百度雲下載 ??密碼:pko3
IP地址 域名 用途
192.168.100.103 www.bt.com 源主機
192.168.100.104 www.test.com 盜鏈網站

搭建步驟

一、準備工作

1、關閉防火墻及selinux

[root@Init5 ~]# chkconfig iptables off #隨開機關閉iptables
[root@Init5 ~]# vim /etc/sysconfig/selinux
技術分享圖片

[root@Init5 ~]# reboot #重啟生效

2、卸載以RPM方式安裝httpd相關包

[root@Init5 ~]# rpm -qa | grep "httpd"
技術分享圖片

[root@Init5 ~]# yum remove httpd #卸載httpd相關包

3、搭建DNS服務器

如果沒有搭建以上兩個服務的朋友,請查看我的其他帖子有詳細介紹
http://blog.51cto.com/11905606/2156944

二、搭建httpd服務

1、安裝gcc、gcc-c++、make、arp、arp-util、pcre等工具包

[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel #安裝C語言編譯器以及make

[root@localhost ~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/apr-1.4.6/
[root@localhost apr-1.4.6]# ./configure prefix=/usr/local/apr && make && make install

[root@localhost ~]# tar -zxvf apr-util-1.4.1.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/apr-util-1.4.1/
[root@localhost apr-util-1.4.1]# ./configure prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install

[root@localhost ~]# tar -zxvf pcre-8.10.tar.gz -C /usr/src #支持正則
[root@localhost ~]# cd /usr/src/pcre-8.10/
[root@localhost pcre-8.10]# ./configure prefix=/usr/local/pcre && make && make install

2、配置編譯安裝httpd

[root@Init5 ~]# tar zxvf httpd-2.4.2.tar.gz -C /usr/src/
[root@Init5 ~]# cd /usr/src/httpd-2.4.2/
[root@Init5 httpd-2.4.2]# ./configure \
--prefix=/usr/local/httpd \
--with-apr=/usr/local/apr \
--with-pcre=/usr/local/pcre \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

參數解析:

prefix:指定安裝目錄
enable-deflate:啟用mod_deflate模塊
enable-so:啟用動態加載模塊支持,需要什麽功能可以動態加載
enable-rewrite:啟用網頁地址重寫功能,實現偽靜態
enable-charset-lite:默認字符集
enable-cgid:啟用CGID

[root@Init5 httpd-2.4.2]# make && make install #編譯及編譯安裝

3、添加系統服務

[root@Init5 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@Init5 ~]# vim /etc/init.d/httpd

第2、3兩行添加以下參數:

# chkconfig:2345 85 15
# description:Apache is a World Wide Web server.

[root@Init5 init.d]# chmod +x /etc/init.d/httpd
[root@Init5 init.d]# chkconfig --add httpd

4、建立軟鏈接,方便管理

[root@Init5 ~]# mkdir -p /etc/httpd
[root@Init5 ~]# ln -s /usr/local/httpd/conf/ /etc/httpd/ #優化配置文件路徑
[root@Init5 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ #優化命令路徑

5、修改配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf

修改以下參數:

ServerName www.bt.com:80 #填寫完全主機名
Listen 192.168.100.103:80 #監聽本地IP

6、啟動httpd服務

[root@Init5 ~]# service httpd start
[root@Init5 ~]# netstat -anpt | grep ‘:80‘
技術分享圖片

三、模擬盜鏈

1、編輯源主機測試頁面

[root@Init5 ~]# cp logo.jpg error.jpg /usr/local/httpd/htdocs/ #將測試圖片拷貝到http站點目錄中
[root@Init5 ~]# cd /usr/local/httpd/htdocs/ #進入站點目錄
[root@Init5 htdocs]# vim index.html #編輯默認首頁

<html>
??<body>
????<h1>It works!</h1>
????<img src=‘logo.jpg‘ /> #首頁添加圖片
??</body>
</html>

2、訪問測試源主機測試頁面

技術分享圖片

技術分享圖片

3、測試盜鏈網站盜用源主機圖片

[root@www ~]# cd /usr/local/httpd/htdocs/ #進入盜鏈主機站點目錄
[root@www htdocs]# vim index.html #編輯默認首頁
<html>
??<body>
???? <h1>It works!</h1>
????<img src=‘http://www.bt.com/logo.jpg‘/> #註意使用的源主機的圖片地址
??</body>
</html>

4、訪問測盜鏈網站測試頁面

技術分享圖片

四、源主機配置防盜鏈

1、修改主配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf #編輯主配置文件
LoadModule rewrite_module modules/mod_rewrite.so #約146行,開啟重寫功能模塊

修改編輯以下參數約213行

DocumentRoot "/usr/local/httpd/htdocs"
<Directory "/usr/local/httpd/htdocs"> #定義的站點目錄
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
RewriteEngine On
RewriteCond %(HTTP_REFERER) !^http://bt.com/.*$[NC]
Rewritecond %(HTTP_REFERER) !^http://bt.com$[NC]
Rewritecond %(HTTP_REFERER) !^http://www.bt.com/.*$[NC]
Rewritecond %(HTTP_REFERER) !^http://www.bt.com$[NC]
Rewriterule .*.(gif|jpg|swf)$ http://www.bt.com/error.png
</Directory>

配置規則變量說明:

(圖片在哪個目錄下,就在哪個目錄做防盜鏈的專門設置)
%{HTTP_REFERER}:瀏覽header中的鏈接字段,存放一個鏈接的URL,代表是從哪個鏈接訪問所需的網頁
!^:不以後面的字符串開頭
.*$:以任意字符結尾
NC:不區分大寫
R:強制跳轉

規則匹配說明:

RewriteEngine On:打開網頁重寫功能
RewriteCond:設置匹配規則
RewriteRule:設置跳轉動作
規則匹配:如果相應變量的值匹配所設置的規則,則逐條往下處理;如果不匹配,則往後的規則不再匹配

2、重啟httpd服務

[root@Init5 ~]# httpd -t
技術分享圖片

[root@Init5 ~]# /etc/init.d/httpd restart # 重啟httpd服務

[root@Init5 ~]# apachectl -t -D DUMP_MODULES | grep ‘rewrite‘
技術分享圖片

3、測試盜鏈

技術分享圖片

五、配置隱藏版本信息

1、修改前抓包測試

技術分享圖片

2、修改主配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
Include conf/extra/httpd-default.conf #約477行,開啟默認配置

3、修改默認配置文件

[root@Init5 ~]# vim /etc/httpd/conf/extra/httpd-default.conf

ServerTokens Prod #約55行 默認參數是將完整信息全部顯示出來,將值改為Prod(簡短信息)
ServerSignature Off #約65行 默認就是Off,關閉服務器版本和正在提供服務的ServerName

4、重啟httpd服務

[root@Init5 ~]# /etc/init.d/httpd restart

5、再次抓包測試

技術分享圖片

詳解Apache配置圖片防盜鏈以及隱藏版本信息