前言
Apache配置防盗链功能
-
防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源
-
如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
-
作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用
一、Apache安全优化
1.1配置防盗链
1.1.1 环境配置
软件包
httpd-2.4.25
apr-util-1.4.1
apr-1.4.6
1.1.2 将安装http服务的三个包上传到服务器opt目录下,并解压缩
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2 [root@localhost opt]# tar zxvf apr-1.6.2.tar.gz [root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz
[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
1.1.3 安装DNS服务,修改主配置文件
[root@localhost opt]# vi /etc/named.conf 将原先的127.0.0.1修改为any options { listen-on port 53 { any;}; ‘//修改为any‘ ...省略内容 allow-query { any; }; ‘//修改为any‘
1.1.4 修改区域文件
[root@localhost opt]# vi /etc/named.rfc1912.zones ‘//添加以下内容到正向解析中‘ zone "test.com" IN { type master; file "test.com.zone"; allow-update { none; }; };
1.1.5 修改DNS区域数据配置文件
[root@localhost opt]# cd /var/named/ [root@localhost named]# cp -p named.localhost test.com.zone [root@localhost etc]# vim /var/named/test.com.zone ‘//尾行修改为下面内容‘ www IN A 192.168.50.136
1.1.6 启动dns 在客户机上进行查看DNS解析是否生效
[root@localhost named]# systemctl start named
nslookup www.test.com
1.2 安装httpd
[root@localhost named]# cd /opt/httpd-2.4.29/ 配置http服务安装脚本: ./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]# ln -s /usr/local/httpd/conf/httpd.conf /etc 建立软连接
1.3 在网页中添加一张图片
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/htdocs/ 将一张图片上传到站点目录中 修改站点页面文件,将图片添加进去: <img src="cat.jpg"/> <html><body><h1>It works!</h1> <img src="cat.jpg"/> </body></html>
1.4 在http配置文件中修改域名及监听地址
[root@server bin]# vim /etc/httpd.conf ## 编辑配置文件 修两处51、52与198行: Listen 192.168.50.134:80 ## 51行 #Listen 80 ## 52行 ServerName localhost:80 ## 198行
1.5 在客户机中打开浏览器,输入192.168.50.134进行访问
1.6 盗链主机设置
[root@daolian ~]# vim /var/www/html/index.html ## 创建站点页面 写入如下内容: <h1>dao lian wang</h1> <img src="http://www.test.com/cat.jpg"> [root@daolian ~]# echo "nameserver 192.168.50.134" > /etc/resolv.conf [root@daolian ~]# systemctl restart httpd
1.7 访问192.168.50.136(盗链web)
1.8 开启防盗功能
[root@server bin]# vim /etc/httpd.conf 将156行的rewrite模块功能开启(前面的#去掉) 156 LoadModule rewrite_module modules/mod_rewrite.so 在<Directory "/usr/local/httpd/htdocs">标签内添加如下防盗链的规则: RewriteEngine On 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.png
1.9 进入站点目录,将一张error.jpg图片上传到该目录下,如果发生盗链情况则自动显示该图片
[root@server bin]# cd /usr/local/httpd/htdocs/ [root@server local]# cd /usr/local/httpd/bin/ ## 进入http命令存放目录 [root@server bin]# ./apachectl stop ## 停止服务 [root@server bin]# ./apachectl start ## 启动服务
查看是否可以盗链