这些天我在 kern.log 中收到了一些火星数据包:
Jul 7 02:28:20 box14932 kernel: [789192.798073] IPv4: martian source XXX.XXX.XXX.XXX from 10.91.12.01, on dev eth1
Jul 7 02:28:20 box14932 kernel: [789192.798095] ll header: 00000000: 44 a8 12 41 1d 2b 13 8b 9c ab 34 89 10 00 D.BB.......Y..
Jul 7 04:29:12 box14932 kernel: [798267.423393] IPv4: martian source XXX.XXX.XXX.XXX from 10.91.20.10, on dev eth1
Jul 7 04:29:12 box14932 kernel: [798267.423401] ll header: 00000000: 44 a8 12 41 1d 2b 13 8b 9c ab 34 89 10 00 D.BB.......Y..
Jul 7 04:29:12 box14932 kernel: [798267.423408] IPv4: martian source XXX.XXX.XXX.XXX from 10.91.20.10, on dev eth1
Jul 7 04:29:12 box14932 kernel: [798267.423410] ll header: 00000000: 44 a8 12 41 1d 2b 13 8b 9c ab 34 89 10 00 D.BB.......Y..
源“XXX.XXX.XXX.XXX”是我的服务器的公网IP地址。
我在 Google 上搜索,但还是没找到到底是什么问题。这是欺骗攻击还是我的服务器的网络配置问题?
我的服务器上有两个接口:
- eth1是主接口(公网 IP)
- eth2是 RPN 接口(真实专用网络,因此不连接到公共网络),其 IP 地址以 10.91 开头...
- 洛显然,这是回送。
这是我的 sysctl.conf 配置,其中 rp_filter=1 和 log_martians=1:
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
有人能帮帮我吗?我应该担心这些火星人吗?
你对添加 iptables 规则来 DROP 和 LOG 数据包有什么看法,例如:
-A INPUT -i -s 10.0.0.0/8 ENO1 j DROP
非常感谢您的帮助
答案1
您应该能够通过检查数据“44 a8 12 41 1d 2b 13 8b 9c ab 34 89 10 00”中嵌入的 MAC 地址来找到源。44:a8:12:41:1d:2b 应该是您的接口的 MAC 地址。13:8b:9c:ab:34:89 应该是远程设备的 MAC 地址。
尝试检查您的缓存以查看是否有这些 MAC 地址的其他地址。 arp -a
应该是使用的命令。
要检查您的设备的 MAC 地址,请使用ip link show
或ifconfig
。
答案2
遇到的大部分问题火星人源是由于网络拓扑考虑而导致的。可能需要解决以下问题:
- 路由器:路由器可能通过非法地址进行路由;请确保路由器配置正确。
- 多个 NICS:如果一台计算机有多个 NIC 卡插在同一个交换机上,那么它可能会显示火星源(这是最常见的原因)。
- 防火墙:是否有防火墙允许不适当的流量进入?
- IP 地址:您使用的是多播还是 E 类网络地址?
- 其他计算机:其他服务器或工作站的 MAC 地址是否负责?
潜在解决方案
同一子网上的多个 NIC:同一子网上有多个 NIC 是最常见的原因。如果必须在同一个子网上有多个 NIC,请使用托管交换机。这可以通过脱机除一个 NIC 卡之外的所有 NIC 进行测试;如果消息消失,则可以假设多个 NIC 是原因。另一个解决方案是将 NIC 绑定在一起。一般来说,正确配置的网络不应要求多个 NIC 位于同一个子网上,绑定的情况除外。
关闭内核日志记录:如果您能够确定火星来源与安全问题无关,那么您可以关闭火星来源日志记录。请注意,您必须确保网络是安全的,并且这些消息的来源不是来自路由器。
在
/etc/sysconfig/sysctl add "net.ipv4.conf..log_martians=0"
确保“
sysctl
”已设置为在启动时运行“chkconfig boot.sysctl on
”