假如某天你負責的網站服務器忽然流量暴增,先不要感到驚喜。有很大多是有其餘網站將本站的靜態資源進行了盜鏈,使不少的訪問壓力都轉接到本身服務器上,點擊量還不是本身的。php
做爲做爲網站的維護人員,要杜絕咱們服務器的靜態資源被其餘網站盜用。html
IP地址 | 域名 | 實驗用途 |
---|---|---|
192.168.116.148 | www.zhy.com | DNS服務器、源網站 |
192.168.116.128 | 無域名 | 盜鏈網站 |
一、安裝DNSjava
[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 "zhy.com" IN { type master; file "zhy.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 zhy.com.zone [root@localhost named]# vim zhy.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.116.148 #作以上格式的改動,注意最後的IP地址是填本身linux主機的IP地址,修改後按Esc,輸入:wq保存退出 [root@localhost named]# systemctl start named [root@localhost named]# systemctl stop firewalld.service [root@localhost named]# setenforce 0
二、手工編譯安裝Apache,創建源網站mysql
[root@localhost named]# mount.cifs //192.168.10.181/rpm /mnt //在宿主機中把有壓縮文件的文件夾共享出來 Password for root@//192.168.10.181/rpm: //此處直接回車 [root@localhost named]# cd /mnt [root@localhost mnt]# ls anaconda-ks.cfg error.png LAMP-php5.6.txt apr-1.6.2.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz apr-util-1.6.0.tar.gz initial-setup-ks.cfg php-5.6.11.tar.bz2 Discuz_X2.5_SC_UTF8.zip LAMP-C7.rar yuan.jpg [root@localhost mnt]# tar xjf httpd-2.4.29.tar.bz2 -C /opt/ [root@localhost mnt]# tar xzf apr-1.6.2.tar.gz -C /opt/ [root@localhost mnt]# tar xzf 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 && make install [root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf /ServerName,搜索到網址處,把#註釋去掉,內容改成以下內容 ServerName www.zhy.com:80 /Listen,搜索到監聽端口,把IPv6註釋加上,把IPv4監聽IP地址改成本身linux的地址 Listen 192.168.116.148: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="yuan.jpg"/> </body></html> //須要插入圖片,作以上更改,後按Esc,輸入:wq保存退出 [root@localhost bin]# cp /mnt/yuan.jpg /usr/local/httpd/htdocs/ //複製圖片到此目錄下 [root@localhost bin]# ./apachectl start [root@localhost bin]# netstat -atnp | grep "80" tcp 0 0 192.168.116.148:80 0.0.0.0:* LISTEN 40569/httpd
驗證:linux
打開一臺Windows虛擬機,將其做爲測試端,更改其DNS解析地址。c++
進入瀏覽器,輸入域名:www.zhy.comweb
經過右鍵點擊該圖,選擇屬性,就能夠看見這張圖的URL:http://www.zhy.com/yuan.jpgsql
創建盜鏈網站apache
此時咱們打開另外一臺Windows虛擬機,將其做爲盜鏈網站服務器。vim
控制面板—程序—程序和功能—打開和關閉windows功能—選擇Internet信息服務
安裝完成後,在C:\inetpub\wwwroot
中,新建網頁文件「index.html」
<html> <head></head> <body> <h1>test web</h1> <img src="http://www.zhy.com/yuan.jpg"/> </body> </html>
此時,在瀏覽器中輸入盜鏈網站IP地址:192.168.116.128
,即會出現跟源網站同樣的圖片,視爲盜鏈成功。
創建防盜鏈措施
[root@localhost bin]# vim ../conf/httpd.conf /rewrite,將此行註釋去掉 LoadModule rewrite_module modules/mod_rewrite.so Require all granted //在此行下插入如下規則 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://zhy.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://zhy.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.zhy.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.zhy.com/$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.zhy.com/error.png #修改後按Esc,輸入:wq保存退出
拷貝錯誤圖片
[root@localhost bin]# ls ../htdocs/ yuan.jpg index.html [root@localhost bin]# cp /aaa/LAMP/error.png ../htdocs/ [root@localhost bin]# ls ../htdocs/ error.png yuan.jpg index.html [root@localhost bin]# ./apachectl stop [root@localhost bin]# ./apachectl start
在測試Windows機上,輸入192.168.116.128
,由於咱們已作過防盜鏈措施,如今訪問盜鏈網站將會出現報錯的圖片。
基於上一個防盜鏈的配置不變,開始隱藏版本號的優化操做。
一、實驗前的驗證
進入Windows客戶端,使用「fiddler」抓包工具,查看網站頭部。
此時,抓包會顯示版本後綴,有心之人會針對該版本的漏洞對服務器進行攻撃する,這是很是不安全,所以須要對版本號進行隱藏。
二、開始進行優化
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf /default 搜索default,進行以下修改 Include conf/extra/httpd-default.conf //將開頭的#刪除 wq保存退出
開啓後將會在/usr/local/httpd/conf/extra/
中生成httpd-default.conf
配置文件用於優化。
[root@localhost bin]# vim /usr/local/httpd/conf/extra/httpd-default.conf /ServerTokens 搜索ServerTokens,進行以下修改 ServerTokens Prod //將Full改成Prod wq保存退出 [root@localhost bin]# ./apachectl stop [root@localhost bin]# ./apachectl start //重啓服務
三、結果驗證