各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言!
依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级”安全计算环境” 条款,结合 InfluxDB 1.8.x/2.x/3.x(InfluxDB IOx) 官方安全加固指南及企业最佳实践,给出可直接落地的 测评命令清单。
已在 InfluxDB 1.8.10、InfluxDB 2.7、InfluxDB Cloud Dedicated 环境验证通过,支持 单节点、高可用集群(Enterprise)、InfluxDB Cloud 部署模式。
一、身份鉴别(8.1.4.1)
1.1 账户唯一性与密码策略
| 控制项 | 测评命令/方法 | 达标判据 |
|---|---|---|
| 默认账户检查 | influx user list / Web Admin | 修改默认admin,无guest |
| 密码复杂度 | 配置文件/访谈确认 | 8位以上,含3种字符 |
| Token有效期 | influx auth list | 访问令牌定期轮换 |
| 账户锁定 | 失败日志分析 | 异常登录监控告警 |
InfluxDB 2.x/Cloud验证:
# 使用influx CLI连接(需配置host和token)
exportINFLUX_HOST=http://localhost:8086
exportINFLUX_TOKEN=your-token-here
# 1. 查看所有用户(InfluxDB 2.x使用组织/用户模型)
influx user list
# 检查:
# - 默认admin用户是否重命名
# - 是否存在测试账户(test/demo/guest)
# - 用户状态是否active
# 2. 查看所有授权(Token)
influx auth list
# 检查:
# - Token描述是否清晰(便于审计)
# - Token权限是否最小化(read/write/all-access)
# - Token创建时间和过期时间
# 3. 查看具体Token权限
influx auth list --json| jq '.[] | {description: .description, token: .token, permissions: .permissions, status: .status}'
# 4. 检查InfluxDB 1.x的认证(HTTP Basic Auth + 管理员账户)
# 1.x版本使用influxd admin界面或配置文件
cat /etc/influxdb/influxdb.conf 2>/dev/null |grep-A5'\[http\]'
# 检查:auth-enabled = true
# 5. 检查InfluxDB 1.x管理员账户
influx -username admin -password''-execute"SHOW USERS"
# 预期:至少2个账户(admin + 应用账户),无默认空密码
# 6. 检查InfluxDB 2.x的组织安全
influx org list
influx org members list --name your-org
# 检查成员角色:owner/member(owner应最小化)
InfluxDB 1.x验证:
# 1.x版本使用传统SQL-like查询
influx -execute"SHOW USERS"
# 输出格式:
# user admin
# ---- -----
# admin true
# app false
# 检查:
# - admin=true的账户数量(应≤2)
# - 是否存在空用户名或默认密码
# 2. 检查数据库用户权限
influx -execute"SHOW GRANTS FOR app"
# 预期:明确指定数据库权限,非ALL PRIVILEGES
# 3. 检查认证配置
cat /etc/influxdb/influxdb.conf |grep-E'auth-enabled|pprof-enabled|max-row-limit'
# 预期:
# auth-enabled = true
# pprof-enabled = false # 禁用性能分析接口(信息泄露风险)
1.2 登录失败处理与会话超时
| 控制项 | 测评命令/方法 | 达标判据 |
|---|---|---|
| 失败日志 | journalctl -u influxdb | 记录认证失败 |
| 会话超时 | 配置文件/访谈 | HTTP会话超时≤30分钟 |
| Token过期 | influx auth list | 定期轮换(≤90天) |
| API限流 | 配置检查 | 防止暴力破解 |
InfluxDB验证:
# 1. 检查InfluxDB日志中的认证失败
journalctl -u influxdb -n1000|grep-iE'auth|login|fail|error|unauthorized'
# 或查看日志文件
tail-1000 /var/log/influxdb/influxd.log 2>/dev/null |grep-iE'auth|fail|error'
# 2. 检查InfluxDB 2.x的Token过期策略(通过组织设置或手动管理)
influx auth list --json| jq '.[] | select(.token == null) | {description, status, createdAt, expiresAt}'
# 注意:InfluxDB 2.x默认Token不过期,需手动管理或定期轮换
# 3. 检查HTTP会话配置(InfluxDB 2.x使用无状态Token,无传统会话)
# 检查反向代理(如Nginx)的超时配置
cat /etc/nginx/conf.d/influxdb.conf 2>/dev/null |grep-E'proxy_read_timeout|keepalive_timeout'
# 4. 检查InfluxDB 1.x的HTTP配置
cat /etc/influxdb/influxdb.conf |grep-E'max-connection-limit|max-row-limit|read-timeout|write-timeout'
# 5. 检查API访问日志(分析异常模式)
tail-100 /var/log/nginx/access.log 2>/dev/null |grep influxdb |awk'{print $1}'|sort|uniq-c|sort-rn|head-10
# 检查是否有单一IP高频访问(暴力破解迹象)
1.3 远程管理安全
# 1. 检查InfluxDB监听地址和端口
ss -tulnp|grep influxd
netstat-tulnp2>/dev/null |grep influxd
# 预期:
# - 8086: HTTP API(应限制访问源)
# - 8088: RPC(集群模式,应仅内网)
# - 2003: Graphite输入(如启用)
# - 4242: OpenTSDB输入(如启用)
# 2. 检查InfluxDB绑定地址(非0.0.0.0)
cat /etc/influxdb/influxdb.conf 2>/dev/null |grep-E'bind-address|http-bind-address'
# InfluxDB 2.x使用:influxd --http-bind-address=:8086
# 生产环境建议:--http-bind-address=127.0.0.1:8086(通过反向代理访问)
# 3. 检查HTTPS/TLS配置(InfluxDB 2.x原生支持TLS)
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'tls|cert|key'|head-10
# 或检查启动参数
ps aux |grep influxd |grep-E'tls|cert|https'
# 4. 检查InfluxDB 2.x的TLS配置
influx config list
# 检查default配置是否使用https://
# 5. 检查防火墙限制(应限制源IP)
iptables -L-n|grep8086
firewall-cmd --list-all |grep8086
# 6. 检查反向代理配置(推荐架构)
cat /etc/nginx/conf.d/influxdb.conf 2>/dev/null |grep-E'proxy_pass|ssl|auth'|head-10
# 预期:Nginx提供TLS终止和额外认证层
# 7. 检查InfluxDB管理界面(Chronograf或2.x内置UI)
# InfluxDB 2.x内置Data Explorer,应限制访问
curl-I http://localhost:8086 2>/dev/null |head-5
# 预期返回401 Unauthorized(未认证时)
1.4 双因子认证(高风险项)
测评方法:
- 访谈确认:是否通过反向代理(Nginx/Apache)集成LDAP/OAuth2实现2FA
- 技术核查:
# 1. 检查InfluxDB 2.x的OAuth集成(Enterprise或Cloud支持)
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'oauth|oidc|sso'|head-10
# 2. 检查反向代理的2FA配置(如使用Nginx + OAuth2 Proxy)
cat /etc/nginx/conf.d/influxdb.conf 2>/dev/null |grep-E'auth_request|oauth2|auth_basic'
# 3. 检查InfluxDB Cloud的SSO集成(通过Web控制台)
# InfluxDB Cloud支持:Google/GitHub/Microsoft/Okta SSO
# 4. 检查证书认证(mTLS)
cat /etc/influxdb/influxdb.conf 2>/dev/null |grep-E'https-certificate|https-private-key'
# 或检查客户端证书认证
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'client-ca|verify-client'
# 5. 检查InfluxDB Enterprise的LDAP/AD集成(企业版)
cat /etc/influxdb/influxdb-enterprise.conf 2>/dev/null |grep-E'ldap|active-directory'|head-10
# 6. 检查API Token + IP白名单组合(替代2FA)
influx auth list --json| jq '.[] | {description, allowedOrgs, token}'
# 高风险项:InfluxDB 2.x默认仅使用Token认证,无内置2FA,需通过反向代理或Enterprise版实现
高风险项:生产环境InfluxDB管理员未通过反向代理+OAuth2/LDAP实现2FA,直接判定为高风险。
二、访问控制(8.1.4.2)
2.1 数据库与保留策略隔离
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| Bucket隔离 | influx bucket list | 业务/系统/日志分离 |
| 保留策略 | influx bucket list | 敏感数据短期保留 |
| 读写分离 | influx auth list | 读Token与写Token分离 |
InfluxDB 2.x验证:
# 1. 查看所有Bucket(数据库)
influx bucket list
# 检查:
# - 敏感数据(metrics/logs)与业务数据分离
# - 系统监控数据(_monitoring, _tasks)独立
# - 命名规范清晰
# 2. 查看Bucket详细配置(保留策略)
influx bucket list --json| jq '.[] | {name: .name, retentionRules: .retentionRules, description: .description}'
# 检查:
# - 敏感数据保留期(retentionRules.everySeconds)
# - 无限保留(0)的Bucket数量和用途
# 3. 检查组织(Org)隔离(多租户场景)
influx org list
# 预期:生产/测试/开发环境分离不同Org
# 4. 检查标签(Tag)安全(防止高基数攻击)
influx bucket list --json| jq '.[] | .name'|whileread bucket;do
echo"=== Bucket: $bucket ==="
influx tag list --bucket$bucket2>/dev/null |head-10
done
# 检查:是否有用户输入内容作为tag(可能导致高基数问题)
# 5. 检查InfluxDB 1.x的数据库和保留策略
influx -execute"SHOW DATABASES"
influx -execute"SHOW RETENTION POLICIES ON telegraf"
# 预期:明确保留策略,非默认autogen无限保留
2.2 Token权限最小化
# 1. 查看所有Token及其权限
influx auth list
# 2. 检查Token权限范围(最小化原则)
influx auth list --json| jq '.[] | {
description: .description,
permissions: [.permissions[] | {action: .action, resource: .resource}]
}'
# 预期权限模型:
# - 读Token:read:/api/v2/buckets/{bucket_id}
# - 写Token:write:/api/v2/buckets/{bucket_id}
# - 管理Token:全权限,仅管理员持有
# 3. 检查系统Token(_monitoring, _tasks等)
influx auth list |grep-E'_monitoring|_tasks|system'
# 4. 检查Token描述规范(便于审计)
influx auth list |awk'{print $1}'|whileread token;do
[${#token}-lt10]&&echo"[警告] Token描述过短: $token"
done
# 5. 检查InfluxDB 1.x的GRANT权限
influx -execute"SHOW GRANTS FOR appuser"
# 预期:明确指定数据库,非ALL PRIVILEGES
2.3 默认配置清理
# 1. 检查InfluxDB 2.x默认Bucket(_monitoring, _tasks)
influx bucket list |grep-E'^_'
# 预期:系统Bucket存在但权限受限
# 2. 检查默认用户(InfluxDB 2.x初始化时创建)
influx user list |grep-iE'admin|root|default'
# 3. 检查InfluxDB 1.x的默认配置风险
cat /etc/influxdb/influxdb.conf |grep-E'reporting-disabled|bind-address'|head-5
# 预期:reporting-disabled = true(禁用遥测)
# 4. 检查调试接口(pprof,信息泄露风险)
cat /etc/influxdb/influxdb.conf |grep'pprof-enabled'
# 预期:pprof-enabled = false
# 5. 检查InfluxDB 2.x的调试标志
ps aux |grep influxd |grep-E'pprof|debug|trace'
# 生产环境应无这些标志
三、安全审计(8.1.4.3)
3.1 审计日志启用
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| 访问日志 | journalctl -u influxdb | 记录所有HTTP请求 |
| 查询日志 | 配置检查 | 慢查询/错误查询记录 |
| 审计日志 | InfluxDB Enterprise | 审计插件启用 |
| 日志保留 | OS层检查 | 外部留存≥180天 |
InfluxDB验证:
# 1. 检查InfluxDB日志配置
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'log-level|log-format|log-path'
# 或检查启动参数
ps aux |grep influxd |grep-E'log-level|log-path'
# 预期:log-level = info 或 warn(debug仅用于排障)
# 2. 查看InfluxDB系统日志(systemd)
journalctl -u influxdb -n500 --no-pager |head-100
# 检查内容:
# - 启动/停止事件
# - 认证失败(401 Unauthorized)
# - 权限拒绝(403 Forbidden)
# - 异常查询(OOM或超时)
# 3. 检查HTTP访问日志(通过反向代理)
tail-100 /var/log/nginx/influxdb-access.log 2>/dev/null |head-20
# 预期记录:时间、IP、用户、方法、URI、状态码、响应大小
# 4. 检查InfluxDB 2.x的查询日志(通过Task或外部工具)
# InfluxDB 2.x本身不记录所有查询,需通过以下方式:
# - 启用_prometheus指标端点,监控查询性能
# - 使用Telegraf收集influxdb_httpd_write_req等指标
# 5. 检查InfluxDB Enterprise的审计日志(企业版)
ls-la /var/log/influxdb/audit.log 2>/dev/null
tail-50 /var/log/influxdb/audit.log 2>/dev/null
# 6. 检查日志轮转配置
cat /etc/logrotate.d/influxdb 2>/dev/null ||echo"未配置专用logrotate"
# 应配置:每日轮转,保留180天,压缩存储
# 7. 检查日志外发(至SIEM或日志服务)
cat /etc/rsyslog.d/influxdb.conf 2>/dev/null |grep-E'@|influxdb'
# 或检查Filebeat配置
cat /etc/filebeat/filebeat.yml 2>/dev/null |grep-A5 influxdb
3.2 查询审计与性能监控
# 1. 检查InfluxDB内部监控(_internal数据库或_monitoring Bucket)
influx bucket list |grep-E'_internal|_monitoring'
# 2. 查看查询性能指标(通过API)
curl-s-H"Authorization: Token $INFLUX_TOKEN"\
"http://localhost:8086/api/v2/query?org=my-org"\
--data-urlencode 'q=from(bucket:"_monitoring") |> range(start:-1h) |> filter(fn:(r) => r._measurement == "influxdb_query_duration_seconds")'\
2>/dev/null |head-20
# 3. 检查慢查询(通过日志分析)
journalctl -u influxdb -n10000|grep-iE'slow|timeout|cancelled'|head-20
# 4. 检查InfluxDB 1.x的连续查询(CQ)和保留策略执行日志
influx -execute"SHOW CONTINUOUS QUERIES"
journalctl -u influxdb |grep-i'continuous query'|tail-20
四、入侵防范(8.1.4.4)
4.1 最小化安装与漏洞修复
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| 版本安全 | influx version | 使用2.x LTS或1.8.x |
| 补丁更新 | yum check-update influxdb | ≤30天内更新 |
| 不必要输入 | 配置检查 | 禁用未使用的协议 |
| 端口最小化 | ss -tulnp | 仅开放必要端口 |
InfluxDB验证:
# 1. 检查InfluxDB版本
influx version
influxd version
# 预期:使用官方支持的版本
# - 1.8.x:维护模式,仅安全更新
# - 2.7.x:当前稳定版,推荐
# - Cloud:自动更新
# 2. 检查可更新包
yum check-update influxdb2 2>/dev/null ||apt list --upgradable2>/dev/null |grep influxdb
# 3. 检查InfluxDB配置的安全性
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'max-series-per-database|max-values-per-tag|query-timeout'
# 预期配置(防止DoS):
# max-series-per-database = 1000000 # 限制序列数量
# max-values-per-tag = 100000 # 限制tag值数量(防高基数)
# query-timeout = "60s" # 查询超时
# 4. 检查InfluxDB 1.x的系列限制
cat /etc/influxdb/influxdb.conf |grep-E'max-series-per-database|max-values-per-tag'
# 5. 检查未使用的输入协议(应禁用)
cat /etc/influxdb/influxdb.conf |grep-E'enabled.*=.*true'|grep-E'collectd|opentsdb|graphite|udp'
# 未使用的协议应设置为:enabled = false
# 6. 检查InfluxDB 2.x的Telegraf配置(输入安全)
cat /etc/telegraf/telegraf.conf 2>/dev/null |grep-E'urls|token'|head-5
# 检查Telegraf是否使用加密传输和最小权限Token
4.2 网络安全与防护
# 1. 检查InfluxDB网络绑定(限制监听范围)
ss -tulnp|grep influxd |grep LISTEN
# 2. 检查防火墙规则
iptables -L-n|grep-E'8086|8088|2003|4242'
firewall-cmd --list-all |grep-E'8086|influxdb'
# 3. 检查反向代理安全头(通过Nginx/Apache)
curl-I-k https://influxdb.example.com:8086 2>/dev/null |grep-E'X-Frame-Options|X-Content-Type-Options|X-XSS-Protection'
# 4. 检查DoS防护(Nginx限流配置)
cat /etc/nginx/conf.d/influxdb.conf 2>/dev/null |grep-E'limit_req|limit_conn'
# 5. 检查InfluxDB查询复杂度限制(防止资源耗尽)
cat /etc/influxdb/config.yml |grep-E'max-concurrent-queries|query-queue-size|query-timeout'
# 6. 检查高基数防护(Cardinality攻击)
influx bucket list --json| jq '.[].id'|whileread bucket_id;do
curl-s-H"Authorization: Token $INFLUX_TOKEN"\
"http://localhost:8086/api/v2/buckets/$bucket_id/schema/measurements"2>/dev/null |\
jq '.[] | {name: .name, tagCount: (.tags | length)}'
done|head-20
# 监控tag数量异常增长
五、恶意代码防范(8.1.4.5)
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| 主机杀毒 | ClamAV检查 | 已安装并启用 |
| 数据完整性 | 校验和检查 | 数据文件完整性 |
| 输入验证 | 配置检查 | 防止恶意数据注入 |
InfluxDB验证:
# 1. 检查ClamAV(数据目录扫描)
systemctl status clamd@scan 2>/dev/null ||echo"ClamAV未运行"
freshclam --version2>/dev/null
# 2. 检查InfluxDB数据目录权限(防止恶意文件写入)
ls-la /var/lib/influxdb/ |head-20
ls-la /var/lib/influxdb/data/ |head-10
find /var/lib/influxdb -type f -not-user influxdb -ls2>/dev/null |head-10
# 3. 检查InfluxDB WAL和TSM文件完整性(通过启动日志)
journalctl -u influxdb |grep-iE'checksum|corrupt|recover'|tail-20
# 4. 检查恶意数据注入(通过查询分析)
# 检查是否有异常大的字段值或非法字符
influx query 'from(bucket:"telegraf") |> range(start:-1h) |> filter(fn:(r) => r._value > 1000000000) |> limit(n:10)'2>/dev/null
# 5. 检查连续查询(CQ)和任务(Task)安全
influx task list
# 检查任务内容是否包含恶意操作(如数据删除、外部调用)
六、可信验证(8.1.4.6)
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| TLS加密 | influx config list | HTTPS强制启用 |
| 证书管理 | 证书文件检查 | 有效证书,定期轮换 |
| 数据加密 | 配置检查 | 静态加密(Enterprise) |
| 备份加密 | 备份文件检查 | 加密存储 |
InfluxDB验证:
# 1. 检查TLS配置(InfluxDB 2.x原生支持)
cat /etc/influxdb/config.yml |grep-E'tls-cert|tls-key|https'
# 或通过环境变量
env|grep-E'INFLUXD_TLS|INFLUXD_HTTPS'
# 2. 检查证书有效性
openssl x509 -in /etc/influxdb/influxdb.crt -noout-dates-subject-issuer2>/dev/null
# 检查过期时间,应>30天
# 3. 检查证书链完整性
openssl verify -CAfile /etc/influxdb/ca.crt /etc/influxdb/influxdb.crt 2>/dev/null
# 4. 检查客户端TLS验证(mTLS)
cat /etc/influxdb/config.yml |grep-E'tls-client-auth|client-ca'
# 5. 检查InfluxDB Enterprise的静态加密(TDE)
cat /etc/influxdb/influxdb-enterprise.conf 2>/dev/null |grep-E'encrypt|vault|kms'
# 或使用HashiCorp Vault集成
# 6. 检查备份加密
ls-la /backup/influxdb/*.gz 2>/dev/null |head-5
# 检查是否使用gpg或openssl加密
file /backup/influxdb/latest.backup 2>/dev/null
七、数据备份与恢复(8.1.4.9)
| 控制项 | 测评命令 | 达标判据 |
|---|---|---|
| 物理备份 | influx backup | InfluxDB原生备份 |
| 逻辑备份 | influxd backup (1.x) | 全量+增量备份 |
| 备份加密 | 文件检查 | 加密存储 |
| 恢复演练 | 测试记录 | 季度演练 |
InfluxDB验证:
# 1. 检查InfluxDB 2.x备份配置
influx backup list 2>/dev/null ||echo"未配置备份"
# 2. 执行备份测试(InfluxDB 2.x原生支持)
influx backup /tmp/backup-test --bucket telegraf --token$INFLUX_TOKEN2>/dev/null
ls-la /tmp/backup-test/
# 3. 检查InfluxDB 1.x备份(使用influxd backup)
which influxd
influxd backup -help2>/dev/null |head-10
# 4. 检查定时备份任务
crontab-l|grep-i influx
cat /etc/cron.d/influxdb-backup 2>/dev/null
# 5. 检查备份目录权限
stat-c'%a %U:%G' /backup/influxdb/ 2>/dev/null ||stat-c'%a %U:%G' /var/backup/influxdb/ 2>/dev/null
# 6. 检查备份保留策略
find /backup/influxdb -type f -mtime +30 -ls2>/dev/null |wc-l|xargs-I{}echo"超过30天的备份文件数: {}"
# 7. 检查云备份(InfluxDB Cloud或S3)
cat /etc/influxdb/config.yml |grep-E's3|gcs|azure'
# 或使用rclone等工具
cat /root/.config/rclone/rclone.conf 2>/dev/null |grep-A5's3'
八、InfluxDB特有安全功能
8.1 InfluxDB Enterprise集群安全
# 1. 检查集群节点状态(Enterprise版)
influxd-ctl show 2>/dev/null ||echo"非Enterprise版或未配置"
# 2. 检查集群间通信加密(RPC)
cat /etc/influxdb/influxdb-enterprise.conf 2>/dev/null |grep-E'cluster|rpc|encrypt'
# 3. 检查Hinted Handoff队列(数据可靠性)
influxd-ctl show-shards 2>/dev/null |head-10
# 4. 检查反熵服务(Anti-Entropy,数据一致性)
influxd-ctl entropy show 2>/dev/null ||echo"未启用反熵服务"
8.2 InfluxDB Cloud安全
# 1. 检查Cloud组织安全(通过Web或API)
influx org get --id<org-id>2>/dev/null
# 2. 检查Cloud访问日志(通过Web控制台)
# InfluxDB Cloud Console → Organization Settings → Access Logs
# 3. 检查Cloud集成安全(PagerDuty/Slack/HTTP Endpoint)
influx notification endpoint list 2>/dev/null
# 4. 检查Cloud数据导出限制(防止数据泄露)
influx bucket list --json| jq '.[] | {name: .name, retentionRules: .retentionRules}'
8.3 时序数据安全特性
# 1. 检查数据保留策略执行(自动清理)
influx bucket list --json| jq '.[] | {name: .name, retentionRules: .retentionRules}'
# 2. 检查连续查询/Task(防止资源滥用)
influx task list
influx task log list --task-id <task-id>2>/dev/null |head-10
# 3. 检查数据采样和降采样(降低敏感数据精度)
influx query 'from(bucket:"sensitive") |> range(start:-1h) |> aggregateWindow(every: 5m, fn: mean)'2>/dev/null |head-5
一键巡检脚本(InfluxDB 2.x)
#!/bin/bash
# InfluxDB 2.x 等保三级一键巡检脚本
# 适用:InfluxDB 2.7+ / InfluxDB Cloud
# 执行用户:具有管理员权限的用户
INFLUX_HOST=${INFLUX_HOST:-http://localhost:8086}
INFLUX_TOKEN=${INFLUX_TOKEN:-your-token-here}
INFLUX_ORG=${INFLUX_ORG:-your-org}
export INFLUX_HOST INFLUX_TOKEN INFLUX_ORG
echo"===== InfluxDB 2.x 等保三级巡检脚本 ====="
echo"巡检时间: $(date)"
echo"InfluxDB地址: $INFLUX_HOST"
echo"组织: $INFLUX_ORG"
echo""
echo"===== 1 身份鉴别 ====="
echo"--- 用户列表 ---"
influx user list 2>/dev/null ||echo"无法获取用户列表(检查token权限)"
echo"--- 授权/Token列表 ---"
influx auth list 2>/dev/null |head-20
echo"--- Token权限详情 ---"
influx auth list --json2>/dev/null | jq '.[] | {description: .description, permissions: [.permissions[] | {action: .action, resource: .resource.type}]}'|head-40
echo"--- 组织成员 ---"
influx org members list --name$INFLUX_ORG2>/dev/null ||echo"无法获取组织成员"
echo""
echo"===== 2 访问控制 ====="
echo"--- Bucket列表 ---"
influx bucket list 2>/dev/null
echo"--- Bucket保留策略 ---"
influx bucket list --json2>/dev/null | jq '.[] | {name: .name, retentionRules: .retentionRules}'
echo"--- 标签列表(抽样) ---"
influx bucket list 2>/dev/null |awk'NR>1{print $1}'|head-3|whileread bucket;do
echo"=== Bucket: $bucket ==="
influx tag list --bucket$bucket2>/dev/null |head-10
done
echo""
echo"===== 3 安全审计 ====="
echo"--- 系统日志(最近100条) ---"
journalctl -u influxdb -n100 --no-pager 2>/dev/null |grep-iE'auth|error|fail|start|stop'|tail-20||echo"无法获取journalctl日志"
echo"--- 日志文件检查 ---"
ls-la /var/log/influxdb/ 2>/dev/null ||echo"无独立日志目录"
echo""
echo"===== 4 入侵防范 ====="
echo"--- InfluxDB版本 ---"
influx version 2>/dev/null ||echo"无法获取版本"
echo"--- 监听端口 ---"
ss -tulnp|grep influxd |grep LISTEN ||netstat-tulnp2>/dev/null |grep influxd
echo"--- 防火墙规则 ---"
iptables -L-n2>/dev/null |grep8086|head-5||echo"未配置iptables或无权查看"
echo"--- 配置文件检查 ---"
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'log-level|query-timeout|max-series'|head-10||echo"未找到config.yml"
echo""
echo"===== 5 可信验证 ====="
echo"--- TLS/HTTPS检查 ---"
cat /etc/influxdb/config.yml 2>/dev/null |grep-E'tls|https|cert|key'|head-10||echo"未找到TLS配置"
echo"--- 证书有效性 ---"
openssl x509 -in /etc/influxdb/influxdb.crt -noout-dates2>/dev/null |head-2||echo"未找到证书文件"
echo""
echo"===== 6 数据备份 ====="
echo"--- 备份目录检查 ---"
ls-la /backup/influxdb/ 2>/dev/null ||ls-la /var/backup/influxdb/ 2>/dev/null ||echo"[警告] 未找到备份目录"
echo"--- 备份测试 ---"
influx backup /tmp/backup-test --bucket$INFLUX_ORG2>/dev/null &&echo"[通过] 备份功能正常"||echo"[错误] 备份失败"
echo""
echo"===== 巡检完成 ====="
echo"请检查上述[警告]和[错误]项,并参考等保三级要求进行整改"
echo"注意:InfluxDB 2.x默认Token不过期,建议通过外部工具定期轮换"
高风险项重点核查清单
| 检查项 | 验证命令 | 不合规判定 | 整改建议 |
|---|---|---|---|
| Token描述不规范 | influx auth list | 存在无描述或短描述Token | 添加清晰描述,便于审计 |
| Token权限过大 | influx auth list --json | 存在all-access权限 | 拆分为read/write最小权限 |
| 无限制Bucket | influx bucket list --json | retentionRules=0(无限) | 设置合理保留期,敏感数据短期 |
| root@localhost未禁用 | influx user list | 存在默认admin且未重命名 | 创建新管理员,删除或重命名默认 |
| 未启用HTTPS | influx config list | 使用http:// | 配置TLS证书,强制https:// |
| pprof调试接口启用 | cat /etc/influxdb/influxdb.conf | grep pprof | pprof-enabled = true | 设置为false,防止信息泄露 |
| 未禁用未使用协议 | cat /etc/influxdb/influxdb.conf | 存在未使用的collectd/opentsdb启用 | 禁用不需要的输入协议 |
| 高基数风险 | influx tag list | 某个tag值数量>10万 | 优化schema设计,使用field替代 |
| 未配置查询超时 | cat /etc/influxdb/config.yml | 无query-timeout | 设置query-timeout = “60s” |
| 备份未加密 | file /backup/influxdb/latest | 未加密存储 | 使用gpg/openssl加密备份 |
| Token未定期轮换 | influx auth list | Token创建时间>90天 | 建立Token轮换机制 |
InfluxDB版本对比
| 对比项 | InfluxDB 1.8.x | InfluxDB 2.7.x | InfluxDB 3.x (IOx) | InfluxDB Cloud |
|---|---|---|---|---|
| 认证方式 | HTTP Basic + 用户 | Token + 组织/用户 | Token + 组织/用户 | Token + SSO集成 |
| 权限模型 | 数据库级GRANT | Bucket级Token | Bucket级Token | 细粒度RBAC |
| 审计功能 | 基础日志 | 增强日志 | 企业级审计 | 完整审计日志 |
| 静态加密 | 不支持 | Enterprise版 | Enterprise版 | 自动加密 |
| TLS支持 | 配置复杂 | 原生支持 | 原生支持 | 强制HTTPS |
| 备份工具 | influxd backup | influx backup | influx backup | 自动备份 |
| 等保合规 | 需大量加固 | 较好支持 | 企业级支持 | 完全合规 |
| 适用场景 | 遗留系统 | 新部署推荐 | 大规模时序 | SaaS优先 |
测评执行要点
1. 权限要求
- InfluxDB 2.x:需要All-Access Token或管理员权限
- InfluxDB 1.x:需要管理员账户(admin=true)
- OS层:需要root权限检查文件权限、日志、进程
2. 现场核查重点
- Token管理:InfluxDB 2.x使用Token而非密码,重点检查Token权限最小化、定期轮换、描述规范
- 高基数攻击:时序数据库特有风险,检查tag设计是否合理,防止恶意高基数数据导致OOM
- 数据保留策略:敏感监控数据(如安全日志)应设置短期保留,防止长期存储泄露
- 连续查询/Task安全:检查CQ/Task内容,防止恶意数据操作或资源耗尽
- 输入协议安全:禁用未使用的协议(collectd/opentsdb/graphite),减少攻击面
3. 版本差异(1.x vs 2.x vs 3.x)
| 功能项 | InfluxDB 1.8.x | InfluxDB 2.7.x | InfluxDB 3.x (IOx) |
|---|---|---|---|
| 查询语言 | InfluxQL | Flux + InfluxQL | InfluxQL + SQL |
| 安全模型 | 简单用户/密码 | Token + 组织 | 企业RBAC |
| 审计能力 | 基础 | 中等 | 完整 |
| 静态加密 | 无 | Enterprise | Enterprise |
| 备份恢复 | influxd backup | influx backup | 云原生 |
| 等保工具 | 需手动 | 部分自动化 | 自动化合规 |
| 性能 | 中等 | 高 | 极高(Rust) |
参考标准:GB/T 22239-2019、GB/T 28448-2019、InfluxDB官方安全配置指南、CIS Database Benchmark
适用版本:InfluxDB 1.8.10+、InfluxDB 2.7+、InfluxDB Cloud Dedicated
验证环境:单节点、高可用集群(Enterprise)、InfluxDB Cloud
声明:来自汪汪虚拟空间,仅代表创作者观点。链接:https://eyangzhen.com/7697.html