# Keepalived 高可用组件测评

> Keepalived（VRRP 高可用）三级等保现场测评取证命令单：按控制点组织 keepalived -v/-t、ip addr 查 VIP、journalctl 查切换事件等只读命令，核查 vrrp_version 默认 2（IPv6 用 3）、auth_type PASS 与 auth_pass 仅取前 8 位明文落盘的口令风险、script_user 与 enable_script_security 脚本提权防护、unicast_peer 收敛通告范围、伪造 VRRP 通告抢占 VIP（priority 255）风险与网络侧补偿、配置文件权限与备份、主备切换演练，附判定要点、示例输出与版本差异核验说明。

---

LLMS index: [llms.txt](/wikis/llms.txt)

---

> 定位：Keepalived（VRRP 虚拟路由冗余协议高可用组件）三级等保现场测评**取证命令单**，按 GB/T 22239-2019 安全计算环境控制点分节组织核查命令、判定要点与取证要求。
> 适用范围：Keepalived 2.x 系列（Debian/EL 发行版打包版本），常见于 VIP 漂移承载 HAProxy/Nginx/数据库主从切换场景；LVS/IPVS 与 BFD 功能按现场实际启用情况核查。
> 配套文章：[HAProxy 负载均衡器测评](../haproxy/)（常见搭配）、[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)、[17、网络设备、安全设备、服务器、数据库和应用系统的加固方案](../../../reinforce/其他系统或设备/17网络设备安全设备服务器数据库和应用系统的加固方案/)。
>
> 使用说明：
>
> - 本文所有命令均为**只读取证**命令，不修改配置、不重启服务、不执行清除类操作；`keepalived -t` 为配置校验（只读，不加载），确需变更由被测单位运维方在授权下实施。
> - 每个控制点小节按「对应控制点 → 判定要点 → 取证要求 → 核查命令 → 备注 → 预期证据」编排；命令回显本身即证据，须连同命令行一起截图。
> - Keepalived 以 root 运行的系统守护进程，无独立账户/审计体系，多数控制点依赖「配置文件权限 + 主机账户与审计 + 网络侧 VRRP 报文控制」等补偿措施判定。
> - 命令不存在或输出与示例差异较大时，先确认版本与部署形态（发行版包/容器/自定义编译），再换用等效命令或转入配置文件取证，**不得据命令缺失直接判不符合**。
> - 示例输出中的地址、账户、口令均为演示值，现场须替换为真实取证结果并脱敏后再入报告。
>
> 不适用标识说明：
>
> - 使用 `【不适用】` 明确标记现场可判定为不适用的控制点。
> - 判定依据采用 GB/T 28448-2019"按测评对象实际功能、是否直接处理数据、是否具备该类安全机制判定"的原则；Keepalived 为网络高可用组件，不直接处理业务数据与个人信息，业务性控制点转由承载应用/数据库测评。

## 基础信息

> **对应控制点**：非独立控制点（测评对象与资产确认）；主备双机形态佐证 8.1.2.1 网络架构 e) 关键设备冗余
>
> **判定要点**：版本、配置文件与启动参数、VIP 与主备状态、承载业务清单四项可取证且与实际架构一致 → 符合；主备状态与 VIP 漂移关系无法确认 → 部分符合。
>
> **取证要求**：版本回显截图、配置文件截图、进程与运行用户截图、`ip addr` VIP 归属截图、主备两侧对照截图。

**核查命令**：

```bash
keepalived -v
ps -ef | grep [k]EEPALIVED | head -n 5
systemctl status keepalived --no-pager | head -n 8
ip -4 addr show | grep -E "inet (192|10|172)" 
grep -nE "vrrp_instance|virtual_router_id|interface|priority|virtual_ipaddress" /etc/keepalived/keepalived.conf | head -n 16
keepalived -t -f /etc/keepalived/keepalived.conf
```

- 备注：主备两侧都要执行——同一 `virtual_router_id` 成对出现、`priority` 一侧高一侧低（默认 100 主/90 备为常见形态，非标准）；`keepalived -t` 为官方配置校验参数（man 8 keepalived 核验），不加载配置。
- 预期证据：版本与配置截图、主备 VIP 对照截图（主侧有 VIP、备侧无）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ keepalived -v
</span></span><span class="line"><span class="cl">Keepalived v2.2.8 ...
</span></span><span class="line"><span class="cl">$ ip -4 addr show <span class="p">|</span> grep -E <span class="s2">&#34;inet 192&#34;</span>
</span></span><span class="line"><span class="cl">    inet 192.168.10.5/32 scope global VIP        <span class="c1"># 主节点持有 VIP</span>
</span></span><span class="line"><span class="cl">$ grep -nE <span class="s2">&#34;vrrp_instance|priority|state&#34;</span> /etc/keepalived/keepalived.conf
</span></span><span class="line"><span class="cl">vrrp_instance VI_1 <span class="o">{</span>
</span></span><span class="line"><span class="cl">    state MASTER
</span></span><span class="line"><span class="cl">    priority <span class="m">100</span>
</span></span><span class="line"><span class="cl">$ keepalived -t -f /etc/keepalived/keepalived.conf
</span></span><span class="line"><span class="cl">Configuration file /etc/keepalived/keepalived.conf is valid
</span></span></code></pre></div>
</details>


## 身份鉴别

> **对应控制点**：GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)
>
> **判定要点**：VRRP 通告认证已配置（VRRPv2 `auth_type PASS` + `auth_pass`）且主备一致、认证口令非弱口令且知悉 8 位截断限制、主机侧 root/运维账户受口令策略约束、无管理控制台需另设账户 → 符合；`auth_type` 缺省或 `auth_pass` 为空/弱口令 → 部分符合/不符合（伪造通告风险记入侵防范）。
>
> **取证要求**：vrrp_instance 认证配置截图（口令脱敏）、主备一致性说明、主机口令策略核查（转主机测评单元）。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


官方手册核验：`auth_pass` **仅前 8 个字符生效**且以明文写于 `/etc/keepalived/keepalived.conf`——长口令后段不起防护作用；VRRP 通告无有效认证（auth_pass 空/默认/弱）时，同网段任何主机可伪造 `priority 255` 通告抢占 VIP（高可用劫持，可致业务中断与流量劫持），网络侧无 VRRP 报文控制时按高风险线索记录。VRRPv3（IPv6 实例固定 v3；`vrrp_version 3`）协议本身**无认证字段**，只能依赖链路层/网络层控制，须如实说明。
判定口径详见 [联盟团标-网络安全等级保护测评高风险判定指引（2025版）](../../../gradeprotectionwiki/联盟团标-网络安全等级保护测评高风险判定指引2025版/)（对应 2025 版判例 6.4.1.1、6.4.5.2）。
</div>


### A. VRRP 通告认证

**核查命令**：

```bash
grep -n -B2 -A3 "auth_type\|auth_pass" /etc/keepalived/keepalived.conf
grep -nE "vrrp_version|version [23]" /etc/keepalived/keepalived.conf
```

- 备注：官方手册形态 `auth_type PASS` + `auth_pass <口令>`（v2）；v3 无此字段（协议层取消认证），核查现场版本选择与网络控制补偿。
- 预期证据：认证配置截图、版本指令截图。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ grep -n -A3 <span class="s2">&#34;auth&#34;</span> /etc/keepalived/keepalived.conf
</span></span><span class="line"><span class="cl">    auth_type PASS
</span></span><span class="line"><span class="cl">    auth_pass ****          <span class="c1"># 已设口令，仅前 8 位有效（官方手册原文）</span>
</span></span><span class="line"><span class="cl">$ grep -nE <span class="s2">&#34;vrrp_version|version&#34;</span> /etc/keepalived/keepalived.conf
</span></span><span class="line"><span class="cl">    vrrp_version <span class="m">2</span>
</span></span></code></pre></div>
</details>


### B. 主机侧账户与特权运行

**核查命令**：

```bash
ps -o user= -C keepalived | sort -u
systemctl cat keepalived 2>/dev/null | grep -E "User=|ExecStart" | head -n 4
last | head -n 5
```

- 备注：Keepalived 需 root 权限操作 VIP/接口（部分发行版支持 `User=` 降权运行 + 授权脚本，非强制）；运维账户与口令策略在主机测评单元核查。
- 【不适用】组件无独立平台账户体系，平台用户身份鉴别项按实际形态判定并注明。
- 预期证据：进程属主截图、主机测评联动记录。

## 访问控制

> **对应控制点**：GB/T 22239-2019 8.1.4.2 访问控制 a)~f)
>
> **判定要点**：VRRP 通告以 `unicast_peer` 收敛到主备对端（优于组播全网可达）、配置与脚本文件权限最小化（600/750）、脚本以非 root 或安全模式执行（`script_user`+`enable_script_security`）、接口限定（`interface`/`vmactrack`）→ 符合；组播通告无网络控制、配置文件全局可读、notify/vrrp_script 以 root 执行且路径可写 → 部分符合/不符合。
>
> **取证要求**：unicast 配置截图、文件权限清单截图、script_user/enable_script_security 配置截图、防火墙/交换机侧 VRRP（协议 112）控制证据。

### A. 通告范围收敛（unicast 优先）

**核查命令**：

```bash
grep -n -A4 "unicast_src_ip\|unicast_peer" /etc/keepalived/keepalived.conf
grep -n "interface\|mcast" /etc/keepalived/keepalived.conf | head -n 6
```

- 备注：官方手册核验 `unicast_src_ip <IPADDR>` + `unicast_peer { <IPADDR> [min_ttl/max_ttl] }` 语法；未配置 unicast 即默认组播通告（224.0.0.18，v3 为 IPv6 组播），须以交换机侧（端口隔离/IGMP snooping）或主机防火墙控制来补偿。
- 预期证据：unicast 配置截图或组播+网络控制说明。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ grep -n -A4 <span class="s2">&#34;unicast&#34;</span> /etc/keepalived/keepalived.conf
</span></span><span class="line"><span class="cl">    unicast_src_ip 192.168.10.5
</span></span><span class="line"><span class="cl">    unicast_peer <span class="o">{</span>
</span></span><span class="line"><span class="cl">        192.168.10.6
</span></span><span class="line"><span class="cl">    <span class="o">}</span>
</span></span></code></pre></div>
</details>


### B. 脚本执行安全（vrrp_script / notify）

**核查命令**：

```bash
grep -n -B2 -A6 "vrrp_script\|notify_" /etc/keepalived/keepalived.conf | head -n 24
grep -n "script_user\|enable_script_security" /etc/keepalived/keepalived.conf
ls -l /etc/keepalived/ /usr/local/bin/keepalived_* 2>/dev/null
```

- 备注：`vrrp_script` 与 `notify_master/backup/fault` 脚本以 keepalived 权限运行——官方手册核验 `script_user username [groupname]`（全局指定脚本运行用户）与 `enable_script_security`（"Don't run scripts configured to be run as root if any part of the path is writable by a non-root user"——手册原文，防脚本路径被非 root 写入导致提权）；脚本文件与所在目录权限须 root 独占写。
- 预期证据：脚本安全配置截图、脚本目录权限截图。

### C. 配置文件权限

**核查命令**：

```bash
stat -c "%a %U:%G %n" /etc/keepalived/keepalived.conf /etc/keepalived/*.conf
```

- 备注：`auth_pass` 与脚本中可能出现的口令均为明文，文件权限须 600（至少 640 root:root）。
- 预期证据：权限清单截图。

## 安全审计

> **对应控制点**：GB/T 22239-2019 8.1.4.3 安全审计 a)~d)
>
> **判定要点**：keepalived 运行日志（syslog/journal）可查且含主备切换/脚本故障事件、切换事件外送日志审计系统、留存不少于 6 个月、配置与脚本变更有 auditd/堡垒机留痕 → 符合；仅默认本地短时日志、无切换台账 → 部分符合；日志完全不可得 → 不符合。
>
> **取证要求**：journalctl/syslog 切换事件样例截图（MASTER/BACKUP/FAULT）、日志外送与留存证据、变更记录。

**核查命令**：

```bash
journalctl -u keepalived --no-pager | tail -n 10
grep -i keepalived /var/log/syslog 2>/dev/null | tail -n 8
grep -rE "keepalived" /etc/rsyslog.d/ /etc/rsyslog.conf 2>/dev/null
auditctl -l 2>/dev/null | grep keepalived
```

- 备注：官方手册核验 `log_facility localX` 配置——确认日志目标设施与 rsyslog 采集路由一致；典型审计事件：`Entering MASTER STATE`、`adverts are not received`、脚本进入 FAULT。
- 预期证据：切换事件截图、外送配置截图。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ journalctl -u keepalived --no-pager <span class="p">|</span> tail -n <span class="m">4</span>
</span></span><span class="line"><span class="cl">Sep <span class="m">03</span> 08:12:01 lb01 Keepalived_vrrp<span class="o">[</span>1122<span class="o">]</span>: VRRP_Instance<span class="o">(</span>VI_1<span class="o">)</span> Entering MASTER STATE
</span></span><span class="line"><span class="cl">Sep <span class="m">03</span> 08:12:01 lb01 Keepalived_vrrp<span class="o">[</span>1122<span class="o">]</span>: VRRP_Instance<span class="o">(</span>VI_1<span class="o">)</span> setting protocol IPs on vip
</span></span><span class="line"><span class="cl">Aug <span class="m">31</span> 22:04:33 lb01 Keepalived_vrrp<span class="o">[</span>1122<span class="o">]</span>: VRRP_Script<span class="o">(</span>chk_haproxy<span class="o">)</span> failed <span class="o">(</span>exited with code 1<span class="o">)</span>
</span></span></code></pre></div>
</details>


## 入侵防范

> **对应控制点**：GB/T 22239-2019 8.1.4.4 入侵防范 a)~h)
>
> **判定要点**：版本在发行版/官方支持线、`nopreempt` 或优先级规划防止非预期抢占、`check_adv_addr`/`strict_mode` 限制异常通告来源（核验现场版本可用性）、网络侧对 VRRP（IP 协议号 112）报文有源控制、主机侧防恶意代码在位 → 符合；缺少任意一项但有等效补偿且证据齐全 → 部分符合；VRRP 通告完全无认证且网络无控制 → 不符合（高风险线索）。
>
> **取证要求**：版本与支持状态、anti-preempt 与通告校验配置、交换机/防火墙 VRRP 控制证据、切换演练与攻防记录。

**核查命令**：

```bash
keepalived -v
grep -nE "nopreempt|check_adv_addr|strict_mode|garp_group" /etc/keepalived/keepalived.conf
tcpdump -ni any proto 112 -c 3 2>/dev/null || echo "需 root 权限，经授权现场执行"
iptables -S 2>/dev/null | grep -i vrrp; nft list ruleset 2>/dev/null | grep -iE "vrrp|112"
```

- 备注：`check_adv_addr`/`strict_mode`（限制接受通告的来源地址）与 `nopreempt` 以现场版本手册为准；`proto 112` 即 VRRP 协议号（RFC 5798 定义），未启用认证时同网段伪造 `priority 255` 即可抢占 VIP——必须给出网络侧控制证据（端口安全/ACL/管理 VLAN 隔离）。
- 预期证据：配置截图、抓包/策略截图。

## 数据完整性

> **对应控制点**：GB/T 22239-2019 8.1.4.7 数据完整性 a)b)
>
> **判定要点**：配置纳入版本管理/备份、变更前 `keepalived -t` 校验、双机配置成对核验（virtual_router_id/interface 一致）→ 符合；无备份或无校验流程 → 部分符合。

**核查命令**：

```bash
keepalived -t -f /etc/keepalived/keepalived.conf
ls -l /backup/keepalived/ 2>/dev/null | tail -n 3
```

- 备注：配置漂移（主备 `virtual_router_id`/`auth_pass` 不一致）是切换失败与双主脑裂的高频根因，取证时两侧对照截图。
- 预期证据：校验回显、备份清单。

## 数据保密性

> **对应控制点**：GB/T 22239-2019 8.1.4.8 数据保密性 a)b)

**核查命令**：

```bash
grep -c "auth_pass" /etc/keepalived/keepalived.conf
stat -c "%a %n" /etc/keepalived/keepalived.conf
grep -rEl "password|passwd" /etc/keepalived/ 2>/dev/null
```

- 备注：VRRP 通告本身不承载业务数据；保密性核查焦点为配置明文凭据（auth_pass、健康检查脚本内的数据库/接口口令）——文件权限 600 + 配置管理受控，脚本中凭据建议改为受控环境文件引用。
- 预期证据：明文凭据排查与脱敏后截图。

## 备份恢复

> **对应控制点**：GB/T 22239-2019 8.1.4.9 数据备份恢复 a)c)
>
> **判定要点**：主备双机 + 切换演练记录（每半年至少一次）→ 符合；有双机无演练 → 部分符合；单点无备份 → 不符合（VIP 单点即业务单点）。

**核查命令**：

```bash
journalctl -u keepalived --no-pager | grep -cE "MASTER STATE|BACKUP STATE"
systemctl is-active keepalived
```

- 备注：切换演练证据取自主备 journal 的 MASTER/BACKUP 切换记录与业务验证记录（VIP 漂移耗时、业务探测恢复时间）；`garp_interval`/`garp_group` 影响切换收敛速度（VIP 通告刷新）。
- 预期证据：切换事件计数截图、演练记录。

## 剩余信息保护

> **对应控制点**：GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)

**核查命令**：

```bash
ls -l /etc/keepalived/*.old /etc/keepalived/*.bak 2>/dev/null
ip addr show | grep -E "VIP|secondary"
```

- 备注：退役实例配置、临时测试脚本与含旧凭据的备份及时清理；下线节点的 VIP 残留核查（异常双主）。
- 预期证据：清理记录截图。

## 个人信息保护

> **对应控制点**：GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)

- 【不适用】Keepalived 仅维护 VIP 与主备状态、转发 VRRP 通告（源/目的 IP 为节点地址），不处理业务个人信息；其配置与日志不承载个人信息主体数据。依据：GB/T 28448-2019 个人信息保护控制点针对实际处理个人信息的对象，转由承载业务系统测评。
- 预期证据：数据流说明、访谈记录。

## 参考依据

- GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》（8.1.4 安全计算环境；VIP 冗余佐证 8.1.2.1）：[http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF](http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF)
- GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》（测评对象边界与不适用判定）：[http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C](http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C)
- RFC 5798（VRRP 版本 3）与 RFC 3768（VRRP 版本 2）：[https://datatracker.ietf.org/doc/html/rfc5798](https://datatracker.ietf.org/doc/html/rfc5798)、[https://datatracker.ietf.org/doc/html/rfc3768](https://datatracker.ietf.org/doc/html/rfc3768)
- Keepalived 官方站点：[https://www.keepalived.org/](https://www.keepalived.org/)
- keepalived.conf(5) 官方手册页（Debian bookworm 包文档——`vrrp_version` 默认 2/IPv6 用 3、`auth_type PASS`/`auth_pass` 仅前 8 字符生效、`unicast_src_ip`/`unicast_peer { <IP> [min_ttl/max_ttl] }`、`script_user`、`enable_script_security` 原文已核验）：[https://manpages.debian.org/bookworm/keepalived/keepalived.conf.5.en.html](https://manpages.debian.org/bookworm/keepalived/keepalived.conf.5.en.html)
- keepalived(8) 手册页（`-t/--config-test` 配置校验、`-v/--version`、`-d/--dump-conf` 已核验）：[https://manpages.debian.org/bookworm/keepalived/keepalived.8.en.html](https://manpages.debian.org/bookworm/keepalived/keepalived.8.en.html)
- 《网络安全等级保护测评高风险判定指引》（中关村信息安全测评联盟团体标准），站内对照表：[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)
- 命令核验说明：本文命令已于 2026-09 对照 keepalived.conf(5) 与 keepalived(8) 官方手册页（Debian bookworm 打包文档）逐条核验；四处须留意：① `auth_pass` 官方手册明示仅前 8 字符有效——按"8 位口令"评估强度而非实际输入长度；② VRRPv3 无协议认证字段，现场若用 `vrrp_version 3` 或 IPv6 实例，认证不适用，必须以网络侧 VRRP 控制替代并记录补偿；③ `enable_script_security`+`script_user` 是 root 提权面的关键开关，未启用时核查脚本路径权限（任一段可被非 root 写即风险）；④ `check_adv_addr`/`strict_mode`/`nopreempt` 等防护参数随版本演进，个别项以现场 `man keepalived.conf` 为准，不得据命令缺失直接判不符合。

## 关联文章

- 常见搭配：[HAProxy 负载均衡器测评](../haproxy/)、[Nginx 中间件测评](../nginx/)；网络侧 VIP 联动见 [网络设备板块](../../网络设备/)
- 主机层取证：[16、Linux操作系统测评命令](../../服务器/16linux操作系统测评命令/)、[银河麒麟-三级现场测评命令单](../../服务器/银河麒麟-三级等保现场测评命令单/)、[openEuler-三级现场测评命令单](../../服务器/openeuler-三级等保现场测评命令单/)
- 现场指引：[现场使用总指引（中间件与容器）](../现场指引/现场使用总指引中间件与容器/)
- 板块目录：[中间件与容器](../)
- 配套加固：[30、注册中心与负载均衡加固](../../../reinforce/系统管理软件平台/30注册中心与负载均衡加固/)、[17、加固方案总纲](../../../reinforce/其他系统或设备/17网络设备安全设备服务器数据库和应用系统的加固方案/)、[11、Linux操作系统加固手册](../../../reinforce/服务器/11linux操作系统加固手册/)
- 取证记录：[16、安全评估加固记录表3.0](../../../reinforce/其他系统或设备/16安全评估加固记录表3.0/)
- 高风险口径：[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)
