什么是 martian 报文
内核把「源地址或目的地址在本接口上明显不合理」的数据包称为 martian,例如源地址是回环地址却从外网接口进来。开启 log_martians 后,内核会把这类包记录到日志,为网络配置错误与伪造源地址的探测行为提供线索。它是可观测性设置,不负责阻断。
基本信息
| 适用平台 | Linux(各主流发行版 sysctl 参数) |
|---|---|
| 开关参数 | net.ipv4.conf.all.log_martians 与 per-interface 同名参数 |
| 作用 | 只记录,不丢弃 |
| 基线 | 边界主机与网关开启,配合 rp_filter 使用 |
典型使用场景
- 排查路由配置错误:地址规划混乱时 martian 日志会立刻增多
- 发现伪造源地址的探测:某些扫描与欺骗行为会触发此类记录
- 安全事件辅助定位:异常报文时间是事件时间线的补充证据
- 虚拟化宿主机运维:识别上层虚拟网络产生的正常噪声与真实异常
开启与观测
开启与观测
# 写入独立配置文件避免覆盖系统默认
# /etc/sysctl.d/99-hardening.conf
echo 'net.ipv4.conf.all.log_martians = 1' >> /etc/sysctl.d/99-hardening.conf
sysctl --system
# 观测内核日志中的记录
journalctl -k --since '1 hour ago' | grep -i martian | tail -20
# 统计近一小时的量级,判断噪声水平
journalctl -k --since '1 hour ago' | grep -ci martian判读要点
| 现象 | 可能原因 | 处理方向 |
|---|---|---|
| 日志量突然激增 | 路由或地址配置错误 | 核对本机路由表与地址规划 |
| 源地址为回环或保留段 | 伪造源地址的探测或欺骗 | 结合 rp_filter 与防火墙规则处置 |
| 宿主机上持续出现 | 虚拟网络产生的正常报文 | 先做基线观察,再决定是否长期开启 |
| 特定业务网段频繁出现 | 该网段存在地址冲突 | 登记并推动网络侧整改 |
高噪声环境(公网 IP、虚拟化宿主)会持续产生日志:务必确认日志轮转与告警阈值,防止日志刷盘影响业务与审计留存。
日志只记录不阻断:真正拦截靠 rp_filter 与防火墙规则,两者定位不同,配合使用才能既看见也挡住。