apache网页和安全优化

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

  1. 优化内容:配置网页压缩功能、工作模式的选择与参数优化、配置防盗链、配置隐藏版本号…….
  2. gzip:是一种流行文件压缩算法,将源文件压缩到一个纯文本文件中,可减少70%以上文件大小。
  3. http压缩:使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器

作用:降低了网络传输的字节数,加快网页加载的速度,节省流量,改善用户的浏览体验

  1. Apache的压缩模块mod_gzip 模块和mod_deflate 模块

Apache 1.x:没有内建网页压缩技术,但可使用第三方mod_gzip 模块执行压缩

Apache 2.x:在开发的时候,内建了mod_deflate 这个模块,取代mod_gzip

mod_gzip 模块与mod_deflate 模块

            a.    两者均使用gzip压缩算法,运作原理类似

            b.    mod_deflate 压缩速度略快,而mod_gzip 的压缩比略高

            c.     mod_gzip 对服务器CPU的占用要高一些

            d.    高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快

  1. 网页压缩配置实验

实验目的:实现网页压缩

实验准备: 联网httpd服务器和网页文件

实验步骤:

  1. 首先检查是否安装了mod_deflate模块

执行apachectl -t -D DUMP_MODULES | grep "deflate"命令

如果输出中没有deflate_module (static),说明编译时没有安装mod_deflate模块,若没有安装则要停止apaache服务,重新编译安装,在参数中加入mod_deflate模块

                         ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

                  make && make install

             

             

  1. 启用mod_deflate模块
  2. 在配置httpd.conf中配置开启gzip功能,开启deflate模块并在底部添加如下代码

AddOutputFilterByType  DEFLATE  text/html text/plain text/css text/xml text/javascript         #第一行代表对什么样的内容启用gzip压缩

    DeflateCompressionLevel 9 #第二行代表压缩级别

                  SetOutputFilter DEFLATE     #第三行代表启用deflate模块对本站点的输出进行gzip压缩

  1. 检查httpd.conf语法    

                     apachectl -t

             

  1. 检查模块是否安装

apachectl -t -D DUMP_MODULES | grep "deflate"

  1. 测试压缩是否生效,重启Apache服务,再用浏览器访问测试网站,并用Fiddler工具抓包,进行对比分析

  1. 配置网页的缓存时间

网页缓存:将一部分经常不会改变或变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度。

启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的

实验目的:实现网页缓存

实验准备:联网的apache服务器和网页文件

实验步骤:

  1. 检查mod_expires模块是否安装

/usr/local/apache/bin/apachectl -t -D DUMP_MODULES | grep "expires"

  1. 安装mod_expires模块

systemctl stop httpd

./configure --prefix=/usr/local/httpd --enable-deflate --enable-expire --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

#以前编译过的模块也要加上

make && make install

  1. 配置mod_expires模块启用,在主配置文件底部添加,并启用expires模块

vim /usr/local/httpd/conf/httpd.conf

<IfModule mod_expires.c>

            ExpiresActive On

            ExpiresDefault "access plus 60 seconds”                 #任一格式文档60秒后过期

                </IfModule>

  1. 检查httpd.conf语法

  1. 检查模块是否安装

/usr/local/httpd/bin/apachectl -t -D DUMP_MODULES | grep "expires"

  1. 测试缓存是否生效,systemctl start httpd

响应头包含expires项,证明缓存已工作

  • apache安全优化
  1. 防盗链:防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源,如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力,     所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用
  2. Referer字段作用:可以追溯上一个入站地址是什么;对于资源文件,可以跟踪到包含显示它的网页地址是什么。所有防盗链方法都基于它
  3. 盗链模拟

实验准备:两台可通信电脑或虚拟机centos7系统,源主机www.bt.com IP(192.168.100.10),盗链网站www.test.com (192.168.100.100),客户端用window系统并在hosts文件添加域名和IP映射

实验目的:盗链网站盗取源网站图片

实验步骤

  1. 访问网站,确保能正常访问
  2. 准备图片:源主机上把图片复制到/usr/local/httpd/htdocs下,打开网页确保图片存在
  3. 模拟盗取图片链接:在盗图主机index.html文件中加入图片地址

访问www.test.com可以看到www.bt.com的图片,盗图成功

  1. 防盗链配置mod_rewrite:主要功能是实现URL跳转,正则表达式基于Perl语言
  1. 检查是否安装mod_rewrite

/usr/local/httpd/bin/apachectl -t -D DUMP_MODULES | grep "rewrite"

  1. 安装mod_rewrite,如没安装先停止apache服务

./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

Make && make install

  1. 配置mod_rewrite模块启用,启用rewrite模块,在<Directory 网站根目录>标签内添加下列内容

vim /usr/loca RewriteEngine On

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://www.bt.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.bt.com$ [NC]

RewriteRule  .*\.(png|jpeg|jpg|gif)$  -F

  1. 检查httpd.conf语法

apachectl -t

  1. 检查模块是否安装

apachectl -t -D DUMP_MODULES | grep "rewrite"

  1. 测试mod_rewrite重定向是否生效:重启apache服务

访问www.test.com,发现无法显示图片,防盗链成功

  1. mod_rewrite模板匹配规则表,匹配规则(不匹配即终止)

%{HTTP_REFERER}

浏览header中的链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页

!^

不以后面的字符串开头

*$

以任意字符结尾

NC

不区分大写

R

强制跳转

    规则匹配说明

    RewriteEngine On:打开网页重写功能

    RewriteCond:设置匹配规则

    RewriteRule:设置跳转动作

  1. 隐藏版本信息:Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患,生产环境中要配置Apache隐藏版本信息

方法:

  1. 将主配置文件httpd.conf以下行注释去掉

        #Include conf/extra/httpd-default.conf

  1. 修改httpd-default.conf文件两个地方

ServerTokens Full 修改为 ServerTokens Prod

将ServersSignature On 修改为ServersSignature Off

重启httpd服务

通过抓包工具检查网页,发现apache不显示版本,成功

  1. ServerToken:服务器回送给客户端响应头域是否包含关于服务器OS类型和编译过的模块描述信息

ServerToken输出格式

Prod

显示服务器名

Major

显示内核版本

Minor

显示主版本

OS

显示次版本

Full

显示详细信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值