Назад | Перейти на главную страницу

перенаправление портов на внутренний сервер

Я запускаю сервер openvpn на своем VPS с общедоступным IP. К VPN подключен внутренний сервер. Это IP-адреса в VPN: VPS: 10.8.0.1 внутренний сервер: 10.8.0.2. eth0 - это общедоступный интерфейс, tun0 - это интерфейс VPN.

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

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

    * нац

    : PREROUTING ACCEPT [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 говорит, что порт `` отфильтрован '', и когда я пытаюсь подключиться к порту 2200 по ssh, он просто зависает и ничего не делает, я даже не получаю никаких ошибок - это также происходит, когда я пытаюсь выполнить ssh с VPS на внутренний сервер через VPN (который нормально работает). Что мне не хватает?

Для людей, которые все еще ищут решение.

В зависимости от вашей политики 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