На волне роста популярности молодежного wireguard пробую его настроить на удаленном шлюзе для выхода через него как через openvpn. Топология звезда (пока один клиент, но будут другие). В итоге я хочу выходить через шлюз в интернет и взаимодействовать с другими клиентами подсети 10.88.0.0/24.
Конфиг шлюза
[Interface]
Address = 10.88.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = приватный-ключ-сервера
[Peer]
PublicKey = публичный-ключ-клиента
AllowedIPs = 10.88.0.3/32
Конфиг клиента
[Interface]
Address = 10.88.0.3/32
PrivateKey = приватный-ключ-клиента
DNS = 8.8.8.8,1.1.1.1
[Peer]
PublicKey = публичный-ключ-сервера
AllowedIPs = 0.0.0.0/0
Endpoint = внешний-айпи-сервера:51820
В nftables на сервере
chain prerouting {
type nat hook prerouting priority 0;
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
iifname "wg0" oifname "ens3" ip saddr 10.88.0.0/24 masquerade
}
ens3 - основной интерфейс шлюза.
Форвардинг на сервере
cat /proc/sys/net/ipv4/ip_forward
1
sysctl -a | grep ipv4.conf.all.forw
net.ipv4.conf.all.forwarding = 1
Стандартные маршруты клиента после подключения к шлюзу
default via 192.168.7.1 dev enp1s0 proto dhcp metric 20100
ип-сети-провайдера dev enp1s0 scope link metric 1000
192.168.7.0/24 dev enp1s0 proto kernel scope link src 192.168.7.9 metric 100
Маршруты клиента с моими правками (взял тоже, что пушилось от openvpn шлюза, но изменил интерфейс и адреса)
default via 10.88.0.1 dev wg0 proto static metric 50
default via 192.168.7.1 dev enp1s0 proto dhcp metric 20100
10.88.0.0/24 dev wg0 proto kernel scope link src 10.88.0.3 metric 50
внешний-айпи-сервера via 192.168.7.1 dev enp1s0 proto static metric 100
ип-сети-провайдера dev enp1s0 scope link metric 1000
192.168.7.0/24 dev enp1s0 proto kernel scope link src 192.168.7.9 metric 100
Стандартные маршруты на сервере
default via шлюз-сервера dev ens3 proto dhcp src внешний-айпи-сервера metric 100
10.88.0.0/24 dev wg0 proto kernel scope link src 10.88.0.1
подсеть-сервера dev ens3 proto kernel scope link src внешний-айпи-сервера
ип-провайдера via шлюз-сервера dev ens3 proto dhcp src внешний-айпи-сервера metric 100
Сервер по внутреннему адресу 10.88.0.1 пингуется. Все, что за пределами внутренней сети не пингуется. Трасировка доходит только до шлюза, а дальше звездочки до упора. В варианте с моими правками маршрутов сервер пингуется, но трасса не уходит дальше локалхоста. По wg
на шлюзе траффик идет, но, видимо, только внутренний до шлюза.
Что поправить чтобы заработало?