一、简介:工业网络“实时+安全”缺一不可

  • 政策驱动:《关键信息基础设施安全保护条例》要求“核心控制系统自主可控”。

  • 威胁现状:

    • 某电厂 DCS 遭勒索软件,操作员站锁死,机组跳闸。

    • 地铁信号网感染挖矿木马,CPU 占满导致列车 EB(紧急制动)。

  • 飞腾平台(FT-2000/4、D2000)已大规模应用于变电站、采煤工作面、地铁车站,国产化≠安全,需叠加实时 Linux + 立体防护。

掌握“飞腾+实时内核+安全组件”的落地方法 = 同时满足 国产化实时性合规性 三重硬指标。


二、核心概念:6 张图看懂工业安全模型

概念 一句话说明 本文对应工具
白名单 只允许已知进程/IP/端口通信,默认拒绝 iptables + ipset
实时防火墙 规则匹配时间确定,不引入额外抖动 nftables (kernel 5.10+)
VLAN 隔离 把实时控制流与管理流物理分离 iproute2 vlan
入侵检测 (IDS) 深度包检测,发现异常内容 Suricata AF_PACKET
环回时延 报文从网卡→内核→用户→网卡的时间 hping3 -p 5000 -S --fast
故障静默 安全组件崩溃后进入“放行”模式,实时流不受影响 systemd Restart=always + fail-open

三、环境准备:30 分钟搭好“飞腾安全实验台”

1. 硬件

  • 飞腾 FT-2000/4 工控机 1 台(4 核 2.2 GHz,8 GB DDR4)

  • 千兆电口 ≥2(1×实时环、1×管理口)

  • 串口线 ×1(调 BIOS + 查看 uboot)

2. 软件

组件 版本 来源
OS Kylin V10 SP2 ARM64 官方 ISO
实时内核 linux-5.10.120-rt70 飞腾 Git 仓库
防火墙 nftables 1.0.2 系统自带
IDS Suricata 6.0.10 源码编译
抓包 tcpdump 4.99 apt

3. 一键装实时内核(可复制)

#!/bin/bash
# install_ft_rt.sh
set -e
wget https://gitlab.com/phytium/linux/-/archive/v5.10.120-rt70/linux-v5.10.120-rt70.tar.gz
tar -xf linux-v5.10.120-rt70.tar.gz
cd linux-v5.10.120-rt70
cp arch/arm64/configs/phytium_defconfig .config
./scripts/config --set-val CONFIG_PREEMPT_RT y
make -j$(nproc) deb-pkg
sudo dpkg -i ../*.deb
sudo reboot

重启后确认:

uname -r   # 5.10.120-rt70

四、应用场景(300 字):地铁车站 PSCADA 安全防护

某地铁车站 PSCADA(电力监控系统)采用飞腾 FT-2000/4 实时 Linux 控制器,通过以太网与 800 个 IED(智能电子设备)通信,环回时延要求 ≤2 ms。管理网需接入综合监控平台,存在被横向移动风险。方案实施:

  1. 划分 VLAN10(实时环)和 VLAN20(管理网),物理网卡独立。

  2. VLAN10 启用 nftables 白名单,仅开放 IEC 61850-GOOSE 端口 1025/udp。

  3. VLAN20 部署 Suricata,检测异常扫描、爆破行为。

  4. 实时环关闭 IPv4 转发、关闭 ICMP 回显,减少攻击面。

  5. 规则加载时间 <50 ms,系统重启后 5 s 内进入保护态,环回时延增加 <0.3 ms,满足 SIL 2 实时指标。


五、实际案例与步骤:从“裸机”到“安全域”

5.1 网络拓扑规划

+--------+     VLAN10     +-------------+
|  IED   |<--->eth0.10<-->| 飞腾 RT Linux |
| (实时) |                 |  控制器      |
+--------+                 +-------------+
     |                          |
     | VLAN20                   | Suricata
     +--->eth1.20--------->管理交换机->监控中心

5.2 配置 VLAN 隔离(可复制)

# 加载 8021q 模块
sudo modprobe 8021q
# 创建 VLAN 接口
sudo ip link add link eth0 name eth0.10 type vlan id 10
sudo ip link add link eth1 name eth1.20 type vlan id 20
# 分配 IP
sudo ip addr add 192.168.10.1/24 dev eth0.10
sudo ip addr add 192.168.20.1/24 dev eth1.20
# 启用
sudo ip link set eth0.10 up
sudo ip link set eth1.20 up

5.3 实时防火墙(nftables 白名单)

# /etc/nftables/rt-firewall.nft
table inet rtfilter {
  chain input {
    type filter hook input priority 0; policy drop;
    # 1. 允许 VLAN10 白名单
    iifname "eth0.10" udp dport 1025 accept
    # 2. 允许 VLAN20 SSH 管理
    iifname "eth1.20" tcp dport 22 accept
    # 3. 允许回环
    iif "lo" accept
  }
}
sudo systemctl enable nftables
sudo nft -f /etc/nftables/rt-firewall.nft

实时性验证

sudo nft -f rt-firewall.nft 2>&1 | ts '%.s'   # 加载耗时 <50 ms

5.4 入侵检测(Suricata IDS)

# 编译安装(飞腾 ARM64)
sudo apt install libpcre3-dev libyaml-dev libpcap-dev
wget https://www.openinfosecfoundation.org/download/suricata-6.0.10.tar.gz
tar -xf suricata-6.0.10.tar.gz && cd suricata-6.0.10
./configure --prefix=/usr --enable-nfqueue --enable-lua
make -j$(nproc) && sudo make install
# 最小规则集
sudo suricata-update
# 启动(仅监听 VLAN20)
sudo suricata -i eth1.20 -c /etc/suricata/suricata.yaml -D

日志查看:

tail -f /var/log/suricata/fast.log | grep -i alert

5.5 环回时延测试(可复制)

# 在 IED 侧持续 ping
sudo hping3 192.168.10.1 -p 1025 -S --fast -T 1

结果:

len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=1025 flags=SA seq=0 rtt=1.8 ms

rtt 中位数 1.6-1.9 ms,满足 ≤2 ms 要求。


六、常见问题与解答(FAQ)

问题 现象 解决
nftables 加载后 GOOSE 丢包 规则顺序错 把 accept 放在 drop 前,或用 priority raw
Suricata CPU 占满 规则集太大 仅启用 emerging-scan.rules,其余注释掉
VLAN 接口重启后消失 未持久化 写入 /etc/network/interfaces.d/vlan 或使用 netplan
实时抖动 > 0.5 ms 中断亲和未绑核 echo 2 > /proc/irq/24/smp_affinity_list 把网卡中断绑到 isolcpus
无法编译 Suricata 缺少 ARM64 依赖 确认 libpcre3-dev:arm64 已安装,或 apt build-dep suricata

七、实践建议与最佳实践

  1. 白名单先行
    默认拒绝一切,逐条开放,避免“先放行再收紧”。

  2. 规则热加载
    使用 nft -f 而非重启服务,减少 200 ms 中断窗口。

  3. 故障静默模式
    Suricata 崩溃不影响实时流;systemd 自动重启,日志转储。

  4. 双机热备
    实时环双控制器 + STP/RSTP,故障切换 <50 ms。

  5. 密钥隔离
    SSH 仅允许密钥登录,PasswordAuthentication no;私钥放 USBKey。

  6. 可视化面板
    Grafana + Suricata Exporter,实时显示攻击趋势,审计员一目了然。


八、总结:一张脑图带走全部要点

飞腾实时Linux网络安全
├─ VLAN隔离:实时/管理双平面
├─ 白名单防火墙:nftables,加载<50 ms
├─ IDS:Suricata,ARM64编译,规则精简
├─ 实时指标:环回时延≤2 ms,抖动<0.5 ms
└─ 合规:满足 IEC 62443-3-3 控制域隔离要求

实时性与安全性不再互斥——用飞腾芯 + PREEMPT_RT + 白名单防火墙,你就能在国产化工业场景里,既跑得快,又守得稳
把本文脚本 push 到你的 GitLab,下个项目直接 git clone && sudo make deploy,让“中国芯”真正插上安全的翅膀!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐