8.5.2. nginx 服务器配置强化
通过调整安全选项来强化 Nginx HTTP 和代理服务器配置。这有助于保护您的系统免受常见 Web 应用程序漏洞的影响。
配置以下安全选项以防止常见的 Web 应用程序漏洞:
要禁用版本字符串,修改
server_tokens配置选项:server_tokens off;这个选项将停止显示其他详细信息,如服务器版本号。此配置仅显示 Nginx 提供的所有请求中的服务器名称,例如:
$ curl -sI http://localhost | grep Server Server: nginx在服务器或位置块中添加安全标头(在
/etc/nginx/nginx.conf或/etc/nginx/conf.d configured.conf文件中):例如,
X-Frame-Options标头选项拒绝您的域之外的任何页面来帧由 Nginx 提供的任何内容,缓解了攻击:add_header X-Frame-Options "SAMEORIGIN";例如,
x-content-type标头在某些较旧的浏览器中可以防止 MIME-type sniffing:add_header X-Content-Type-Options nosniff;例如,
X-XSS-Protection标头启用跨站点脚本过滤(XSS)过滤,这可防止浏览器渲染由 Nginx 中包含的潜在的恶意内容:add_header X-XSS-Protection "1; mode=block";
您可以限制公开的服务,并限制它们对访问者执行的操作,例如:
limit_except GET { allow 192.168.1.0/32; deny all; }该片段将限制对除
GET和HEAD外的所有方法的访问。您可以禁用 HTTP 方法,例如:
# Allow GET, PUT, POST; return "405 Method Not Allowed" for all others. if ( $request_method !~ ^(GET|PUT|POST)$ ) { return 405; }- 配置 TLS 以保护您的 Nginx web 服务器提供的数据。仅通过 HTTPS 提供内容。您可以使用 Mozilla SSL 配置生成器生成在 Nginx 服务器中启用 TLS 的安全配置配置文件。生成的配置可确保禁用已知存在安全漏洞的协议、密码和哈希算法。使用 SSL 服务器测试验证您的配置是否满足现代安全要求。