优化Apache服务——防盗链
假如某天你负责的网站服务器突然流量暴增,先不要感到惊喜。有很大可能是有其他网站将本站的静态资源进行了盗链,使很多的访问压力都转接到自己服务器上,点击量还不是自己的。
作为作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用。
模拟环境
IP地址 | 域名 | 实验用途 |
---|---|---|
192.168.116.148 | www.zhy.com | DNS服务器、源网站 |
192.168.116.128 | 无域名 | 盗链网站 |
实验步骤
1、安装DNS
[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.conf
options {
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.zones
zone "zhy.com" IN {
type master;
file "zhy.com.zone";
allow-update { none; };
};
#在同格式下添加以上内容后按Esc,输入:wq保存退出
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data 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.1
www 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]# ls
apr-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]# ls
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@localhost bin]# vim /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1>
<img src="yuan.jpg"/>
</body></html>
//需要插入图片,做以上更改,后按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”
<html>
<head></head>
<body>
<h1>test web</h1>
<img src="http://www.zhy.com/yuan.jpg"/>
</body>
</html>
此时,在浏览器中输入盗链网站IP地址:192.168.116.128
,即会出现跟源网站一样的图片,视为盗链成功。
建立防盗链措施
[root@localhost bin]# vim ../conf/httpd.conf
/rewrite,将此行注释去掉
LoadModule rewrite_module modules/mod_rewrite.so
Require all granted
//在此行下插入以下规则
RewriteEngine On
RewriteCond %{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改为Prod
wq保存退出
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start //重启服务
3、结果验证
来源:https://blog.csdn.net/weixin_45409343/article/details/102754878