了解Apache基线加固原理,及工作过程

实验过程(要求截图):

启动Apache2

操作目的

启动Apache2

操作步骤

1、启动Apache2服务

service apache2 start

2、查看Apache2服务状态

service apache2 status

3、查看apache2版本

apache2 -v

  1. 隐藏版本信息

操作目的

隐藏Apache版本信息

加固方法

1、查看Apache配置文件/etc/apache2/conf-available/security.conf

ServerSignature Off      #屏蔽回显错误中的敏感信息

ServerTokens Prod       #隐藏HTTP头部回显的版本信息

2、修改Apache配置文件/etc/apache2/conf-available/security.conf,改回默认配置:

ServerSignature On    

ServerTokens OS

    

  1. 禁止目录遍历

操作目的

防止直接访问目录时由于找不到默认主页列出目录下文件

加固方法

查看Apache配置文件/etc/apache2/apache2.conf

<Directory "/var/www/ ">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>

删除Indexes即可实现。

  1. 禁止Apache访问Web目录之外的任何文件

操作目的

禁止Apache访问Web目录之外的任何文件。

加固方法

1、参考配置操作

编辑apache2.conf配置文件,“vim /etc/apache2/apache2.conf”

<Directory />

        Options FollowSymLinks

        AllowOverride None

        Require all denied

</Directory>

<Directory /usr/share>

        AllowOverride None

        Require all granted

</Directory>

<Directory /var/www/>

        Options Indexes FollowSymLinks

        AllowOverride None

        Require all granted

</Directory>

备注

1、Options: 设置目录特性

ALL:所有特性有效(缺省状态)

None:所有目录特性无效

FollowSymLinks:允许浏览器访问文档根目录外的文档

ExecCGI:允许目录下执行CGI程序

Indexes:允许浏览器在没有index.html时显示目录

2、AllowOverride:设置配置文件覆盖

None:.htaccess文件完全忽略

ALL:使用.htaccess文件内的指令覆盖规则

3、Require:目录访问权限(2.4版本)

require all denied:拒绝所有

require all granted:允许所有

require host xxx 允许某个IP/HOST

  1. 监听地址

操作目的

服务器有多个IP地址时,只监听提供服务的IP地址和端口

检查方法

查看Apache配置文件/etc/apache2/ports.conf

加固方法

修改Apache配置文件/etc/apache2/ports.conf,设置只监听80端口

Listen 80

  1. 运行权限设置

操作目的

apache设置一个最小的权限的用户来运行

检查方法

查看Apache配置文件/etc/apache2/apache2.conf

加固方法

修改Apache配置文件/etc/apache2/apache2.conf,可以自定义一个较小权限的用户和组。

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

  1. 禁用CGI

操作目的

如果服务器上不需要运行CGI程序,建议禁用CGI

加固方法

编辑配置文件/etc/apache2/conf-available/serve-cgi-bin.conf,把cgi-bin目录的配置和模块注释掉。

#       <IfDefine ENABLE_USR_LIB_CGI_BIN>

#               ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

#               <Directory "/usr/lib/cgi-bin">

#                       AllowOverride None

#                       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

#                       Require all granted

                </Directory>

#       </IfDefine>

  1. 日志审核

操作目的

检查Apache是否记录了错误信息和访问信息

检查方法

查看Apache配置文件/etc/apache2/apache2.conf

1、错误日志

ErrorLog logs/error_log     #存放诊断信息和处理请求中出现的错误

LogLevel warn      #设置错误日志中的信息的详细程度

2、访问日志

CustomLog logs/access_log common  #记录服务器所处理的所有请求

LogFormat "%h %l %u %t \"%r\" %>s %b" common   #设置日志格式

加固方法

  1. 添加ErrorLogFormat “[%t] [%I] [pid %P] %F: %E: [client %a] %M”
  1. LogLevel修改为notice

备注

LogLevel:控制登录到error_log的消息的数量。可能的值包括:7-调试(DEBUG)、6-信息(INFO)、5-通知(NOTICE)、4-警告(WARNING)、3-错误(ERR)、2-临界失败(CRIT)、1-警戒【必须 处理】(ALERT)、0-致命(EMERG)。

  1. 自定义错误信息

操作目的

自定义Apache返回的错误信息

检查方法

查看Apache配置文件/etc/apache2/conf-available/localized-error-pages.conf,检查是否使用ErrorDocument自定义错误信息

加固方法

修改Apache配置文件/etc/apache2/localized-error-pages.conf,自定义错误信息,可以设置返回指定字符串,文件或重定向地址,如下:

ErrorDocument 500 "The server made a boo boo."

ErrorDocument 404 /missing.html

ErrorDocument 402 http://www.example.com/subscription_info.html

常见错误代码:

403 禁止访问;404 找不到页面;500是服务器内部错误

10、关闭TRACE

操作目的

防止TRACE方法被访问者恶意利用

加固方法

修改Apache配置文件/etc/apache2/apache2.conf,添加“TraceEnable Off”

注:适用于Apache 2.0以上版本i

备注

Trace是http请求中的一个方法,用此方法服务器会将客户端请求的消息原样返回给客户端,用作测试。

11DDOS防御

操作目的

DDOS防御

加固方法

修改Apache配置文件/etc/apache2/apache2.conf:

Timeout 10

KeepAlive On

keepAliveTimeout 15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值