Настройка маршрутов wireguard клиента для выхода через шлюз
На волне роста популярности молодежного 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
на шлюзе траффик идет, но, видимо, только внутренний до шлюза.
Что поправить чтобы заработало?