Apache安全优化虚拟机:192.168.220.137
1、手工编译apache,挂载共享文件,并解压到 /opt/目录下。
mount.cifs //192.168.56.1/share /mnt #192.168.56.1是我的宿主机IP地址
#解压
tar -zxvf apr-1.4.6.tar.gz -C /opt/
tar -zxvf apr-util-1.4.1.tar.gz -C /opt/
tar -zxvf httpd-2.4.2.tar.gz -C /opt/
#安装包优化
cd /opt
mv apr-1.4.6/ httpd-2.4.2/srclib/apr
mv apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util
2、安装编译工具
yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel
3、在 /opt/httpd-2.4.2 配置
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
4、make && make install
5、DNS解析配置:
#安装bind包
yum install -y bind
#1、DNS主配置文件
vim /etc/named.conf
#2、在DNS区域配置文件中添上以下内容:
vim /etc/named.rfc1912.zones
zone "demo.com" IN {
type master;
file "demo.com.zone";
allow-update { none; };
};
#3、区域数据文件
cd /var/named
cp -p named.localhost demo.com.zone
vim demo.com.zone
www IN A 192.168.220.137
systemctl restart named
6、打开Apache的主配置文件
#建立软链接优化路径
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
vim /etc/httpd.conf
#1、修改域名和监听地址
ServerName www.demo.com:80
Listen 192.168.220.137:80
#Listen 80
#验证apache是否启动
执行 /usr/local/httpd/bin/apachectl -t
Syntax OK
7、开启apache服务,关闭防火墙
#开启apache
/usr/local/httpd/bin/apachectl start
systemctl stop firewalld
setenforce 0
8、给网页站点添加一张图片
#放一张图片到共享文件夹,再把图片复制到网页文件夹中。
cd /mnt/httpd
cp game.jpg /usr/local/httpd/htdocs/
cd /usr/local/httpd/htdocs/
#在index.html中引用图片
vim index.html
<html>
<body>
<h1>It works!</h1>
<img src="game.jpg"/> #增添这一行,把图片加在网页中
</body>
</html>
这里做的是盗链模拟,接下来配置另一台盗链虚拟机:192.168.220.134
1、安装apache
yum install -y httpd
#盗取192.168.220.137的网页站点信息
cd /var/www/html
vim index.html
<html>
<body>
<h1>this is test web!</h1>
<img src="http://www.demo.com/game.jpg"/> #增添这一行,把图片加在网页中
</body>
</html>
#开启服务,关闭防火墙
systemctl restart httpd
systemctl stop firewalld
setenforce 0
2、修改自己的DNS服务器地址
echo "nameserver 192.168.220.137" > /etc/resolv.conf
最终,在win10验证盗链过程
输入盗链地址:192.168.220.134
我们的修改基于上面的内容
1、修改Apache的主配置文件
vim /etc/httpd.conf
#1、Apache主配置开启模块
LoadModule rewrite_ module modules/ mod_ rewrite. so //把注释去掉开启
#2、配置文件末尾添加
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
#增添部分:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://demo.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://demo.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.demo.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.demo.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.demo.com/error.png
</Directory>
2、把 error.png图片放到 /usr/local/httpd/htdocs/
cd /mnt/httpd #挂载点存放的图片
cp error.png /usr/local/httpd/htdocs/
这是我的error.png图片
3、开启Apache,关闭防火墙
#验证apache是否启动
执行 /usr/local/httpd/bin/apachectl -t
Syntax OK
#开启apache
/usr/local/httpd/bin/apachectl start
或者systemctl restart httpd
systemctl stop firewalld
setenforce 0
#验证模块
/usr/local/httpd/bin/apachectl -t -D DUMP_MODULES | grep "rewrite"
rewrite_module (shared)
到这里,我们的防盗链已经配置成功,接下来在win10进行验证
配置Apache隐藏版本信息:
Apache的版本信息,透露出了一定的漏洞信息,在现网中如果不隐藏版本信息,外界知道Apache版本,会根据对应版本的漏洞进行攻击,所以这体现了隐藏版本信息的重要性。
1、将主配置文件 httpd.conf 以下行注释去掉
Include conf/extra/httpd-default.conf
2、修改 httpd-default.conf 文件两个地方
cd /usr/local/httpd/conf/extra
vim httpd-default.conf
ServerTokens Full 修改为 ServerTokens Prod
ServerSignature On 修改为 ServerSignature Off
#重启httpd 服务
systemctl restart httpd