千家信息网

优化Apache安全方面(二)——防盗链、隐藏版本信息

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,优化Apache服务--防盗链假如某天你负责的网站服务器突然流量暴增,先不要感到惊喜。有很大可能是有其他网站将本站的静态资源进行了盗链,使很多的访问压力都转接到自己服务器上,点击量还不是自己的。作为作
千家信息网最后更新 2025年02月02日优化Apache安全方面(二)——防盗链、隐藏版本信息

优化Apache服务--防盗链

假如某天你负责的网站服务器突然流量暴增,先不要感到惊喜。有很大可能是有其他网站将本站的静态资源进行了盗链,使很多的访问压力都转接到自己服务器上,点击量还不是自己的。

作为作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用。

模拟环境

IP地址域名实验用途
192.168.116.148www.zhy.comDNS服务器、源网站
192.168.116.128无域名盗链网站

实验步骤

1、安装DNS

[root@localhost ~]# yum install bind -y[root@localhost ~]# vim /etc/named.confoptions {        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.zoneszone "zhy.com" IN {        type master;        file "zhy.com.zone";        allow-update { none; };};#在同格式下添加以上内容后按Esc,输入:wq保存退出[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata  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.1www 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

2、手工编译安装Apache,建立源网站

[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]# lsapr-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]# lsab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbmapachectl     apxs          envvars      htcacheclean  htpasswd  logresolveapr-1-config  checkgid      envvars-std  htdbm         httpd     rotatelogs[root@localhost bin]# vim /usr/local/httpd/htdocs/index.html  

It works!

//需要插入图片,做以上更改,后按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

验证:

打开一台Windows虚拟机,将其作为测试端,更改其DNS解析地址。

进入浏览器,输入域名:www.zhy.com

通过右键点击该图,选择属性,就可以看见这张图的URL:http://www.zhy.com/yuan.jpg

建立盗链网站

此时我们打开另一台Windows虚拟机,将其作为盗链网站服务器。

控制面板-程序-程序和功能-打开和关闭windows功能-选择Internet信息服务

安装完成后,在C:\inetpub\wwwroot中,新建网页文件"index.html"

        

test web

此时,在浏览器中输入盗链网站IP地址:192.168.116.128,即会出现跟源网站一样的图片,视为盗链成功。

建立防盗链措施

[root@localhost bin]# vim ../conf/httpd.conf /rewrite,将此行注释去掉LoadModule rewrite_module modules/mod_rewrite.soRequire all granted//在此行下插入以下规则  RewriteEngine OnRewriteCond %{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,因为我们已做过防盗链措施,现在访问盗链网站将会出现报错的图片。

优化Apache安全服务--隐藏版本号

基于上一个防盗链的配置不变,开始隐藏版本号的优化操作。

实验步骤

1、实验前的验证

进入Windows客户端,使用"fiddler"抓包工具,查看网站头部。

此时,抓包会显示版本后缀,有心之人会针对该版本的漏洞对服务器进行攻撃する,这是非常不安全,因此需要对版本号进行隐藏。

2、开始进行优化

[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改为Prodwq保存退出[root@localhost bin]# ./apachectl stop[root@localhost bin]# ./apachectl start     //重启服务

3、结果验证

0