等保2.0测评 — Nginx 中间件

admin 2023年10月26日02:07:11评论63 views字数 2896阅读9分39秒阅读模式

知识宝库在此藏,一键关注获宝藏

nginx是一个功能非常强大的web服务器加反向代理服务器,在项目使用中,使用最多的三个核心功能是反向代理、负载均衡和静态服务器。测评过程中,在写主要功能时要区分。

等保2.0测评 — Nginx 中间件


这三个不同的功能的使用,都跟nginx的配置密切相关,nginx服务器的配置信息主要集中在nginx.conf这个配置文件中,主要由6个部分组成:

● main:用于进行nginx全局信息的配置

● events:用于nginx工作模式的配置

● http:用于进行http协议信息的一些配置

● server:用于进行服务器访问信息的配置

● location:用于进行访问路由的配置

● upstream:用于进行负载均衡的配置

身份鉴别、访问控制是通过本地登录进行管理,这里就主要介绍下安全审计大点。

一、安全审计

这里我们关注的主要是main 全局配置模块

等保2.0测评 — Nginx 中间件

等保2.0测评 — Nginx 中间件

● user 用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行

● worker_processes 指定nginx要开启的子进程数量,运行过程中监控每个进程消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍

● error_log 定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】

● pid 用来指定进程id的存储文件的位置

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

针对于各类的中间件来说,日志一般会分为两种,一种是 error.log 错误日志,另一种是 access.log 网页访问日志。都开启的情况下,我们就可以判符合(前提日志级别配置正确)。

查看nginx.conf 配置文件:

等保2.0测评 — Nginx 中间件


等保2.0测评 — Nginx 中间件

等保2.0测评 — Nginx 中间件

若为注释状态,则为默认值:

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:
访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义。通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息。

access_log: 用来配置访问日志的输出格式和输出的路径;

语法: access_log path [format [buffer=size [flush=time]]];
● path:指定日志的存放位置
● format:指定日志的格式。默认使用预定义的combined
● buffer:用来指定日志写入时的缓存大小。默认是64k
● gzip:日志写入前先进行压缩。压缩率可指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢。默认是1。
● flush:设置缓存的有效时间。如果超过flush指定的时间,缓存中的内容将被清空。

● if:条件判断。如果指定的条件计算为0或空字符,那么当前作用域下的所有的请求日志都会被关闭。

默认值: access_log logs/access.log main;

配置段: http, server, location, if in location, limit_except

关闭access_log:access_log off


b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

我们查看配置文件可找到对应日志记录文件位置,并确定当前系统时间是否准确(日志时间一般跟随系统时间)
等保2.0测评 — Nginx 中间件
具体记录了什么内容,access日志通过 log_format 参数来进行配置

等保2.0测评 — Nginx 中间件

log_format:用来设置日志格式

nginx的log_format有很多可选的参数用于标示服务器的活动状态,默认为:

‘$remote_addr – $remote_user [$time_local] “$request” ‘

‘$status $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent” “$http_x_forwarded_for”‘;
如果要记录更详细的信息需要自己修改log_format,具体可设置的参数格式及说明如下,抽取一条日志:
等保2.0测评 — Nginx 中间件
192.168.12.24 - - [23/Oct/2023:13:43:17 +0800] "GET /img/centos-logo.png HTTP/1.1" 200 3030 "http://172.17.200.17/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0" "-"

参数

说明

示例

$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

等保2.0测评 — Nginx 中间件

Windows系统下,确保仅管理员用户,或管理Nginx用户具有相应权限

等保2.0测评 — Nginx 中间件

② 确认是否做定期备份

询问管理人员是否有备份措施对该中间件日志进行备份

③ 查看日志留存时间是否达到6个月以上,满足法律法规要求

默认情况下不轮替日志,需要人工手动删除,查看当前是否留存6个月以上的日志

d)应对审计进程进行保护,防止未经授权的中断

审计进程与中间件主进程关联,无法单独中断审计进程,只要开启即符合。除非直接关闭中间件主进程,未授权用户无法直接关闭。

等保2.0测评 — Nginx 中间件

原文始发于微信公众号(等保不好做啊):等保2.0测评 — Nginx 中间件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月26日02:07:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   等保2.0测评 — Nginx 中间件https://cn-sec.com/archives/2141298.html

发表评论

匿名网友 填写信息