Linux网络安全态势感知需实现“看得见、判得准、报得快”,核心是实时流量监控报警:用iftop+脚本秒级捕获异常连接,vnStat建基线识别偏离,tcpdump深度检测攻击特征,并统一通过syslog集中告警。

Linux 网络安全态势感知不是只看日志或装个防火墙,而是让系统“看得见、判得准、报得快”。实时网络流量监控报警是其中最基础也最关键的环节——它能把异常连接、突发流量、可疑端口通信等行为从海量正常流量中筛出来,并在秒级触发告警。
用 iftop + 脚本实现轻量级实时流量异常捕获
iftop 是最直接的实时流量观察工具,但默认不带报警能力。需结合 shell 脚本做阈值判断:
- 运行 sudo iftop -i eth0 -nBP -t -s 5:以文本模式采集 5 秒数据,禁用 DNS 解析(-n)、显示端口(-P)、批量输出(-t),避免交互干扰
- 解析输出中的“2s”列(单位 KB/s),提取前 3 个最高流量连接,例如:
awk '/=>/ {print $4}' | head -3 | awk '{if($1 > 5000) print "ALERT: outbound >5MB/s"}' - 将该逻辑封装为脚本,加入 cron 每 30 秒执行一次;触发时用 logger 写入 syslog,或调用 curl 推送至企业微信/钉钉机器人
用 vnStat 建立流量基线并检测偏离
单纯看瞬时峰值容易误报。vnStat 可持续记录网卡收发总量,帮你识别“不像平时”的行为:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 初始化监控:sudo vnstat -u -i eth0,随后服务自动每 5 分钟采样一次
- 生成昨日小时级报告:vnstat -h -d yesterday,观察历史峰值分布(如通常峰值在 2–8 MB/s)
- 写检测脚本:对比当前 5 分钟增量与昨日同期均值,若超 3 倍标准差即标记异常,例如:
current=$(vnstat -i eth0 --oneline | cut -d';' -f9 | awk '{print $1}'); baseline=$(vnstat -d yesterday -i eth0 | grep 'h ' | awk 'NR==12 {print $3}');[ $(echo "$current > $baseline * 3" | bc) -eq 1 ] && echo "Traffic surge detected"
用 tcpdump + 自定义规则做协议层深度告警
当需要识别特定攻击特征(如 SSH 暴力破解、HTTP 扫描、ICMP Flood)时,tcpdump 配合简单过滤更可靠:
- 捕获 100 个包并统计异常连接数:
sudo tcpdump -i eth0 -c 100 'port 22 and tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn' 2>/dev/null | wc -l - 若返回值 ≥ 15,说明 100 个包里有大量新 SSH 连接尝试,极可能为爆破行为
- 可扩展支持:对源 IP 做频次统计(awk '{print $3}' | sort | uniq -c | sort -nr | head -5),再结合 iptables 自动封禁
整合到 syslog 实现统一告警入口
所有自定义脚本的告警输出,建议统一走 rsyslog,便于集中转发和分级处理:
- 在脚本中用 logger -t "net-alert" "SSH burst from 192.168.1.100" 发送消息
- 配置 /etc/rsyslog.d/50-netalert.conf:匹配 tag,写入独立日志文件,并通过 imfile 模块接入 Prometheus 或转发至 Slack
- 关键好处:无需改应用代码,所有告警天然带时间戳、主机名、进程标识,审计合规友好

















