将特定外部流量转发到 LAN 服务器

将特定外部流量转发到 LAN 服务器

我想将传入流量重定向到我的服务器(其中 iptables 正在运行)到 LAN 中的另一台服务器。但是,我只希望传入流量来自特定外部 IP 地址时此功能才有效。否则,应丢弃流量。

让我举一个例子来说明这一点:

  • 外部客户端 IP:88.88.88.88
  • 服务器IP(在同一局域网内):172.26.0.99
  • 目标 IP(在同一局域网内):172.26.0.11

重定向示例

  1. 客户端(88.88.88.88)连接到SERVER IP (172.26.0.99)
  2. 交通通过隧道传输至Destination IP (172.26.0.11)

Drop 示例

  1. 陌生客户端(66.66.66.66)尝试连接SERVER IP (172.26.0.99)
  2. 交通状况DROPPED

答案1

如果我理解正确的话,你想转发全部流量从 88.88.88.88 到受保护的服务器 172.26.0.11。以下是使用 NAT 的示例:

sysctl net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -i <wan-if> -s 88.88.88.88 -j DNAT --to-destination 172.26.0.11
iptables -t nat -A POSTROUTING -s 88.88.88.88 -d 172.26.0.11 -j SNAT --to-source 172.26.0.99
iptables -A FORWARD -s 88.88.88.88 -d 172.26.0.11 -j ACCEPT

或者,按端口转发,使用ipvs或 SystemD 套接字或iptables -j REDIRECT设置转发和防​​火墙端口。使用 ipvs 和 iptables 的示例:

sysctl net.ipv4.vs.conntrack=1

ipvsadm -A -t "172.26.0.99:<port>" -s rr
ipvsadm -a -t "172.26.0.99:<port>" -r "172.26.0.11:<port>" -m

iptables -A INPUT -s 88.88.88.88 -j ACCEPT -m comment --comment "Allow 88.88.88.88"
iptables -A INPUT -j DROP -m comment --comment "Catch-all drop"

相关内容