RouterOS配置Wireguard
两个远程办公室路由器连接到互联网,办公室工作站位于NAT后面。每个办公室都有自己的本地子网,对于ROS-1为10.1.202.0/24,对于ROS-2为10.1.101.0/24。两个远程办公室都需要到路由器后面的本地网络的安全隧道。
WireGuard接口配置
首先,必须在两个站点上配置WireGuard接口,以允许自动生成私钥和公钥。两个路由器的命令相同:
ROS-1
/interface/wireguard add listen-port=13231 name=wireguard-R1
ROS-2
/interface/wireguard add listen-port=13231 name=wireguard-R2
print 打印查看
/interface/wireguard print Flags: X - disabled; R - running 0 R name="wireguard1" mtu=1420 listen-port=13231 private-key="yKt9NJ4e5qlaSgh48WnPCDCEkDmq+VsBTt/DDEBWfEo=" public-key="u7gYAg5tkioJDcm3hyS7pm79eADKPs/ZUGON6/fF3iI="
对等配置
对等配置定义了谁可以使用WireGuard接口以及可以通过它发送何种流量。要识别远程对等,必须将其公钥与创建的WireGuard界面一起指定。
ROS-1
/interface/wireguard/peers
add allowed-address=10.1.101.0/24 endpoint-address=192.168.80.1 endpoint-port=13231 interface=wireguard1 \
public-key="v/oIzPyFm1FPHrqhytZgsKjU7mUToQHLrW+Tb5e601M="
ROS-2
/interface/wireguard/peers
add allowed-address=10.1.202.0/24 endpoint-address=192.168.90.1 endpoint-port=13231 interface=wireguard1 \
public-key="u7gYAg5tkioJDcm3hyS7pm79eADKPs/ZUGON6/fF3iI="
IP和路由配置
最后,IP和路由信息必须配置为允许通过隧道发送流量。
ROS-1
/ip/address
add address=10.255.255.1/30 interface=wireguard-R1
/ip/route
add dst-address=10.1.101.0/24 gateway=wireguard-R1
ROS-2
/ip/address
add address=10.255.255.2/30 interface=wireguard-R2
/ip/route
add dst-address=10.1.202.0/24 gateway=wireguard-R2
防火墙注意事项
默认的RouterOS防火墙将阻止隧道正确建立。在两个站点上的任何丢弃规则之前,流量应该在“输入”链中被接受。
ROS-1
/ip/firewall/filter
add action=accept chain=input dst-port=13231 protocol=udp src-address=192.168.80.1
ROS-2
/ip/firewall/filter
add action=accept chain=input dst-port=13231 protocol=udp src-address=192.168.90.1
此外,“前向”链也可能限制子网之间的通信,因此在任何丢弃规则之前也应接受此类流量。
ROS-1
/ip/firewall/filter
add action=accept chain=forward dst-address=10.1.202.0/24 src-address=10.1.101.0/24
add action=accept chain=forward dst-address=10.1.101.0/24 src-address=10.1.202.0/24
ROS-2
/ip/firewall/filter
add action=accept chain=forward dst-address=10.1.101.0/24 src-address=10.1.202.0/24
add action=accept chain=forward dst-address=10.1.202.0/24 src-address=10.1.101.0/24
RoadWarrior WireGuard隧道
RouterOS配置
添加一个新的WireGuard接口并为其分配一个IP地址。
/interface wireguard
add listen-port=13231 name=wireguard1
/ip address
add address=192.168.100.1/24 interface=wireguard1
添加新的WireGuard接口将自动生成一对私钥和公钥。您需要在远程设备上配置公钥。要获得公钥值,只需打印出接口的详细信息。
[admin@home] > /interface wireguard print
Flags: X - disabled; R - running
0 R name="wireguard1" mtu=1420 listen-port=13231 private-key="cBPD6JNvbEQr73gJ7NmwepSrSPK3np381AWGvBk/QkU="
public-key="VmGMh+cwPdb8//NOhuf1i1VIThypkMQrKAO9Y55ghG8="
对于接下来的步骤,您需要找出远程设备的公钥。一旦你有了它,通过指定远程设备的公钥和允许通过WireGuard隧道的地址来添加一个新的对等设备。
/interface wireguard peers
add allowed-address=192.168.100.2/32 interface=wireguard1 public-key="<paste public key from remote device here>"
防火墙注意事项
如果您配置了默认或严格的防火墙,则需要允许远程设备与您的设备建立WireGuard连接。
/ip firewall filter
add action=accept chain=input comment="allow WireGuard" dst-port=13231 protocol=udp place-before=1
要允许远程设备连接到RouterOS服务(例如请求DNS),请允许输入链中的WireGuard子网。
/ip firewall filter
add action=accept chain=input comment="allow WireGuard traffic" src-address=192.168.100.0/24 place-before=1
或者简单地将WireGuard接口添加到“LAN”接口列表中。
/interface list member
add interface=wireguard1 list=LAN
评论区