7.5. 保护 HTTP 服务器
7.5.1. httpd.conf 中的安全增强 复制链接链接已复制到粘贴板!
您可以通过在 /etc/httpd/conf/httpd.conf 文件中配置安全选项来提高 Apache HTTP 服务器的安全性。
在将脚本加入到生产环境前,需要验证它们是否可以正常工作。
确保只有 root 用户对包含脚本或通用网关接口(CGI)的任何目录具有写入权限。要将目录所有权改为具有写权限的 root,请输入以下命令:
# chown root <directory_name>
# chmod 755 <directory_name>
在 /etc/httpd/conf/httpd.conf 文件中,您可以配置以下选项:
FollowSymLinks- 这个指令默认为启用,并遵循目录中的符号链接。
索引- 这个指令被默认启用。禁用这个指令,以防止访问者浏览服务器上的文件。
UserDir-
这个指令默认为禁用,因为它可以确认系统中存在用户帐户。要激活用户目录浏览
/root/以外的所有用户目录,使用UserDir enabled和UserDir disabledroot 指令。要将用户添加到禁用帐户列表中,请在UserDir disabled行中添加以空格分隔的用户列表。 ServerTokens这个指令控制向客户端发送的服务器响应标头字段。您可以使用以下参数来自定义信息:
ServerTokens Full提供所有可用信息,如 Web 服务器版本号、服务器操作系统详情、已安装的 Apache 模块,例如:
Apache/2.4.37 (Red Hat Enterprise Linux) MyMod/1.2ServerTokens Full-Release提供与发行版本相关的所有可用信息,例如:
Apache/2.4.37 (Red Hat Enterprise Linux) (Release 41.module+el8.5.0+11772+c8e0c271)ServerTokens Prod / ServerTokens ProductOnly提供 Web 服务器名称,例如:
ApacheServerTokens Major提供 Web 服务器主发行版本,例如:
Apache/2ServerTokens Minor提供 Web 服务器次发行版本,例如:
Apache/2.4ServerTokens Min/ServerTokens Minimal提供 Web 服务器最小发行版本,例如:
Apache/2.4.37ServerTokens OS提供 Web 服务器发行版本和操作系统,例如:
Apache/2.4.37 (Red Hat Enterprise Linux)使用
ServerTokens Prod选项降低攻击者获取任何有关您系统的有价值信息的风险。
不要删除 IncludesNoExec 指令。默认情况下,Server Side Includes (SSI) 模块无法执行命令。更改这个设置可让攻击者在系统中输入命令。
删除 httpd 模块
您可以删除 httpd 模块来限制 HTTP 服务器的功能。编辑 /etc/httpd/conf.modules.d/ 或 /etc/httpd/conf.d/ 目录中的配置文件。例如,要删除代理模块:
echo '# All proxy modules disabled' > /etc/httpd/conf.modules.d/00-proxy.conf