Маршрутизация вызова веб-службы с IP-фильтром-из контейнера Docker через WireGuard VPN

Сценарий:

Простой PHP-скрипт (myip.php), размещенный на сервере с общедоступным IP-адресом WSIP. Скрипт доступен по http и https.

У меня есть небольшой сервер (GW)с общедоступным IP-адресом GWIP. Этот сервер предназначен для использования только в качестве шлюза.

Другой сервер (WORKER)должен получить доступ к скрипту php, но только через GW . WORKER, на нем установлен Docker.

Wireguard настраивается между GW и WORKER, при этом GW действует как VPN-сервер.

GW wg0.conf

[Interface]
PrivateKey = <GW-PRI-K>
Address = 10.1.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <WORKER-PUB-K>
AllowedIPs = 10.1.0.2/32,10.1.0.0/24

WORKER wg0.conf

[Interface]
PrivateKey = <WORKER-PRI-K>
Address = 10.1.0.2/24

[Peer]
PublicKey = <GW-PUB-K>
Endpoint = GWIP:51820
AllowedIPs = 10.1.0.1/24,WSIP/32
PersistentKeepalive = 25

С WORKER (host)я могу получить доступ к веб-сервису. Все ок.

curl http://$WSIP/myip.php
xxx.xxx.243.174

curl https://$WSIP/myip.php
xxx.xxx.243.174

Но если я запускаю ту же команду из док-контейнера:

curl http://$WSIP/myip.php
xxx.xxx.243.174

curl https://$WSIP/myip.php

НЕТ ОТВЕТА для https.

Соответствующие записи в таблице маршрутизации WORKER:

10.1.0.0/24 dev wg0 proto kernel scope link src 10.1.0.2
WSIP dev wg0 scope link 

Похоже, проблем с доступом к серверу WS нет, но что-то происходит с ответом.

Я почти уверен, что решения должны быть связаны с маскировкой, но через несколько часов я немного потерялся.

Есть зацепки?

0
задан 21 October 2021 в 16:37
1 ответ

Поскольку вы получаете ответ с помощью http, это не должно быть ошибкой маршрутизации или нации. Кроме того, вы не получите ошибку с curl, так что это может быть просто пустой ответ.

Не могли бы вы попробовать получить http-код curl -I https://$WSIP/myip.phpи сделать curl подробным с помощью curl -v https://$WSIP /myip.php?

Вы также можете проверить журналы php.

0
ответ дан 2 November 2021 в 20:53

Теги

Похожие вопросы