USG审计CIS Level1服务器持续标记nftables两项合规问题,求合规配置示例
USG审计CIS Level1服务器持续标记nftables两项合规问题,求合规配置示例
我完全懂你的困扰——弃用ufw转用nftables后,USG的CIS Level1服务器审计却一直揪着「Ensure Base Chains Exist for Nftables」和「Set nftables configuration for loopback traffic」这两个问题不放。结合CIS标准的具体要求,我给你整理了一个能通过审计的/etc/nftables.conf配置示例,同时拆解下关键调整点:
问题根源拆解
- Ensure Base Chains Exist for Nftables:CIS标准要求nftables必须具备规范的基础链结构,审计工具通常会检查是否存在命名清晰、hook和优先级配置合规的基础链(比如明确的IPv4/IPv6专用处理链),你的现有配置虽有链,但结构和规则顺序可能不符合审计的判定逻辑。
- Set nftables configuration for loopback traffic:仅允许入站回环流量还不够,需要覆盖入站+出站的回环流量,且规则优先级要放在连接状态检查之前,同时严格拒绝非回环地址的伪造回环流量,这样才符合CIS的安全要求。
合规配置示例
#!/usr/sbin/nft -f flush ruleset # 按照CIS标准创建inet家族的filter表,包含所有必需的基础链 table inet filter { # IPv4专用入站处理链:符合CIS基础链命名规范 chain input_ipv4 { type filter hook input priority 10; policy accept; } # IPv6专用入站处理链:保留必要的ICMPv6邻居发现规则 chain input_ipv6 { type filter hook input priority 10; policy accept; icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept } # 主输入链:严格遵循CIS的优先级和默认策略要求 chain input { type filter hook input priority 0; policy drop; # 先处理回环流量:覆盖入站+出站,符合CIS回环配置要求 iifname "lo" accept oifname "lo" accept # 拒绝伪造的回环流量 ip saddr 127.0.0.0/8 counter drop ip6 saddr ::1 counter drop # 处理连接状态:已建立/相关连接放行,无效连接直接丢弃 ct state { established, related } accept ct state invalid drop # 跳转到IPv4/IPv6专用链 meta protocol ip jump input_ipv4 meta protocol ip6 jump input_ipv6 # 允许SSH流量(可根据实际需求调整端口) tcp dport 22 accept } # 主输出链:符合CIS基础链要求,确保回环流量正常 chain output { type filter hook output priority 0; policy accept; iifname "lo" accept oifname "lo" accept } # 主转发链:CIS要求默认拒绝转发流量 chain forward { type filter hook forward priority 0; policy drop; } }
关键调整说明
- 针对基础链存在问题:明确创建了
input_ipv4、input_ipv6专用链,所有链的type、hook、priority都严格匹配CIS标准的定义,审计工具能直接识别到合规的基础链结构。 - 针对回环流量配置:把回环流量规则移到连接状态检查之前,同时添加
oifname "lo" accept覆盖出站回环场景,确保规则覆盖完整,符合CIS对回环接口的安全规范。
验证步骤
替换配置后,重启nftables服务:
systemctl restart nftables
再重新运行审计验证:
usg audit cis_level1_server
备注:内容来源于stack exchange,提问作者chrisdornan
相关产品推荐
相关产品推荐

