本文档适用于Apache服务器。本规范明确了Apache服务器安全配置方面的基本要求。
编号 |
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配置文件中强制实行。 备注: 详细请参考: 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
(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 |
名称 |
审核登陆 |
实施目的 |
对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的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 |
名称 |
更改默认端口 |
实施目的 |
更改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 |
名称 |
补丁修复 |
实施目的 |
升级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文件恢复,重新启动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错误页面。 |
回退方案 |
恢复原始状态。 |
判断依据 |
警 告 |
实施风险 |
中 |
重要等级 |
★★★ |
备注 |
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 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配置文件, 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、检测操作 检查对应目录。 |
实施风险 |
高 |
重要等级 |
★ |
备注 |