针对 Linux 服务器的代理唤醒呼叫失败
技术文章 ID:
KB82686
上次修改时间: 2016/06/22
环境
McAfee VirusScan Enterprise for Linux (VSEL) 1.x、2.x
问题
由 ePolicy Orchestrator (ePO) 管理的 Linux 服务器不响应来自 ePO 服务器的代理唤醒呼叫。
原因
客户端上的防火墙规则阻止了与 ePO 服务器的通信。
解决方案
禁用或修改阻止与 ePO 服务器通信的客户端防火墙规则。客户端必须能接受 TCP 端口 8081 上的流量。
要进行故障排除并确认此问题,请执行下列操作:
确保在 ePO 系统树中列出的 Linux 服务器 IP 地址正确,并且代理不存在其他问题:
- 在 Linux 服务器和 ePO 服务器上打开命令行会话。
- 确认在 ePO 系统树中注册的 Linux 服务器 IP 地址正确。
- 从 Linux 服务器 Ping ePO 服务器并从 ePO 服务器 Ping Linux 服务器。
- 确认是否可以在 Linux 服务器上通过 cmdagent 命令将属性信息发送到 ePO。在 Linux 服务器上键入以下命令并按 ENTER:
/opt/McAfee/cma/bin/cmdagent -P
如果能够将属性发送到 ePO,将会更新上次通信时间。
- 确认代理是否记录了任何通信错误。 在 Linux 服务器上键入以下命令并按 ENTER:
/opt/McAfee/cma/scratch/etc/log
- 确认代理唤醒通信端口处于 LISTEN 状态。键入 netstat -an|grep8081 并按 ENTER。
输出应类似于:
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
验证客户端防火墙是否会阻止与 ePO 服务器的通信:
- 在 Linux 服务器上启用数据包捕获并从 ePO 服务器执行唤醒呼叫。
要开启数据包捕获,请使用下列其中一个命令:
tcpdump
或者
tcpdump -iethX
或者
tcpdump -w /tmp/packet.pcap -i ethX
在查看网络数据包捕获时,您会看到下列问题:
16:46:53.617566 IP X.X.X.X.60195 > Y.Y.Y.Y.tproxy: Flags [S] seq 1384592987 , win 8192 , options [mss 1460 , nop , wscale 8 , nop , nop , sackOK], lenght 0
16:46:53.617627 IP Y.Y.Y.Y > X.X.X.X: ICMP host Y.Y.Y.Y unreachable -admin prohibited, length 60
16:46:56.625077 IP X.X.X.X.60195 > Y.Y.Y.Y.tproxy: Flags [S] seq 1384592987 , win 8192 , options [mss 1460 , nop , wscale 8 , nop , nop , sackOK], lenght 0
16:46:56.625131 IP Y.Y.Y.Y > X.X.X.X: ICMP host Y.Y.Y.Y unreachable -admin prohibited, length 60
16:46:58.616867 ARP , Request who-has X.X.X.X tell Y.Y.Y.Y , length 28
16:46:58.617158 ARP , Reply X.X.X.X is-at d8:9d:67:19:29:80 (oui unknown) , length 46
16:47:02.630779 IP IP X.X.X.X.60195 > Y.Y.Y.Y.tproxy: Flags [S] seq 1384592987 , win 8192 , options [mss 1460 , nop , nop , sackOK] , length 0
16:47:02.630833 IP Y.Y.Y.Y > X.X.X.X: ICMP host Y.Y.Y.Y unreachable -admin prohibited, length 56
16:47:12.088548 IP X.X.X.X.60197 > Y.Y.Y.Y.tproxy: Flags [S] seq 4262429784 , win 8192 , options [mss 1460 , nop , wscale 8 , nop , nop , sackOK], lenght 0
16:47:12.088601 IP Y.Y.Y.Y > X.X.X.X: ICMP host Y.Y.Y.Y unreachable -admin prohibited, length 60
16:47:15.094336 IP X.X.X.X.60197 > Y.Y.Y.Y.tproxy: Flags [S] seq 4262429784 , win 8192 , options [mss 1460 , nop , wscale 8 , nop , nop , sackOK], lenght 0
16:47:15.094389 IP Y.Y.Y.Y > X.X.X.X: ICMP host Y.Y.Y.Y unreachable -admin prohibited, length 60
- X.X.X.X 是发出唤醒呼叫的 ePO 服务器的 IP 地址。
- Y.Y.Y.Y 是 Linux 服务器的 IP 地址。
- Tproxy 是指通信端口 8081。
在此示例中,ePO 服务器尝试与 Linux 服务器上的端口 8081 建立连接(通过不断发送 SYN 网段),但是 Linux 服务器以 ICMP 错误响应。错误代码 (unreachable - admin prohibited) 指出,由于防火墙规则 (-admin prohibited),无法访问 TCP SYN 网段。
-
找到阻止通信的规则。 键入 iptables -L 并按 ENTER。
输出将类似于:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state
RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
禁用该防火墙规则或将它更改为接受 TCP 端口 8081 TCP 之后,Linux 服务器将可成功响应唤醒呼叫。
免责声明
本文内容源于英文。如果英文内容与其翻译内容之间存在差异,应始终以英文内容为准。本文部分内容是使用 Microsoft 的机器翻译技术进行翻译的。
|