阿里云标准-APACHE安全基线检查
基线检查功能通过配置不同的基线检查策略,可以帮助您快速对服务器进行批量扫描,发现包括系统、账号权限、数据库、弱口令 、等级保护合规配置等存在的风险点,并提供修复建议和一键修复功能。
1.1 [高危]
确保对OS根目录禁用覆盖 访问控制
描述
通过禁止访问OS根目录,限制直接访问服务器内部文件的行为
使得运行web的服务器更加安全
检查提示
配置文件路径:/www/server/apache/conf/httpd.conf
加固建议
找到配置文件路径。 通过vim path
(path为主配置文件的绝对路径,如果您的主配置文件中包含include <path>
,则为您的子配置文件路径) 在配置文件中 找到以
<Directory />
...
AllowOverride None
...
</Directory>
1.2 [高危]
确保默认情况下拒绝访问OS根目录 访问控制
描述
当AllowOverride设置为None时,.htaccess文件不具有访问上下文权限。当此指令设置为All时,任何具有.htaccess .htaccess文件中允许使用上下文。开启时增加了更改或查看配置的风险
意外或恶意的.htaccess文件不当使用
检查提示
配置文件路径:/www/server/apache/conf/httpd.conf
加固建议
找到配置文件路径。 通过vim path(path为主配置文件的绝对路径,如果您的主配置文件中包含include
<Directory />
...
Require all denied
...
</Directory>
如没有,请增加
1.3 [高危]
确保apache目录和文件归root所有 文件权限
描述
Apache目录和文件应归root所有。这适用于所有Apache软件目录和文件已安装。限制Apache文件和目录的所有权将减少很多未经授权的修改。
加固建议
在$APACHE_PREFIX
目录($APACHE_PREFIX为apache文件存放路径,例 /usr/local/apache2
或/var/www/html
如自定义请自行查找)上设置所有权执行以下操作进行补救 chown -R root $APACHE_PREFIX
如果您的业务涉及到文件上传修改删除等操作修改后可能会产生影响,建议忽略该项(添加白名单)
1.4 [高危]
版本存在安全漏洞 入侵防范
描述
Apache httpd 以下版本存在安全问题,容易被入侵:
- Apache 2.4.48及之前版本存在mod_proxy 模块 SSRF漏洞。https://avd.aliyun.com/detail?id=AVD-2021-40438 。
- Apache 2.4.49-2.4.50版本存在路径穿越与命令执行漏洞。https://avd.aliyun.com/detail?id=AVD-2021-42013, https://avd.aliyun.com/detail?id=AVD-2021-41773 。
- Apache2.4.0-2.4.29版本存在解析漏洞。 https://avd.aliyun.com/detail?id=AVD-2017-15715 。
- Apache 2.2.0-2.2.12存在身份验证绕过漏洞,第三方模块在身份验证阶段使用ap_get_basic_auth_pw(),会导致绕过身份验证要求。 https://avd.aliyun.com/detail?id=AVD-2017-3167 。
- Apache 2.2.0-2.2.12和2.4.24-2.4.25存在拒绝服务漏洞。 https://avd.aliyun.com/detail?id=AVD-2017-3169 ,https://avd.aliyun.com/detail?id=AVD-2017-7659 。
- Apache 2.2.0-2。2.12存在ACL绕过漏洞。 https://avd.aliyun.com/detail?id=AVD-2017-7668 。
- Apache 2.2.0-2.2.32和2.4.0-2.4.25存在mod_mime缓冲区溢出漏洞。 https://avd.aliyun.com/detail?id=AVD-2017-7679 。
加固建议
更新服务至最新的安全版本,完成漏洞的修复,这些漏洞基于未授权访问或者服务存在弱口令,完成访问认证加固可降低被入侵风险。
1.5 [中危]
确保apache用户帐户具有无效的shell 身份鉴别
描述
apache帐户不得用作常规登录帐户,因此应为其分配一个
无效或nologin Shell
,以确保无法用于登录。如果可以使用服务帐户(例如apache帐户)进行登录外壳到系统将会产生安全隐患。
加固建议
为确保apache用户帐户具有无效的shell,使用命令chsh -s /sbin/nologin <apache_username>
修改apache账户的shell(可以使用命令ps -ef | egrep "apache2|httpd"
查看<apache_username>)
1.6 [中危]
确保禁用http跟踪方法 服务配置
描述
TRACE方法不需要,并且很容易受到滥用,因此应该将其禁用。
检查提示
配置文件路径:/www/server/apache/conf/httpd.conf
加固建议
1.vim path(path为主配置文件的绝对路径,如果您的主配置文件中包含include
2.找到选项TraceEnable将其值设置为off 如没有请增加
1.7 [中危]
确保Web根目录的选项受到限制 禁止Apache列表显示文件 数据保密性
描述
Web根目录或文档根目录级别的Options指令应限于所需的最少选项。 强烈建议设置为“无”。 但是,在这个水平上如果支持多种语言,则可能出现问题。 如没有此类需要,需启动
检查提示
配置文件路径:/www/server/apache/conf/httpd.conf
加固建议
1.使用 vim path (path为主配置文件的绝对路径,如果您的主配置文件中包含include ,则
2.找到/usr/local/apache2
或/var/www/html
,自定义路径请自行查找)
<Directory "apache存放网页路径"> Options Indexes FollowSymLinks </Directory>
将其设置为 Options None 如配置虚拟主机,请确保虚拟主机配置项中含有Options None 如没有,请增加
1.8 [中危]
确保超时设置正确 入侵防范
描述
DoS的一种常用技术,常见的是发起与服务器的连接。 通过减少旧连接超时后,服务器可以更快,更多地释放资源反应灵敏。 通过提高服务器效率,它将对DoS攻击的抵御性更好
检查提示
配置文件路径::/www/server/apache/conf/httpd.conf
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path(path为apache配置文件路径例/usr/local/apache2/etc/httpd.conf
或/etc/httpd/conf/httpd.conf
或查找include文件或自定义安装请自行查找)
2.找到Timeout将其设置为Timeout 10 如没有,请增加
1.9 [中危]
确保正确配置服务器访问日志 配置日志
描述
出于多种原因,服务器访问日志非常宝贵。 他们可以用来确定最常使用的资源。 最重要的是,它们可以用来调查异常行为,他们可以直接表明攻击即将发生或已经发生了。 如果服务器仅记录错误而不记录成功访问,调查类似事件就非常困难,您可能会看到错误止,但是找不出攻击者是谁,是否攻击成功等信息。
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path(path为主配置文件的绝对路径,如果您的主配置文件中包含include ,则
2.找到LogFormat 将其设置为LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
找到CustomLog将其设置为CustomLog logs/access_log combined
如没有,请增加
1.10 [中危]
禁用CGI模块 入侵防范
描述
默认安装的cgi脚本会提供许多服务器配置细节。且启用cgi脚本可能导致远程代码执行,如不需要,建议删除该项配置。
加固建议
编辑配置文件,搜索关键词cgi_module,去掉所有与cgi相关的LoadModule 语句;
编辑配置文件,搜索关键词cgi-bin,将cgi-bin目录的配置删除或者注释掉;
根据配置文件中的DocumentRoot项找到主文件目录,删除路径下的cgi-bin目录中的文件;
保存并重启服务。
1.11 [低危]
确保keepAlive已启用 服务配置
描述
允许每个客户端重用TCP套接字,减少了系统和网络的数量
服务请求所需的资源。 这种效率提高可以提高服务器对DoS攻击的抵御性
检查提示
配置文件路径::/www/server/apache/conf/httpd.conf
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path(path为主配置文件的绝对路径,如果您的主配置文件中包含include
2.找到KeepAlive将其设置为 KeepAlive On 如没有,请增加该项
1.12 [低危]
确保错误日志文件名和严重性级别配置正确 配置日志
描述
服务器错误日志非常宝贵,因为它们可用于发现潜在问题
在他们变得认真之前。 最重要的是,它们可以用来监视异常
行为,例如许多“未找到”或“未经授权”的错误,可能表明
攻击即将发生或已经发生。
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path (path为主配置文件的绝对路径,如果您的主配置文件中包含include ,则
2.找到LogLevel 将其设置为LogLevel notice 3.找到ErrorLog 建议设置为ErrorLog "logs/error_log"`或自定义路径 如没有,请增加
1.13 [中危]
确保已锁定apache用户帐户 身份鉴别
描述
Apache运行下的用户帐户不应该有一个有效的密码,而应该被锁住。作为深度防御措施,应该锁定Apache用户帐户以防止登录并防止用户使用该密码诉诸于Apache。 一般而言,su不能当作apache账户,在必要时应使用sudo。这样将不需要apache的帐户密码。
加固建议
使用如下passwd命令锁定apache帐户: passwd -l <apache_username>
或者usermod -L <apache_username> <apache_username>
为apache的启动账户(可以使用命令ps -ef | egrep "apache2|httpd"
查看<apache_username>)
1.14 [中危]
确保限制对apache目录和文件的其他写访问 文件权限
描述
Apache目录上的权限应为rwxr-xr-x(755)和文件权限应相似,除非适当,否则不可执行。 这适用于所有已安装的Apache软件目录和文件
加固建议
执行以下操作删除$APACHE_PREFIX
($ APACHE_PREFIX是apache的安装目录默认例/usr/local/apache2
或/var/www/html
如自定义请自行查找)目录上的其他写访问权限: chmod -R o-w $ APACHE_PREFIX
1.15 [中危]
确保正确设置KeepAliveTimeout 入侵防范
描述
KeepAliveTimeout指令指定Apache等待等待的秒数在关闭保持活动的连接之前的后续请求。减少Apache HTTP服务器保留未使用资源的秒数分配的资源将增加服务其他请求的资源的可用性。 这个效率收益可能会提高服务器抵御DoS攻击的能力。
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path(path为主配置文件的绝对路径,如果您的主配置文件中包含include
2.找到KeepAliveTimeout将其设置为 KeepAliveTimeout 15 如没有,请增加
1.16 [中危]
禁用WebDAV模块 入侵防范
描述
mod_dav和mod_dav_fs模块支持Apache的WebDAV功能。 WebDAV是HTTP协议的扩展,允许客户端创建,移动和删除Web服务器上的文件和资源,存在安全隐患。
加固建议
编辑配置文件,搜索关键词dav_module,注释或删除dav_module模块的LoadModule 指令;
编辑配置文件,搜索关键词mod_dav_fs,注释或删除mod_dav_fs模块的LoadModule 指令;
编辑配置文件,增加/修改配置项:Dav Off ;
修改完成后保存并重启服务。
1.17 [低危]
配置专门用户账号和组用于运行Apache 身份鉴别
描述
为服务器应用程序创建一个唯一的,没有特权的用户和组.有效的减少了运行web服务时遭受攻击的可能性
加固建议
确保apache帐户是唯一的,并且Apache组在apache的配置文件中配置。 请确认 User apache Group apache 出现一次,且没有被注释。(如果没有,请添加)
1.18 [低危]
隐藏 Apache 的版本号及其它敏感信息确保未启用服务器签名不存在或者off 个人信息保护
描述
服务器签名在服务器充当代理时很有用,因为它们有助于
用户将错误与代理而非目标服务器区分开。 但是,在这个
在上下文中,显得很鸡肋,而且存在被识别的可能
加固建议
1.使用vim编辑器对配置文件进行编辑 vim pathpath为主配置文件的绝对路径,如果您的主配置文件中包含include
2.找到ServerSignature将其设置为ServerSignature Off
3.找到ServerTokens将其设置为ServerTokens Prod 如没有,请增加
1.19 [低危]
确保MaxKeepAliveRequests设置为适当值 入侵防范
描述
MaxKeepAliveRequests指令限制每个连接允许的请求数打开KeepAlive时。 如果将其设置为0,则将允许无限制的请求。 推荐
将MaxKeepAliveRequests指令设置为100,以防患DoS攻击
加固建议
1.使用vim编辑器对配置文件进行编辑 vim path (path为主配置文件的绝对路径,如果您的主配置文件中包含include
2.找到MaxKeepAliveRequests将其设置为 MaxKeepAliveRequests 100 如没有,请增加