apache 基线安全加固操作

本文档适用于Apache服务器。本规范明确了Apache服务器安全配置方面的基本要求。

  1. 账号管理、认证授权   ELK-Apache-01-01-01

编号

ELK-Apache-01-01-01

名称

以特定用户运行服务

实施目的

以特定用户运行服务,不要使用系统管理员账号启动APACHE

问题影响

越权使用造成非法攻击。

系统当前状态

# ps -aux | grep httpd | grep -v grep

# ls -al `which apachectl`

# apachectl –V | grep SERVER_CONFIG

Solaris用ps -ef代替ps -aux查看当前进程

实施步骤

一般情况下,Apache是由Root 来安装和运行的。如果Apache Server进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保Apache Server进程以最可能低的权限用户来运行。通过修改httpd.conf文件中的下列选项,以Nobody用户运行Apache 达到相对安全的目的。

备份httpd.conf文件

修改:

User nobody

Group# -1

重启APACHE

./apachectl restart

回退方案

恢复httpd.conf文件,重启APACHE

判断依据

判断是否漏洞。

实施风险

重要等级

★★★

 ELK-Apache-01-01-02

编号

ELK-Apache-01-01-02

名称

ServerRoot目录的权限

实施目的

非超级用户不能修改该目录中的内容

问题影响

非法修改

系统当前状态

# ls –al /usr/local/apache

实施步骤

为了确保所有的配置是适当的和安全的,需要严格控制Apache 主目录的访问权限,使非超级用户不能修改该目录中的内容。Apache 的主目录对应于Apache Server配置文件httpd.conf的Server Root控制项中,应为:

Server Root /usr/local/apache

回退方案

恢复目录权限

判断依据

尝试修改,看是否能修改。

实施风险

重要等级

★★

备注

 ELK-Apache-01-01-03

编号

ELK-Apache-01-01-03

名称

控制哪些主机能够访问服务器的一个区域

实施目的

防止恶意攻击

问题影响

非法访问

系统当前状态

Cat httpd.conf

实施步骤

如果你只想让某个网段或者某个IP接入,你可以在apache配置文件中强制实行。
如:你想限制你的intranet,只能被176.16.网段接入:
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16

Or by IP:

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

备注:

详细请参考:

http://www.souzz.net/online/ApacheManual/mod/mod_access.html

回退方案

恢复原始状态。

判断依据

尝试非法访问。

实施风险

重要等级

★★

备注

​​​​​​​ ELK-Apache-01-01-04

编号

ELK-Apache-01-01-04

名称

禁止访问外部文件

实施目的

禁止Apache访问Web目录之外的任何文件。的IP地址等内容。

问题影响

非法访问,恶意攻击。

系统当前状态

Cat httpd.conf

实施步骤

1、参考配置操作

编辑httpd.conf配置文件,

Order Deny,Allow

Deny from all

2、补充操作说明

设置可访问目录,

Order Allow,Deny

Allow from all

其中/web为网站根目录。

回退方案

恢复原始状态。

判断依据

1、判定条件

无法访问Web目录之外的文件。

2、检测操作

访问服务器上不属于Web目录的一个文件,结果应无法显示。

实施风险

重要等级

★★★

备注

​​​​​​​ ELK-Apache-01-01-05

编号

ELK-Apache-01-01-05

名称

目录列表访问限制

实施目的

禁止Apache列表显示文件。

问题影响

恶意攻击。

系统当前状态

查看 httpd.conf文件,查看Options FollowSymLinks是否与原来相同。

实施步骤

1、参考配置操作

(1) 编辑httpd.conf配置文件,

Options FollowSymLinks    

AllowOverride None    

Order allow,deny

Allow from all


将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止 Apache 显示该目录结构。Indexes 的作用就是当该目录下没有 index.html文件时,就显示目录结构。

 (2)设置Apache的默认页面,编辑%apache%\conf\httpd.conf配置文件,

    DirectoryIndex index.html

其中index.html即为默认页面,可根据情况改为其它文件。

(3)重新启动Apache服务

回退方案

恢复原始状态。

判断依据

1、判定条件

当WEB目录中没有默认首页如index.html文件时,不会列出目录内容

2、检测操作

直接访问http://ip:8800/xxx(xxx为某一目录)

实施风险

重要等级

备注

日志配置 ELK-Apache-02-01-01

编号

ELK-Apache-02-01-01

名称

审核登陆

实施目的

对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。

问题影响

非法访问,恶意攻击。

系统当前状态

查看httpd.conf文件中的 ErrorLog 、LogFormat(cat httpd.conf | grep ErrorLog)

查看ErrorLog 指定的日志文件如 logs/error_log中的内容是否完整(cat logs/error_log)

实施步骤

1、参考配置操作

编辑httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。

LogLevel notice

ErrorLog logs/error_log

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\" \"%{Referer}i\" \"%{User-Agent}i\"" combined

CustomLog logs/access_log combined

ErrorLog指令设置错误日志文件名和位置。错误日志是最重要的日志文件,Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误。若要将错误日志送到Syslog,则设置:ErrorLog syslog。

CustomLog指令设置访问日志的文件名和位置。访问日志中会记录服务器所处理的所有请求。

LogFormat设置日志格式。LogLevel用于调整记录在错误日志中的信息的详细程度,建议设置为notice。

回退方案

恢复原始状态。

判断依据

查看logs目录中相关日志文件内容,记录完整。

实施风险

重要等级

★★

备注

通信协议 ELK-Apache-03-01-01

编号

ELK-Apache-03-01-01

名称

更改默认端口

实施目的

更改Apache服务器默认端口,防止非法访问。

问题影响

恶意攻击。

系统当前状态

查看 httpd.conf文件,查看端口是否与原来相同。

实施步骤

1、参考配置操作

(1)修改httpd.conf配置文件,更改默认端口到8080

 Listen x.x.x.x:8080

(2)重启Apache服务

回退方案

恢复原始状态。

判断依据

1、判定条件

使用8080端口登陆页面成功

2、检测操作

登陆http://ip:8080

实施风险

重要等级

备注

设备其他安全要求 ELK-Apache-04-01-01

编号

ELK-Apache-04-01-01

名称

补丁修复

实施目的

升级APACHE修复漏洞

问题影响

容易引起恶意攻击。

系统当前状态

查看版本

Linux : apachectl -V

实施步骤

到 www.apache.org 下载新版本的APACHE

回退方案

升级补丁的风险极高,必须在万无一失的条件下升级,如当前版本没有漏洞不建议升级

判断依据

判断是否漏洞。

实施风险

重要等级

★★★

备注

​​​​​​​ ELK-Apache-04-01-02

编号

ELK-Apache-04-01-02

名称

禁用Apache Server 中的执行功能

实施目的

避免用户直接执行Apache 服务器中的执行程序,而造成服务器系统的公开化。

问题影响

越权使用造成非法攻击。

系统当前状态

# ls -al `which apachectl`

# apachectl –V | grep SERVER_CONFIG

实施步骤

在配置文件access.conf 或httpd.conf中的Options指令处加入Includes NO EXEC选项,用以禁用Apache Server 中的执行功能。避免用户直接执行Apache 服务器中的执行程序,而造成服务器系统的公开化。

备份access.conf 或httpd.conf文件

修改:

Options Includes Noexec

回退方案

恢复access.conf  和 httpd.conf文件,重启APACHE

判断依据

看是否禁用了 Apache Server

实施风险

重要等级

​​​​​​​ ELK-Apache-04-01-03

编号

ELK-Apache-04-01-03

名称

隐藏Apache的版本号及其它敏感信息

实施目的

隐藏Apache的版本号及其它敏感信息

问题影响

越权使用造成非法攻击。

系统当前状态

# ls -al `which apachectl`

# apachectl –V | grep SERVER_CONFIG

实施步骤

默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。

  添加到你的httpd.conf文件中:

ServerSignature Off
ServerTokens Prod

补充说明:
ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:
Server:Apache

  也可以通过源代码和安全模块进行修改

回退方案

将备份的httpd.conf文件恢复,重新启动APACHE

判断依据

访问看是否给隐藏了。

实施风险

重要等级

​​​​​​​ELK-Apache-04-01-04

编号

ELK-Apache-04-01-04

名称

Apache 413错误页面跨站脚本漏洞修复

实施目的

修复Apache HTTP Server处理畸形用户请求时存在漏洞

问题影响

远程攻击者可能利用此漏洞获取脚本源

系统当前状态

Cat httpd.conf

实施步骤

Apache HTTP Server处理畸形用户请求时存在漏洞,远程攻击者可能利用此漏洞获取脚本源码。

向Apache配置文件httpd.conf添加ErrorDocument 413语句禁用默认的413错误页面。

回退方案

恢复原始状态。

判断依据

警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
请求:
GET / HTTP/1.1
Host:
Connection: close
Content-length: -1
[LF]
[LF]

实施风险

重要等级

★★★

备注

​​​​​​​ ELK-Apache-04-01-05

编号

ELK-Apache-04-01-05

名称

限制请求消息长度

实施目的

限制http请求的消息主体的大小。

问题影响

恶意攻击。

系统当前状态

Cat httpd.conf文件,看是否与原来相同。

实施步骤

1、参考配置操作

编辑httpd.conf配置文件,修改为102400Byte

LimitRequestBody 102400

回退方案

恢复原始状态。

判断依据

1、判定条件

检查配置文件设置。

2、检测操作

上传文件超过100K将报错。

实施风险

重要等级

备注

​​​​​​​ ELK-Apache-04-01-06

编号

ELK-Apache-04-01-06

名称

错误页面处理

实施目的

Apache错误页面重定向。

问题影响

恶意攻击。

系统当前状态

查看 httpd.conf文件,查看ErrorDocument文件是否与修改前相同。

实施步骤

1、参考配置操作

(1) 修改httpd.conf配置文件:
ErrorDocument 400 /custom400.html

ErrorDocument 401 /custom401.html

ErrorDocument 403 /custom403.html

ErrorDocument 404 /custom404.html

ErrorDocument 405 /custom405.html

ErrorDocument 500 /custom500.html

Customxxx.html为要设置的错误页面。

(2)重新启动Apache服务

回退方案

恢复原始状态。

判断依据

1、判定条件

指向指定错误页面

2、检测操作

URL地址栏中输入http://ip/xxxxxxx~~~(一个不存在的页面)

实施风险

重要等级

备注

​​​​​​​ELK-Apache-04-01-07

编号

ELK-Apache-04-01-07

名称

拒绝服务防范

实施目的

防止恶意攻击

问题影响

恶意攻击。

系统当前状态

查看 httpd.conf文件,查看Timeout等文件是否与原来相同。

实施步骤

1、参考配置操作

(1) 编辑httpd.conf配置文件,
Timeout 10 KeepAlive On

KeepAliveTimeout 15

AcceptFilter http data

AcceptFilter https data

 (2)重新启动Apache服务

回退方案

恢复原始状态。

判断依据

1、判定条件

2、检测操作

检查配置文件是否设置。

实施风险

重要等级

备注

​​​​​​​​​​​​​​ ELK-Apache-04-01-08

编号

ELK-Apache-04-01-08

名称

删除缺省安装的无用文件

实施目的

防止恶意攻击

问题影响

恶意攻击。

系统当前状态

查看缺省的的HTML文件是否与原来相同。

实施步骤

1、参考配置操作

删除缺省HTML文件:

# rm -rf /usr/local/apache2/htdocs/*

删除缺省的CGI脚本:

# rm –rf /usr/local/apache2/cgi-bin/*

删除Apache说明文件:

# rm –rf /usr/local/apache2/manual

删除源代码文件:

# rm -rf /path/to/httpd-2.2.4*

根据安装步骤不同和版本不同,某些目录或文件可能不存在或位置不同。

回退方案

恢复原始状态。

判断依据

1、判定条件

2、检测操作

检查对应目录。

实施风险

重要等级

备注

你可能感兴趣的:(安全,中间件,运维,服务器,web安全,网络安全)