Apache网页优化 ---- 设置防盗链+隐藏版本信息
一:防盗链
-
防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源;
-
如果别人盗用网站的这些静态资源,明细的是会增大服务器的带宽压力;
-
所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用。
二:配置规则变量说明
- %{HTTP_ REFERER}:浏览 header 中的链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页
- !^:不以后面的字符串开头
- .*$:以任意字符结尾
- NC:不区分大写
- R:强制跳转
三:规则匹配
- RewriteEngine On : 打开网页重写功能
- RewriteCond : 设置匹配规则
- RewriteRule : 设置跳转动作
- 如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配。
四:实验步骤
1、实验环境
-
一台linux虚拟机(192.168.34.128)
-
一台Linux虚拟机(192.168.34.141)作为盗链网站
-
一台win10作为测试客户端
2、实验过程
(1)手工编译apache,挂载共享文件,并解压到/opt/目录下
[root@localhost ~]# mount.cifs //192.168.10.29/share /abc ‘共享文件’
[root@localhost abc]# tar zxvf apr-1.6.2.tar.gz -C /opt/
[root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
[root@localhost abc]# tar zxvf httpd-2.4.2.tar.gz -C /opt/
(2)安装包优化
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.2/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.2/srclib/apr-util
(3)安装编译工具, 并重新编译Apache,参数中加入 mod_rewrite 模块内容
[root@localhost opt]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
[root@localhost opt]#./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
[root@localhost opt]# make && make install
(4)安装bind域名解析服务,并对配置文件进行修改
[root@localhost httpd-2.4.2]# yum install bind -y
[root@localhost httpd-2.4.2]# vim /etc/named.conf ‘主配置文件’
[root@localhost httpd-2.4.2]# vim /etc/named.rfc1912.zones ‘区域配置文件’
[root@localhost named]# cp -p named.localhost kg.com.zone[root@localhost named]# vim kg.com.zone ‘区域数据配置文件’
[root@localhost named]# systemctl start named
(5)给网页站点添加一张图片, 放一张图片到共享文件夹,再把图片复制到网页文件夹中
[root@localhost ~]# cp /abc/dog.jpg /usr/local/httpd/htdocs/
[root@localhost htdocs]# vim index.html
<html><body><h1>It works!</h1>
<img src="dog.jpg"/> ‘把图片加在网页中’
</body></html>
[root@localhost htdocs]#service httpd start ‘开启httpd服务’
[root@localhost htdocs]#systemctl stop firewalld.service
[root@localhost htdocs]#setenforce 0
在win10中验证
(6)接下来配置另一台盗链虚拟机,先安装httpd,并进行配置
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.kg.com:80 ‘修改域名’
Listen 192.168.34.141:80 ‘监听地址’
#Listen 80
[root@localhost ~]# vim /var/www/html/index.html
<htmL>
<body>
<h1>this is test web</h1>
<img src="http://www.kg.com/game.jpg"/
</body>
</html>
[root@localhost ~]# systemctl start httpd
(7)开启apache的防盗链功能
[root@localhost htdocs]# cd ..
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
[root@localhost conf]# vim httpd.conf
‘在240行添加’
RewriteCond %{HTTP_REFERER} !^http://hello.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://hello.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.hello.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.hello.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.hello.com/error.png
</Directory>
[root@localhost conf]# cd
[root@localhost ~]# cd /usr/local/httpd/bin/
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
五:Apache版本隐藏信息
配置Apache隐藏版本信息:
- Apache的版本信息,透露出了一定的漏洞信息,在现网中如果不隐藏版本信息,外界知道Apache版本,会根据对应版本的漏洞进行攻击,所以这体现了隐藏版本信息的重要性。
1、 将主配置文件 httpd.conf 以下行注释去掉
[root@localhost ~]# vim /etc/httpd.conf
Include conf/extra/httpd-default.conf ‘把#号去掉’
2、 修改 httpd-default.conf 文件两个地方
[root@localhost ~]#cd /usr/local/httpd/conf/extra
[root@localhost ~]#vim httpd-default.conf
ServerTokens Full 修改为 ServerTokens Prod
ServerSignature On 修改为 ServerSignature Off
[root@localhost ~]#systemctl restart httpd
3、在win10中打开抓包工具,直接开启抓包