一、简介:工业网络“实时+安全”缺一不可
政策驱动:《关键信息基础设施安全保护条例》要求“核心控制系统自主可控”。
威胁现状:
某电厂 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。管理网需接入综合监控平台,存在被横向移动风险。方案实施:
划分 VLAN10(实时环)和 VLAN20(管理网),物理网卡独立。
VLAN10 启用 nftables 白名单,仅开放 IEC 61850-GOOSE 端口 1025/udp。
VLAN20 部署 Suricata,检测异常扫描、爆破行为。
实时环关闭 IPv4 转发、关闭 ICMP 回显,减少攻击面。
规则加载时间 <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 up5.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 ms5.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 alert5.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 |
七、实践建议与最佳实践
白名单先行
默认拒绝一切,逐条开放,避免“先放行再收紧”。规则热加载
使用nft -f而非重启服务,减少 200 ms 中断窗口。故障静默模式
Suricata 崩溃不影响实时流;systemd 自动重启,日志转储。双机热备
实时环双控制器 + STP/RSTP,故障切换 <50 ms。密钥隔离
SSH 仅允许密钥登录,PasswordAuthentication no;私钥放 USBKey。可视化面板
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,让“中国芯”真正插上安全的翅膀!