9.5. 保护 HTTP 服务器
9.5.1. httpd.conf 中的安全增强 复制链接链接已复制到粘贴板!
您可以通过在 /etc/httpd/conf/httpd.conf
文件中配置安全选项来提高 Apache HTTP 服务器的安全性。
在将脚本加入到生产环境前,需要验证它们是否可以正常工作。
确保只有 root
用户对包含脚本或通用网关接口(CGI)的任何目录具有写入权限。要将目录所有权改为具有写权限的 root
,请输入以下命令:
chown root <directory_name> chmod 755 <directory_name>
# chown root <directory_name>
# chmod 755 <directory_name>
在 /etc/httpd/conf/httpd.conf
文件中,您可以配置以下选项:
FollowSymLinks
- 这个指令默认为启用,并遵循目录中的符号链接。
索引
- 这个指令被默认启用。禁用这个指令,以防止访问者浏览服务器上的文件。
UserDir
-
这个指令默认为禁用,因为它可以确认系统中存在用户帐户。要激活用户目录浏览
/root/
以外的所有用户目录,使用UserDir enabled
和UserDir disabled
root 指令。要将用户添加到禁用帐户列表中,请在UserDir disabled
行中添加以空格分隔的用户列表。 ServerTokens
这个指令控制向客户端发送的服务器响应标头字段。您可以使用以下参数来自定义信息:
ServerTokens Full
提供所有可用信息,如 Web 服务器版本号、服务器操作系统详情、已安装的 Apache 模块,例如:
Apache/2.4.37 (Red Hat Enterprise Linux) MyMod/1.2
Apache/2.4.37 (Red Hat Enterprise Linux) MyMod/1.2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens Full-Release
提供与发行版本相关的所有可用信息,例如:
Apache/2.4.37 (Red Hat Enterprise Linux) (Release 41.module+el8.5.0+11772+c8e0c271)
Apache/2.4.37 (Red Hat Enterprise Linux) (Release 41.module+el8.5.0+11772+c8e0c271)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens Prod / ServerTokens ProductOnly
提供 Web 服务器名称,例如:
Apache
Apache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens Major
提供 Web 服务器主发行版本,例如:
Apache/2
Apache/2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens Minor
提供 Web 服务器次发行版本,例如:
Apache/2.4
Apache/2.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens Min
/ServerTokens Minimal
提供 Web 服务器最小发行版本,例如:
Apache/2.4.37
Apache/2.4.37
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServerTokens OS
提供 Web 服务器发行版本和操作系统,例如:
Apache/2.4.37 (Red Hat Enterprise Linux)
Apache/2.4.37 (Red Hat Enterprise Linux)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
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
echo '# All proxy modules disabled' > /etc/httpd/conf.modules.d/00-proxy.conf
9.5.2. 保护 Nginx 服务器配置 复制链接链接已复制到粘贴板!
Nginx 是一个高性能 HTTP 和代理服务器。您可以使用以下配置选项强化 Nginx 配置。
流程
要禁用版本字符串,修改
server_tokens
配置选项:server_tokens off;
server_tokens off;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个选项将停止显示其他详细信息,如服务器版本号。此配置仅显示 Nginx 提供的所有请求中的服务器名称,例如:
curl -sI http://localhost | grep Server
$ curl -sI http://localhost | grep Server Server: nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加额外的安全标头,以缓解特定
/etc/nginx/
conf 文件中的某些已知 Web 应用程序漏洞:例如,
X-Frame-Options
标头选项拒绝您的域之外的任何页面来帧由 Nginx 提供的任何内容,缓解了攻击:add_header X-Frame-Options "SAMEORIGIN";
add_header X-Frame-Options "SAMEORIGIN";
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,
x-content-type
标头在某些较旧的浏览器中可以防止 MIME-type sniffing:add_header X-Content-Type-Options nosniff;
add_header X-Content-Type-Options nosniff;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,
X-XSS-Protection
标头启用跨站点脚本过滤(XSS)过滤,这可防止浏览器渲染由 Nginx 中包含的潜在的恶意内容:add_header X-XSS-Protection "1; mode=block";
add_header X-XSS-Protection "1; mode=block";
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以限制公开的服务,并限制它们对访问者执行的操作,例如:
limit_except GET { allow 192.168.1.0/32; deny all; }
limit_except GET { allow 192.168.1.0/32; deny all; }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该片段将限制对除
GET
和HEAD
外的所有方法的访问。您可以禁用 HTTP 方法,例如:
Allow GET, PUT, POST; return "405 Method Not Allowed" for all others.
# Allow GET, PUT, POST; return "405 Method Not Allowed" for all others. if ( $request_method !~ ^(GET|PUT|POST)$ ) { return 405; }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 您可以配置 SSL 来保护 Nginx web 服务器提供的数据,请考虑仅通过 HTTPS 提供它。另外,您可以使用 Mozilla SSL 配置生成器生成在 Nginx 服务器中启用 SSL 的安全配置配置文件。生成的配置确保了,所有已知存在安全漏洞的协议(例如, SSLv2 和 SSLv3),加密程序和哈希算法(例如 3DES 和 MD5) 都已禁用。您还可以使用 SSL 服务器测试来验证您的配置是否满足现代安全要求。