防火墙后面的 Zabbix 服务器

防火墙后面的 Zabbix 服务器

这是我第一次使用zabbix。

我在 Linux 上安装了 zabbix 服务器。装有 zabbix 服务器的工作站被带有 iptables 的防火墙隐藏。

这是我的设置

互联网 -> 防火墙 -> LAN(zabbix 服务器)

防火墙有两个网络接口:

  • eth0 192.168.1.2(连接到互联网)
  • eth1 192.168.0.1(连接到 LAN)

Zabbix 服务器的 IP 为 192.168.0.80

在防火墙上我已经配置了这样的iptables(转发已启用):

# Default policy to drop all incoming packets.
iptables -P INPUT DROP
iptables -P FORWARD DROP


# Accept incoming packets from localhost and the LAN interface.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT


# Accept incoming packets from the WAN if the router initiated the connection.
iptables -A INPUT -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Forward LAN packets to the WAN.
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Forward WAN packets to the LAN if the LAN initiated the connection.
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Zabbix
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 10050 -j DNAT --to-destination 192.168.0.80
iptables -A FORWARD -s 161.97.136.20/32 -p tcp -d 192.168.0.80 --dport 10050 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 10051 -j DNAT --to-destination 192.168.0.80
iptables -A FORWARD -s 161.97.136.20/32 -p tcp -d 192.168.0.80 --dport 10051 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

现在,在 Zabbix 服务器(192.168.0.80)中我运行命令来监控端口 10051 上的调用:

sudo tcpdump -i any port 10051

我在 IP 为 161.97.136.20 的服务器上安装了一个 zabbix 代理。如果我尝试执行该命令

zabbix_sender -z <hostname server> -s "<source>" -p 10051 -vv -k <key> -o <value>

我希望从 tcpdump 中看到一些东西,但是我什么也没看到。

如果我从 LAN 内的另一台服务器(例如 IP 为 192.168.0.2)执行相同的命令,我会看到 tcpdump 捕获流量。

因此,看起来问题出在防火墙的 iptables 命令上。

我希望我已经表达清楚了。

你能帮助我吗?

答案1

我发现这个 FORWARD iptables 规则存在问题:

iptables -A FORWARD -s 161.97.136.20/32 -p tcp -d 192.168.0.80 --dport 10051 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

由于您设置的性质,具有 IP 的主机161.97.136.20不会通过私有 IP 来寻址您的 zabbix 服务器192.168.0.80,而是使用防火墙 eth0 的公共 IP。

我不是 iptables 专家,但这应该可行:

iptables -A FORWARD -s 161.97.136.20/32 -p tcp --dport 10051 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

此外,如果您想要使用主动 zabbix 代理架构,那么您只需要10051在 zabbix 服务器/zabbix 代理上打开端口。

相关内容