收到阿里云邮件,提示有 4 个基线问题待处理。
登录控制台查看,还挺有用,此系列文章将逐条记录基线问题检查的项目。首先记录 Nginx。
Contents
Nginx后端服务指定的Header隐藏状态
描述
隐藏 Nginx 后端服务 X-Powered-By
头
加固建议
隐藏 Nginx 后端服务指定 Header
的状态:
- 打开
conf/nginx.conf
配置文件; - 在
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 访问日志记录:
- 打开
conf/nginx.conf
配置文件; - 在
http
下配置access_log
项access_log logs/host.access.log main
; - 并删除off项
操作时建议做好记录或备份
检查是否配置Nginx账号锁定策略
描述
- 执行系统命令
passwd -S nginx
来查看锁定状态
出现Password locked
证明锁定成功
如:nginx LK ….. (Password locked.)或nginx L ….
- 默认符合,修改后才有(默认已符合)
- 执行系统命令passwd -l nginx进行锁定
加固建议
配置 Nginx 账号登录锁定策略: Nginx 服务建议使用非 root
用户(如 nginx
,nobody
)启动,并且确保启动用户的状态为锁定状态。可执行 passwd -l <Nginx启动用户>
如 passwd -l nginx
来锁定 Nginx 服务的启动用户。命令 passwd -S <用户>
如 passwd -S nginx
可查看用户状态。 修改配置文件中的 nginx
启动用户修改为 nginx
或 nobody
如: user nobody
; 如果您是 docker
用户,可忽略该项(或添加白名单)
操作时建议做好记录或备份
检查Nginx进程启动账号
描述
Nginx 进程启动账号状态,降低被攻击概率
加固建议
修改 Nginx 进程启动账号:
- 打开
conf/nginx.conf
配置文件; - 查看配置文件的
user
配置项,确认是非root
启动的; - 如果是
root
启动,修改成nobody
或者nginx
账号; - 修改完配置文件之后需要重新启动 Nginx。
操作时建议做好记录或备份
隐藏Nginx服务的Banner
描述
Nginx 服务的 Banner 隐藏状态
加固建议
Nginx 后端服务指定的 Header 隐藏状态隐藏 Nginx 服务 Banner 的状态:
- 打开
conf/nginx.conf
配置文件; - 在
server
栏目下,配置server_tokens
项server_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:
- 打开
conf/nginx.cconf
配置文件(或主配置文件中的inlude
文件); - 配置
server {
...
ssl_protocols TLSv1.2;
...
}
备注:配置此项请确认 Nginx 支持 OpenSSL
,运行 nginx -V
如果返回中包含 built with OpenSSL
则表示支持 OpenSSL。 如出现多项不支持,执行 ln <conf_path> /etc/nginx/nginx.conf
操作时建议做好记录或备份
发表回复