与 UFW 相关的 wireguard 设置存在问题。
CLIENT A -------- SERVER -------- CLIENT B
10.10.10.5 10.10.10.1 10.10.10.11
我想从客户端 A 访问客户端 B 的 SSH,但 UFW 用以下消息阻止了此操作。
在服务器上:
[UFW BLOCK] IN=wg0 OUT=wg0 MAC= SRC=10.10.10.5 DST=10.10.10.11 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=28221 DF PROTO=TCP SPT=51201 DPT=22 WINDOW=64860 RES=0x00 SYN URGP=0
有人知道我必须添加哪个路由吗?在其他 VPN 配置中,建议将默认路由更改为允许。但服务器对互联网开放。
顺便说一句。客户端之间的 Ping 可以正常工作。
谢谢!
答案1
我刚刚在自己的设置上解决了这个问题。问题是我不知何故丢失了 iptables 设置,这允许在我的 wireguard 主机上伪装 wireguard 流量。以下是适当的命令(将 wg0 替换为您的 wireguard 设备,将 ens3 替换为您的 lan 设备):
iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
之后我又可以正常使用 ssh 了!你可以将这些添加到 wireguard 配置文件中,通过在服务器主机上的 wireguard 配置中添加以下几行来自动化 iptables [Interface]
:
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
来源:https://securityespresso.org/tutorials/2019/03/22/vpn-server-using-wireguard-on-ubuntu#configuration并且花费了太多时间来解决 wireguard 的问题 :)