переадресация портов на внутренний сервер

переадресация портов на внутренний сервер

Я запускаю сервер openvpn на своем VPS с публичным IP. Есть сервер backend, подключенный к VPN. Вот IP-адреса VPN: VPS: 10.8.0.1 сервер backend: 10.8.0.2. eth0 — публичный интерфейс, tun0 — интерфейс VPN

Теперь я хотел бы перенаправить, например, порт 22 на внутреннем сервере на порт 2200 на VPS. Вот что я сделал на VPS (на основе нескольких руководств и уже заданных вопросов):

  1. открыл порт 2200
  2. включена переадресация IPv4
  3. поместите это в /etc/ufw/before.rules (да, я использую ufw и все работает правильно):

    *нат

    :ПРЕДВАРИТЕЛЬНЫЙ ПЕРЕХОД ПРИНЯТЬ [0:0]

    :ПОСТРАСПИСАНИЕ ПРИНЯТЬ [0:0]

    -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.8.0.2:22

    -A POSTROUTING -d 10.8.0.2 -p tcp --dport 22 -j SNAT --to-source VPS-public-IP:2200

    -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j МАСКАРАД

  4. Перезагрузил UFW или даже перезагрузил всё...

  5. Пробовал другие решения, комментируя некоторые строки (например, первое правило POSTROUTING выше). Ничего - очевидно - не помогло.

Вывод nmap VPS-public-IP -p 2200говорит, что порт «фильтруется», и когда я пытаюсь подключиться по ssh к порту 2200, он просто зависает и ничего не делает, я даже не получаю никаких ошибок - это также происходит, когда я пытаюсь подключиться по ssh с VPS на внутренний сервер через VPN (что обычно работает). Что я упускаю?

решение1

Для тех, кто все еще ищет решение.

В зависимости от вашей политики FORWARD (предполагая, что это DROP)

iptables -t nat -A PREROUTING -p tcp -d xx.xx.xxx.xxx --dport 80 
         -j DNAT --to-destination yyy.yyy.yy.yy:80
iptables -A FORWARD  -p tcp -d yyy.yyy.yy.yy --dport 80 -j ACCEPT
Result:  x:80 --> X --y:80--> Y

iptables -t nat -A POSTROUTING -p tcp -d yyy.yyy.yy.yy --dport 80
         -j SNAT --to-source xx.xx.xxx.xxx
Result:  x:80 --> X <--y:80--> Y

iptables -A FORWARD  -p tcp -s yyy.yyy.yy.yy --sport 80 -j ACCEPT
Result:  x:80 <--> X <--y:80--> Y

Также можно добавить это правило для локально инициированных соединений: x --> x:80

iptables -t nat -A OUTPUT -p tcp --dport 80 -d xx.xx.xxx.xxx
         -j DNAT --to-destination yyy.yyy.yy.yy:80  
Result:       
  x:80 ->- X <--y:80--> Y
     |_____V

Связанный контент