Skip to content

wg中继多网段转发的一些踩坑

之前从道理上配置通了中继服务器和两个对端,但是由于防火墙三端根本不通,这次就来把防火墙配置好。

复读机时间中继服务器系统是Centos7.两个对端是openwrt路由器。

各节点信息如下 中继服务器:100.64.0.1 对端A:100.64.0.11,lan:192.168.233.0/24 对端B:100.64.0.12,lan:172.16.233.0/24

首先是中继服务器,Firewalld默认会将接口放在public区域,这个区域是拒绝主动入方向的流量的。由于wg是只作为中继服务器,网络都是可信的,因此可以将wg的接口放在trusted区域,这个区域是允许所有流量进出的。 这里命令添加的接口是wg0

[root@server ~] firewall-cmd --zone=trusted --add-interface=wg0 --permanent
[root@server ~] firewall-cmd --reload
[root@server ~] firewall-cmd --zone=trusted --list-all
trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: wg0
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

此时可以看到wg0接口加入了trusted区域。对端已经可以和中继服务器正常通信,但是对端后面的lan网段还不能正常通信,还需要继续配置防火墙。 经过很长时间的关防火墙--抓包--开防火墙--抓包--查资料--抓包,然后在不知道哪份文档看到了一句**“sources的优先级比interfaces要高”**之后,发现还需要配置上放行源地址的策略才可以。 因为没有在文档中查阅到相关资料,我这里除了放行了两个对端的lan网段之外,保险起见还放行了wg所在的网段。

[root@server ~] firewall-cmd --zone=trusted --add-source=192.168.2233.0/24 --permanent
[root@server ~] firewall-cmd --zone=trusted --add-source=172.16.233.0/24 --permanent
[root@server ~] firewall-cmd --zone=trusted --add-source=100.64.0.0/24 --permanent
[root@server ~] firewall-cmd --zone=trusted --list-all
trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: wg0
  sources: 100.64.0.0/24 192.168.233.0/24 172.16.233.0/24
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

此时中继服务器上的防火墙已经配置好了,用tcpdump抓包也能发现相关的包。 By the way Openwrt上我是将wg的接口加入了lan的防火墙区域,并在防火墙自定义规则中配置了放行wg接口流量的策略。

防火墙策略,用web也可以配置的
root@Openwrt-DCX1:~# vi /etc/config/firewall 
config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	option network 'lan wg0'

防火墙自定义规则,用web也可以配置的
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT

此时三段都已经配置好了,可以尝试从两边对端的lan网段发起访问。

[C:\~]$ tracert -d 172.16.233.233

通过最多 30 个跃点跟踪到 172.16.233.253 的路由

  1     1 ms    <1 毫秒    1 ms  192.168.233.254 
  2    34 ms    37 ms    36 ms  100.66.6.1 
  3    66 ms    69 ms    68 ms  100.66.6.12 
  4    68 ms    66 ms    66 ms  172.16.233.253 

跟踪完成。

这里4跳分别是对端A,中继服务器,对端B,对端B的lan网段设备,已经可以正常通信了。 从中继服务器发起对对端后lan网段的访问也是正常的。

[root@server ~] traceroute 192.168.233.233
traceroute to 192.168.233.233 (192.168.233.233), 30 hops max, 60 byte packets
 1  100.64.0.11 (100.66.6.253)  34.990 ms  34.979 ms  35.466 ms
 2  192.168.233.233 (192.168.249.27)  38.896 ms  39.008 ms  39.267 ms

wg中继多网段转发就此完成,更多对端或更对网段的转发也可以以此扩展。