Apache防盜鏈
- 防盜鏈就是防止別人的網站代碼裏面盜用服務器的圖片,文件,視頻等相關資源
- 若是別人盜用網站的這些靜態資源,明顯的是會增大服務器的帶寬壓力
- 全部做爲網站的維護人員,是要杜絕咱們服務器的靜態資源被其餘網站盜用
配置規則變量說明
* %{HTTP_REFERER}:瀏覽header中的連接字段,存放一個連接的URL,
表明是從哪一個連接訪問所需的網頁
* !^:不之後面的字符串開頭
* .*$:以任意字符結尾
* NC:不區分大寫
* R:強制跳轉
規則匹配說明
RewriteEngineOn:打開網頁重寫功能
RewriteCond:設置匹配規則
RewriteRule:設置跳轉動做
規則匹配
若是相應變量的值匹配所設置的規則,則逐條往下處理;若是不匹配,則日後的規則再也不匹配
配置操做演示
修改配置文件啓用防盜鏈功能並設置規則:
RewriteEngineOn
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]
環境
一臺Linux服務器(192.168.13.128)
一臺win10測試機
一臺win7盜鏈機(192.168.13.135)
1,yum安裝DNS服務,並配置配置文件
[root@localhost ~]# yum install bind -y ##安裝bind服務器
[root@localhost ~]# vim /etc/named.conf ##配置主配置文件信息
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 "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -p named.localhost kgc.com.zone ##複製模板爲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.13.128 ##解析地址爲本機地址
[root@localhost named]# systemctl start named ##啓動DNS解析服務
[root@localhost named]# systemctl stop firewalld.service ##關閉防火牆
[root@localhost named]# setenforce 0
2,遠程共享掛載到Linux上
1)在Windows上將LAMP所需壓縮軟件包共享出來(此處若有問題請看以前的博客相關文章)
2)在Linux上使用遠程共享獲取文件並掛載到/mnt目錄下
root@localhost ~]# smbclient -L //192.168.100.3/
Sharename Type Comment
--------- ---- -------
LAMP-C7 Disk
[root@localhost ~]# mount.cifs //192.168.100.3/LAMP-C7 /mnt
##遠程掛載軟件包到/mnt目錄
3,手工編譯安裝Apache
1)將源碼包解壓到/opt目錄下
[root@localhost mnt]# cd /mnt ##切換到/mnt目錄下
[root@localhost mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/ ##解壓源碼包到/opt下
...
[root@localhost mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
....
[root@localhost mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
...
[root@localhost mnt]# cd /opt //進入/opt目錄
[root@localhost opt]# ls //查看解壓的文件
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh
2)將apr組件包移動到http中並安裝編譯工具
[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 -y install \
gcc \ //c語言
gcc-c++ \ //c++語言
make \ //編譯工具
pcre-devel \ //pcre語言工具
expat-devel \ //識別標籤性語言工具
perl \
pcre \
zlib-devel //數據壓縮用的函式庫
3)配置安裝目錄及各類模塊
[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]#./configure \ //配置
--prefix=/usr/local/httpd \
--enable-deflate \ //配置壓縮模塊
--enable-so \ //apache核心模塊開啓
--enable-rewrite \ //開啓重寫功能,防盜鏈
--enable-charset-lite \ //支持字符集,簡體中文
--enable-cgi //通用網關接口
...
4)編譯和安裝
[root@localhost httpd-2.4.29]# make //生成可執行的二進制文件
...
[root@localhost httpd-2.4.29]# make install //複製二進制文件到系統,配置應用環境
...
5)配置http主配置文件
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
[root@localhost httpd]# cd conf/ ##切換到http主配置文件中
[root@localhost conf]# vim /etc/httpd.conf ##配置主配置文件
Listen 192.168.13.128:80 ##設置監聽地址
#Listen 80
ServerName www.kgc.com:80 ##設置域名
[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf ##方便管理建立軟鏈接
4,編輯網頁
1)切換到你的共享掛載點,將圖片複製到站點中
[root@localhost conf]# cd /mnt ##切換到掛載點
[root@localhost mnt]# cp kali.jpg /usr/local/httpd/htdocs/ ##將圖片複製到站點中
[root@localhost mnt]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls ##查看圖片複製成功
index.html kali.jpg
2)編輯站點的首頁內容,並啓動
[root@localhost ~]# cd /usr/local/httpd/
[root@localhost httpd]# cd htdocs/ ##切換到站點
[root@localhost htdocs]# ls
index.html kali.jpg
[root@localhost htdocs]# vim index.html ##編輯網頁內容,將圖片加入到網頁中
<html><body><h1>It works!</h1>
<img src="kali.jpg"/> ##將圖片放到網頁中
</body></html>
[root@localhost htdocs]# cd /usr/local/httpd/bin/
[root@localhost bin]# ./apachectl start ##開啓
5,用win10測試機測試網頁,並查看圖片的屬性狀況
6,用win7盜鏈機器訪問網頁
1)修改DNS解析服務器地址
2)訪問網站
3)查看網頁圖片的屬性信息
7,在win7盜鏈機器上安裝web網站服務並使用kgc.com的網頁圖片
1)在win7上搭建網站服務
2)打開web管理器
3) 編輯首頁的html文件,修改文本爲index.html
4) 將編輯好的首頁內容放到站點中
8,利用win10測試機訪問盜鏈網站的信息(關閉防火牆)
9,開啓防盜鏈配置模塊
[root@localhost bin]# vim ../conf/httpd.conf ##編輯http配置文件
LoadModule rewrite_module modules/mod_rewrite.so ##開啓防盜鏈模塊
##找到htdocs並添加權限內容
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@localhost bin]# cp /mnt/error.png /usr/local/httpd/htdocs/ ##將error圖片放到站點中
[root@localhost bin]# ./apachectl stop ##關閉
[root@localhost bin]# ./apachectl start ##開啓
10,測試盜鏈模塊開啓以後盜鏈網站win7網頁的內容
配置Apache隱藏版本信息
- Apache的版本信息,透露了必定的漏洞信息,從而給網站帶來安全隱患
- 生產環境中要配置apache隱藏版本信息
- 可以使用Fiddler工具分析
1,正常訪問網頁時用抓包軟件查看
2,配置http主配置文件
[root@localhost bin]# vim /etc/http.conf ##配置主配置文件
Include conf/extra/httpd-default.conf ##開啓子配置文件
[root@localhost bin]# cd ../
[root@localhost httpd]# cd conf/
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
[root@localhost conf]# cd extra/ ##切換到extra目錄下
[root@localhost extra]# vim httpd-default.conf ##配置子配置文件
ServerTokens Prod ##將full所有修改成prod
ServerSignature Off ##簽名關閉
3,關閉服務並從新開啓服務查看抓包信息
[root@localhost conf]# cd ../
[root@localhost httpd]# cd bin/
[root@localhost bin]# ./apachectl stop ##關閉
[root@localhost bin]# ./apachectl start ##開啓
謝謝閱讀!!!