Есть VPS. Цель с VPS направлять трафик в локальную сеть серверам за домашним роутером. Микротик подключен к VPS по туннелю Wireguard. Адрес Микротика интерфейса Wg 10.9.9.5, адрес шлюза Wg 10.9.9.1. Локалка за Микротиком 192.168.1.0/24.
На VPS открыт порт и сделана переадресация:
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -t nat -A PREROUTING --dst 90.100.131.195 -p tcp --dport 443 -j DNAT --to-destination 10.9.9.5
sudo iptables -t nat -A POSTROUTING --dst 10.9.9.5 -p tcp --dport 443 -j SNAT --to-source 10.9.9.1
sudo iptables -t nat -A OUTPUT --dst 90.100.131.195 -p tcp --dport 443 -j DNAT --to-destination 10.9.9.5
sudo iptables -I FORWARD 1 -i ens3 -o wg0 -d 10.9.9.5 -p tcp -m tcp --dport 443 -j ACCEPT
Трафик из вне прилетает на интерфейс ens3 и перенаправляется в туннель Wg интерфейс wg0, Микротик в свою очередь принимает и перенаправляет трафик из туннеля Wg в локальную сетку на сервер 192.168.1.100.
Трафик ходит, всё хорошо, кроме того, что система безопасности сервера не видит реального IP клиентов, а видит любого приходящего как IP шлюза 192.168.1.1. Из-за этого возникаем множество проблем.
Спросите, а зачем ещё на микротике перенаправление? Ну так мне удобнее, но... Я пробовал и другой вариант. Прописал на VPS в Wg доступ сразу к локалке. Перенаправление в VPS iptables сделал сразу на 192.168. 1.100. Но проблема та же, все клиенты определяются адресом шлюза 192.168.1.1. Я мониторил трафик микротиком, он уже получает трафик без реального IP, все они локальные, стало быть они не передаются от VPS, а не теряются в самом микротике, как можно подумать.
Скажете - используй обратный прокси. Ответ НЕТ. Потому, что львиная доля - это не http/https трафик, и даже не только tcp. Для проброса в nginx требуется модуль stream. Я поставил его. Но он тоже не уметь передавать реальный исходный IP. Он умеет только вырвать реальный IP из заголовков http трафика. У меня не http трафик.
Какие есть варианты дотащить до конечного сервера реальный IP? Может это делается каким-то другим софтом? Или хитрые правила писать надо?
Порт 443 тут как пример. Там ещё и ftp и webdav, ssh, rdp... А весь смысл VPS - получить реальный белый IP, так как провайдер не даёт.