Linux 服务器响应未知 IP 的 ARP

Linux 服务器响应未知 IP 的 ARP

我家里有一台 Linux 服务器(OL 6.6,仅供参考)运行一些内部服务。今天早上我注意到它正在响应一个我看不到记录的地址的 ARP 请求。

该 IP 未在任何/etc/sysconfig/network-scripts文件中配置,并且未显示在 中ip addr show

从我的工作站:

macbook:~ elliott$ arping -c1 192.168.50.108
ARPING 192.168.50.108
60 bytes from 00:24:81:05:c0:cb (192.168.50.108): index=0 time=1.854 msec

--- 192.168.50.108 statistics ---
1 packets transmitted, 1 packets received,   0% unanswered (0 extra)
rtt min/avg/max/std-dev = 1.854/1.854/1.854/0.000 ms
macbook:~ elliott$ 

在服务器上:

[elliott@server ~]$ ifconfig | grep -i 00:24:81:05:C0:CB
br0       Link encap:Ethernet  HWaddr 00:24:81:05:C0:CB  
br0:1     Link encap:Ethernet  HWaddr 00:24:81:05:C0:CB  
eth0      Link encap:Ethernet  HWaddr 00:24:81:05:C0:CB  
[elliott@server ~]$ 
[elliott@server ~]$ ip addr | grep 192.168.50.108
[elliott@server ~]$ 

此 IP 位于我的路由器的 DHCP 范围内,仅供参考,并且不响应正常端口范围内的 ping 或任何 TCP 请求(nmap -T4 -Pn 192.168.50.108)。

我试过了:

  1. 关闭服务器以确认 ARP 回复停止
  2. 逐个关闭服务并终止所有不必要的进程 - 直到我关闭计算机,该 IP 才会停止响应(它也是开机时最先出现的 IP 之一)
  3. 更改默认网关以指向 Raspberry Pi 盒子并捕获该 IP 的任何网络流量——我还没有看到任何

所以我的问题是:a) 我应该有多担心?b) 我能/应该做什么来尝试追踪这个问题?

谢谢你的帮助!

答案1

您描述的技术称为arp 代理。它包括让一个接口(NIC1)响应 arp 查询代替另一个接口(NIC2)的端口,该接口不在同一物理网络上。NIC1 所在的计算机将负责正确路由发往 NIC2 的数据包。

从某种意义上说,这是 ARP 欺骗的反面:在 ARP 欺骗中,具有不同 MAC 地址的 PC 会假装拥有其他人的 IP 地址(例如网关的 IP 地址),以便拦截和分析所有网络流量。在这里,具有给定 IP 地址的 PC 会假装拥有其他人的 MAC 地址。

Arp 代理主要用于在无法桥接时连接虚拟机,或连接不同线路和/或 AP 上的物理 PC;事实上,ip_forwarding = 1sysctl.conf只允许转发 OSI 第 3 层数据包,而绝对必要的 ARP 流量属于 OSI 第 2 层。您自己是否曾经配置过此类东西,虚拟机或 DMZ?如果没有,那么您可能会开始担心。

为了进一步探究该问题,您可以采取以下措施:

  1. 检查哪些接口启用了 arp-proxying;如果您只找到一个br0,那么您就确定了 192.168.50.108 连接在哪个 NIC 上;

  2. 研究路由表,查看是否在任何地方建立了到 192.168.50.108 的替代路由;

  3. 研究系统接口、别名或虚拟,看是否添加了新的接口;

  4. 研究正在运行的进程,查看虚拟机管理程序是否正在运行(Xen、KVM、VMWare、VirtualBox 等);如果地址属于虚拟机,则不需要查看系统上的其他虚拟 NIC,其中一些(VirtualBox)经常会无缘无故地隐藏它们;

  5. 检查从您的服务器到某个本地或(最有可能)远程地址是否有任何反向隧道/VPN 连接打开;

  6. 尝试确定你的服务器上是否有rootkit。亨特chkroot工具有广泛使用的软件包可以很好地完成这项工作。不要指望他们能找到 NSA 级的 rootkit,但你也不是恐怖分子,对吧?

如果您正在处理入侵事件,那么这个人很可能已经足够聪明,设置了防火墙来丢弃所有不属于 ESTABLISHED、RELATED 连接的数据包(包括 ICMP),因此您几乎没有机会检测到他……但是,您可能会检测到他的一些漏洞(如果有的话):搜索不寻常的 iptables 或 ebtables 规则(实际上,您很可能根本不应该配置 ebtables,因此仅发现您的服务器上有 ebtables 正在运行,这将是一个巨大的漏洞)。您应该寻找的规则类型是那些重写数据包的源和/或目标的规则,但一般来说,您没有放置在那里的任何东西都可能是合理的担忧来源。

一个好办法可能是启用通过 ssh 进行的无密码登录,禁用服务器的密码登录,以及任何其他访问服务器的来源(当然,除了 ssh),然后在不连接任何电缆的情况下重新启动服务器,以确保您已将入侵者踢出。无密码登录无法轻易绕过,即使不知道您的加密密钥的公共副本。

相关内容