知识宝库在此藏,一键关注获宝藏
● main:用于进行nginx全局信息的配置
● events:用于nginx工作模式的配置
● http:用于进行http协议信息的一些配置
● server:用于进行服务器访问信息的配置
● location:用于进行访问路由的配置
● upstream:用于进行负载均衡的配置
身份鉴别、访问控制是通过本地登录进行管理,这里就主要介绍下安全审计大点。
一、安全审计
● user 用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行
● worker_processes 指定nginx要开启的子进程数量,运行过程中监控每个进程消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍
● error_log 定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
error_log logs/error.log error;
access_log logs/access.log main;
① 我们先来看一下 error.log:
error_log:设置服务器运行的相关日志
设置格式 error_log 路径 级别
默认值:error_log logs/error.log error;
配置段:main,http,server,location
关闭 error_log:error_log off
debug: 调试级别,记录的信息最多;
info: 普通级别;
notice: 可能需要注意的信息;
warn: 警告消息;
error: 错误消息;
crit: 严重错误消息;
access_log: 用来配置访问日志的输出格式和输出的路径;
● if:条件判断。如果指定的条件计算为0或空字符,那么当前作用域下的所有的请求日志都会被关闭。
默认值: access_log logs/access.log main;
配置段: http, server, location, if in location, limit_except
关闭access_log:access_log off
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
log_format:用来设置日志格式
nginx的log_format有很多可选的参数用于标示服务器的活动状态,默认为:
‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
参数 |
说明 |
示例 |
$remote_addr |
客户端地址 |
192.168.12.24 |
$remote_user |
客户端用户名称 |
-- |
$time_local |
访问时间和时间 |
[23/Oct/2023:13:43:17 +0800] |
$request |
请求的URI和HTTP协议 |
GET /img/centos-logo.png HTTP/1.1 |
$http_host |
请求地址,即浏览器中你输入的地址(域名或IP) |
www.test.com http://172.17.200.17/ |
$status |
HTTP请求状态 |
200 |
$body_bytes_sent |
服务器发送客户端的相应body字节数 |
3030 |
$http_referer |
url跳转来源 |
- |
$http_user_agent |
用户终端浏览器等信息 |
"Mozilla/5.0 (Windows NT……" |
$http_x_forwarded_for |
当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置 |
- |
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等
① 确认当前日志文件权限
Linux系统下,日志权限不超过644
Windows系统下,确保仅管理员用户,或管理Nginx用户具有相应权限
② 确认是否做定期备份
询问管理人员是否有备份措施对该中间件日志进行备份。
③ 查看日志留存时间是否达到6个月以上,满足法律法规要求
d)应对审计进程进行保护,防止未经授权的中断
原文始发于微信公众号(等保不好做啊):等保2.0测评 — Nginx 中间件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论