阿里云安全基线之Nginx

收到阿里云邮件,提示有 4 个基线问题待处理。

登录控制台查看,还挺有用,此系列文章将逐条记录基线问题检查的项目。首先记录 Nginx。

Nginx后端服务指定的Header隐藏状态

描述

隐藏 Nginx 后端服务 X-Powered-By

加固建议

隐藏 Nginx 后端服务指定 Header 的状态:

  1. 打开 conf/nginx.conf 配置文件;
  2. http 下配置 proxy_hide_header 项; 增加或修改为 proxy_hide_header X-Powered-By; proxy_hide_header Server;

操作时建议做好记录或备份

fastcgi_hide_header

Nginx 作为反向代理时,即 Nginx 后端是其他 Web Server,可以用 proxy_hide_header 来隐藏 Header。但是当 Nginx 作为 Web Server时(例如 Nginx+PHP-FPM),需要使用 fastcgi_hide_header 来隐藏 Header,特别是 PHP 相关的 Header。因此,建议配置为:

	proxy_hide_header X-Powered-By;
	proxy_hide_header Server;
	fastcgi_hide_header X-Powered-By;
	fastcgi_hide_header Server;

Nginx的WEB访问日志记录状态

描述

应为每个核心站点启用 access_log 指令。默认情况下启用。

加固建议

开启 Nginx 的 WEB 访问日志记录:

  1. 打开 conf/nginx.conf 配置文件;
  2. http 下配置 access_log
    access_log logs/host.access.log main;
  3. 并删除off项

操作时建议做好记录或备份

检查是否配置Nginx账号锁定策略

描述

  1. 执行系统命令 passwd -S nginx 来查看锁定状态
    出现 Password locked 证明锁定成功
    如:nginx LK ….. (Password locked.)或nginx L ….
  2. 默认符合,修改后才有(默认已符合)
  3. 执行系统命令passwd -l nginx进行锁定

加固建议

配置 Nginx 账号登录锁定策略: Nginx 服务建议使用非 root 用户(如 nginxnobody )启动,并且确保启动用户的状态为锁定状态。可执行 passwd -l <Nginx启动用户>passwd -l nginx 来锁定 Nginx 服务的启动用户。命令 passwd -S <用户>passwd -S nginx 可查看用户状态。 修改配置文件中的 nginx 启动用户修改为 nginxnobody 如: user nobody; 如果您是 docker 用户,可忽略该项(或添加白名单)

操作时建议做好记录或备份

检查Nginx进程启动账号

描述

Nginx 进程启动账号状态,降低被攻击概率

加固建议

修改 Nginx 进程启动账号:

  1. 打开 conf/nginx.conf 配置文件;
  2. 查看配置文件的 user 配置项,确认是非 root 启动的;
  3. 如果是 root 启动,修改成 nobody 或者 nginx 账号;
  4. 修改完配置文件之后需要重新启动 Nginx。

操作时建议做好记录或备份

隐藏Nginx服务的Banner

描述

Nginx 服务的 Banner 隐藏状态

加固建议

Nginx 后端服务指定的 Header 隐藏状态隐藏 Nginx 服务 Banner 的状态:

  1. 打开 conf/nginx.conf 配置文件;
  2. server 栏目下,配置 server_tokensserver_tokens off; 如出现多项不支持,执行 ln <conf_path> /etc/nginx/nginx.conf

操作时建议做好记录或备份

补充

一般在 http 中配置 server_tokens off 即可,不需要单独在每个 server 里指定。

确保Nginx配置文件权限为644

描述

把控配置文件权限以抵御外来攻击

加固建议

修改 Nginx 配置文件权限: 执行 chmod 644 <conf_path> 来限制 Nginx 配置文件的权限;(<conf_path> 为配置文件的路径,如 默认/安装目录/conf/nginx.conf 或者 /etc/nginx/nginx.conf,或用户自定义,请 自行查找)

操作时建议做好记录或备份

针对Nginx SSL协议进行安全加固

描述

Nginx SSL 协议的加密策略进行加固

加固建议

Nginx SSL 协议采用TLSv1.2:

  1. 打开 conf/nginx.cconf 配置文件(或主配置文件中的 inlude 文件);
  2. 配置
server { 
   ...
   ssl_protocols TLSv1.2;
   ...
}

备注:配置此项请确认 Nginx 支持 OpenSSL,运行 nginx -V 如果返回中包含 built with OpenSSL 则表示支持 OpenSSL。 如出现多项不支持,执行 ln <conf_path> /etc/nginx/nginx.conf

操作时建议做好记录或备份

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注