配置防盜鏈 訪問控制Directory 訪問控制FilesMatch
阿新 • • 發佈:2018-06-01
配置防盜鏈 訪問控制Directory一、配置防盜鏈
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/f88f3963c936fe00e9ca3656be6d0ae7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/5ff9a2141893ef1248b43ae2f86117f7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如果要在第三方站點訪問,需要把第三方站點域名添加到httpd-vhosts.conf配置文件中,SetEnvIfNoCase Referer "http://aaa.com" local_ref下面再添加一行第三方站點,就可以實現在第三方站點訪問到自己設置的這個鏈接
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
如果把 #SetEnvIfNoCase Referer "^$" local_ref這一行的註釋去掉
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful
這樣就打開了空Referer,自己定義的圖片就可以訪問到
#curl -e "http://111.com/123.txt" -x127.0.0.1:80 111.com/fj.jpg -I //-e用來指定它的Referer
-e定義一個Referer一定要以http://這樣的格式來定義,才是一個合格的Referer #vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //配置文件
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/3141fce73ee704b2f448814fcbb10ff4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#/usr/local/apache2.4/bin/apachectl -t //檢查語法是否正確
#/usr/local/apache2.4/bin/apachectl graceful //修改完配置文件一定要重新加載
#curl -x127.0.0.1:80 111.com/admin/index.php -I
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/0e116ca42938f0acc92152c5ddd47e7b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#curl -x192.168.238.150:80 111.com/admin/index.php -I //訪問不是本機IP,看到效果為403
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/9b307bcdc9078f3b68d564116e824b4e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#tail /usr/local/apache2.4/logs/111.com-access_20180601.log //查看日誌,可以看到使用127.0.0.1訪問狀態碼為200,使用192.168.238.128訪問是403代碼
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/b6b5b1e08df058d4d980eb5a6a97f62c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個訪問控制是以目錄的形式來控制的,所以配置文件中配置訪問控制的Directory一定要寫絕對路徑,然後定義Order順序是先deny還是先allow,Allow from 127.0.0.1 控制的對象就是來源IP
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/f88f3963c936fe00e9ca3656be6d0ae7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/5ff9a2141893ef1248b43ae2f86117f7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如果要在第三方站點訪問,需要把第三方站點域名添加到httpd-vhosts.conf配置文件中,SetEnvIfNoCase Referer "http://aaa.com" local_ref下面再添加一行第三方站點,就可以實現在第三方站點訪問到自己設置的這個鏈接
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
如果把 #SetEnvIfNoCase Referer "^$" local_ref這一行的註釋去掉
#/usr/local/apache2.4/bin/apachectl graceful
這樣就打開了空Referer,自己定義的圖片就可以訪問到
#curl -e "http://111.com/123.txt" -x127.0.0.1:80 111.com/fj.jpg -I //-e用來指定它的Referer
-e定義一個Referer一定要以http://這樣的格式來定義,才是一個合格的Referer
二、訪問控制Directory
訪問控制Directory就是在原來雙層用戶認證的基礎上再加一層安全認證,在配置文件中設置本公司的官網IP為白名單,其他IP段訪問都拒絕
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/3141fce73ee704b2f448814fcbb10ff4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#/usr/local/apache2.4/bin/apachectl -t //檢查語法是否正確
#/usr/local/apache2.4/bin/apachectl graceful //修改完配置文件一定要重新加載
#curl -x127.0.0.1:80 111.com/admin/index.php -I
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/0e116ca42938f0acc92152c5ddd47e7b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#curl -x192.168.238.150:80 111.com/admin/index.php -I //訪問不是本機IP,看到效果為403
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/9b307bcdc9078f3b68d564116e824b4e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#tail /usr/local/apache2.4/logs/111.com-access_20180601.log //查看日誌,可以看到使用127.0.0.1訪問狀態碼為200,使用192.168.238.128訪問是403代碼
![技術分享圖片](http://i2.51cto.com/images/blog/201806/01/b6b5b1e08df058d4d980eb5a6a97f62c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個訪問控制是以目錄的形式來控制的,所以配置文件中配置訪問控制的Directory一定要寫絕對路徑,然後定義Order順序是先deny還是先allow,Allow from 127.0.0.1 控制的對象就是來源IP
三、訪問控制FilesMatch
訪問控制除了目錄,也可以設置為文件名或者鏈接
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#/usr/local/apache2.4/bin/apachectl -t //檢查語法是否正確
#/usr/local/apache2.4/bin/apachectl graceful //修改完配置文件一定要重新加載
擴展
幾種限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定義header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556
配置防盜鏈 訪問控制Directory 訪問控制FilesMatch