52、Apache网页与安全优化

Apache 网页与安全优化

在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代。
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容。

一、网页压缩

1.检查是否安装 mod_deflate 模块

apachectl -t -D DUMP_MODULES | grep “deflate”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RnFNKxue-1646482171436)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694192934.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KGYq2AT-1646482171438)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694221969.png)]

2.如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite
–enable-charset-lite
–enable-cgi
–enable-deflate

#加入mod_deflate 模块

make && make install

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cpukdg8E-1646482171439)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694269839.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8uozoicb-1646482171439)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694302174.png)]

3.配置 mod_deflate 模块启用

vim /usr/local/httpd/conf/httpd.conf
–52行–修改
Listen 192.198.80.10:80
–105行–取消注释
LoadModule deflate_module modules/mod_deflate.so #开启mod_deflate 模块
–197行–取消注释,修改
ServerName www.kgc.com:80
–末行添加–

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CspwDZgZ-1646482171440)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694347665.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qm8AvWjh-1646482171440)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694360194.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0WVEUqYN-1646482171440)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694372058.png)]

4.检查安装情况,启动服务

apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep “deflate” #检查 mod_deflate 模块是否已安装
deflate_module (shared) #已安装的正确结果

systemctl start httpd.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWRF5mRN-1646482171440)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694395809.png)]

5.测试 mod_deflate 压缩是否生效

cd /usr/local/httpd/htdocs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cpUtbYvk-1646482171441)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694423356.png)]

先将game.jpg文件传到/usr/local/httpd/htdocs目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PqKNZ6gd-1646482171441)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694458928.png)]

vim index.html

It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 —> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

方法二:
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors —> 选择 Headers
浏览器访问 http://192.168.80.10 ,双击200响应消息查看 Content-Encoding: gzip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aQIhgMrK-1646482171442)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694496815.png)]

二、网页缓存

1.检查是否安装 mod_expires 模块

apachectl -t -D DUMP_MODULES | grep “expires”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHwnUbj1-1646482171442)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694529426.png)]

2.如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UUFAiOoz-1646482171442)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694590803.png)]

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite
–enable-charset-lite
–enable-cgi
–enable-deflate
–enable-expires #加入mod_expires 模块

make && make install

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3w5r3qad-1646482171443)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694621534.png)]

3.配置 mod_expires 模块启用

vim /usr/local/httpd/conf/httpd.conf
–52行–修改
Listen 192.198.80.10:80
–111行–取消注释
LoadModule expires_module modules/mod_expires.so #开启mod_expires 模块
–199行–取消注释,修改
ServerName www.kgc.com:80
–末行添加–

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPLhtm6i-1646482171443)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694652374.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IORHElJG-1646482171443)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694672946.png)]

4.检查安装情况,启动服务

apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep “expires” #检查 mod_deflate 模块是否已安装

deflate_module (shared) #已安装的正确结果

systemctl start httpd.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSVUYD3a-1646482171443)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694719429.png)]

5.测试缓存是否生效

cat /usr/local/httpd/htdocs/index.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cR7j51pu-1646482171444)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694742584.png)]

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 —> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200消息查看响应头中包含 Expires 项 F12 键 F5刷新

方法二:
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors —> 选择 Headers
浏览器访问 http://192.168.80.10 ,双击200消息查看 Expires 项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RetL5BJ0-1646482171444)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694758209.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aL8lonMV-1646482171444)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694774976.png)]

三、隐藏版本信息

vim /usr/local/httpd/conf/httpd.conf
–491行–取消注释
Include conf/extra/httpd-default.conf

vim /usr/local/httpd/conf/extra/httpd-default.conf
–55行–修改
ServerTokens Prod #将原本的 Full 改为 Prod,只显示名称,没有版本
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息。

systemctl restart httpd.service

浏览器访问 http://192.168.80.10 ,双击200消息查看 Server 项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGehv7pU-1646482171445)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694798605.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WT1ITvVV-1646482171445)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694813075.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E76ES3fx-1646482171446)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694830274.png)]

四、Apache 防盗链

  • 防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源
  • 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力,作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用

盗链过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MNKzUPWA-1646482171446)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694937874.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jIkef1H5-1646482171446)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694951266.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U6t62GGE-1646482171447)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645694979791.png)]

防盗链过程

1.检查是否安装 mod_rewrite 模块

apachectl -t -D DUMP_MODULES | grep “rewrite”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rEicb5Uk-1646482171447)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645695034286.png)]

2.如果没有安装mod_rewrite 模块,重新编译安装 Apache 添加 mod_rewrite模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite \ #加入mod_rewrite 模块
–enable-charset-lite
–enable-cgi
–enable-deflate
–enable-expires

make && make install

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNk4wD42-1646482171447)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645695061688.png)]

3.配置 mod_rewrite 模块启用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gHkpGWvS-1646482171448)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645695100616.png)]

vim /usr/local/httpd/conf/httpd.conf
–157行–取消注释
LoadModule rewrite_module modules/mod_rewrite.so
–224行–
<Directory “/usr/local/httpd/htdocs”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

RewriteEngine On #打开 rewrite 功能,加入 mode_rewrite 模块内容
RewriteCond %{HTTP_REFERER} !^http://kgc.com/.$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.
$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
RewriteRule .*.(gif|jpg|swf)$ http://www.kgc.com/error.png #设置跳转动作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yUYjSJtC-1646482171448)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645695129892.png)]

RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.$ [NC] 的字段含义:
“%{HTTP_REFERER}” :存放一个链接的 URL,表示从哪个链接访问所需的网页。
“!^” :表示不以后面的字符串开头。
“http://www.kgc.com” :是本网站的路径,按整个字符串匹配。
“.
$” :表示以任意字符结尾。
“[NC]” :表示不区分大小写字母。

RewriteRule ..(gif|jpg|swf)$ http://www.kgc.com/error.png 的字段含义:
“.” :表示匹配一个字符。
” :表示匹配 0 到多个字符,与“.”合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
“.” :在这里的“\”是转义符,“.”就代表符号“.”的意思。因为“.”在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一个,“$”表示结束。最后的规则是以“.gif”、“.jpg”、“.swf”结尾, 前面是1到多个字符的字符串,也就是匹配图片类型的文件。
“http://www.kgc.com/error.png” :表示转发到这个路径 。

整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时,显示 error.png 这个图片。

4.网页准备

Web源主机配置:
cd /usr/local/httpd/htdocs
将game.jpg、error.png文件传到/usr/local/httpd/htdocs目录下
vim index.html

this is kgc.com!

echo “192.168.80.10 www.kgc.com” >> /etc/hosts
echo “192.168.80.12 www.benet.com” >> /etc/hosts

盗链网站主机:
cd /usr/local/httpd/htdocs #yum安装的httpd服务的默认路径为/var/www/html/
vim index.html

this is benet.com!

echo “192.168.80.10 www.kgc.com” >> /etc/hosts
echo “192.168.80.12 www.benet.com” >> /etc/hosts

5.在盗图网站主机上进行浏览器验证

http://www.benet.com

docs #yum安装的httpd服务的默认路径为/var/www/html/
vim index.html

this is benet.com!

echo “192.168.80.10 www.kgc.com” >> /etc/hosts
echo “192.168.80.12 www.benet.com” >> /etc/hosts

5.在盗图网站主机上进行浏览器验证

http://www.benet.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qThKljOZ-1646482171448)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645695157825.png)]

posted @   叕叕666  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示