переадресация портов с использованием прокси-IP

переадресация портов с использованием прокси-IP

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

Обычный способ сделать это — разрешить переадресацию портов на моем маршрутизаторе, а затем сделать: ssh ubuntu@myPublicIpно мой провайдер использует CGNAT, поэтому я не могу переадресовывать порты с моим назначенным публичным IP. Поэтому я использовал tinyproxy на моем экземпляре AWS и подключил свою локальную машину к IP-адресу прокси.

Это означает, что каждый запрос, который я делаю через свою локальную машину, проходит через прокси-IP. Теперь мой публичный IP заменен на прокси-IP. Мой вопрос в том, как мне настроить переадресацию портов на моей локальной машине Linux, на которой включен прокси, чтобы я мог подключиться к машине удаленно с помощью ssh, например: ssh ubuntu@myProxyIp.

решение1

Чтобы связаться с машиной, находящейся за NAT/брандмауэром/чем-то еще, вам не нужно ничего, кроме возможности этой машины устанавливать исходящее соединение с публичной сетью и иметь доступ по SSH к экземпляру в публичной сети.

Настройка на машине за NAT должна гарантировать, что она создает исходящее SSH-соединение с включенной обратной переадресацией портов:

ssh -R:60000:127.0.0.1:22 [email protected]

где [email protected]— учетная запись и адрес экземпляра в публичной сети, к которому у вас есть доступ. Эта команда, по сути, означает следующее: установить SSH-подключение с friendly.domain.tldиспользованием пользователя joeдля аутентификации и раскрыть наш локальный порт TCP 22 на удаленном конце как порт TCP 60000. Если программное обеспечение сервера SSH достаточно новое (и конфигурация это позволяет), вы также можете напрямую сопоставить свой локальный перенаправленный порт с IP-адресом, выходящим в Интернет, на friendly.domain.tld, но я предполагаю, что здесь такая конфигурация не допускается.

Теперь, когда наша машина установила исходящую ссылку, все, что нам нужно сделать, чтобы подключиться к ней из любой точки мира, это использовать friendly.domain.tldв качестве прокси в нашем SSH-подключении. Для этого вам нужно будет открыть два окна терминала: первое будет использоваться для установки ссылки с экземпляром friendly.domain.tldдля переадресации открытого порта TCP 60000 на вашу локальную машину:

ssh -L60000:127.0.0.1:60000 [email protected]

Это сопоставляет TCP-порт 60000 на петлевом интерфейсе с friendly.domain.tldпетлевым интерфейсом экземпляра, на котором вы запускаете команду ssh.

С этого момента вы можете подключиться к своему компьютеру за NAT, просто используя:

ssh -p60000 my_account@localhost

где my_accountнаходится учетная запись на вашем компьютере за NAT.

Всего в игре задействовано три SSH-туннеля:

machine_behind_nat <=1=> friendly_instance <=2=> your_laptop
            <=================3==================>

Причина такой настройки заключается в том, чтобы гарантировать, что даже если «friendly_instance» взломан, ваша связь с машиной за NAT не будет скомпрометирована (мы не доверяем «friendly_instance» за пределами того, что разрешаем ему передавать байты через его интерфейс обратной связи). Мы используем сквозное шифрование в нашем туннеле № 3, который проходит через туннели № 1 и № 2.

Я покрылэта установка в моем блогеесли вам нужна небольшая предыстория и другие трюки, которые можно сделать с помощью ssh.

решение2

В зависимости от того, что именно вам нужно перенаправить, вы можете сделать динамическую обратную переадресацию портов с помощью ssh.

Если вам нужно проксировать только порт 22:

ssh -R 22:0.0.0.0:2222 user@remote_server

Затем вы можете подключиться по ssh к локальной машине, выполнив:

ssh -p 2222 localuser@ProxyIP

Если вы хотите выполнить динамическую пересылку:

ssh -R 0.0.0.0:2222 user @remote_server

Вы можете получить доступ ко всему в вашей локальной сети с помощью цепочек прокси. Обратите внимание, что любой, кто знает ваш удаленный IP и порт для SOCKS-прокси, может получить доступ к вашей локальной сети. Вы можете захотеть реализовать брандмауэр, чтобы ограничить доступ к ней.

Вот хорошая статья, рассказывающая об этом:https://posts.specterops.io/offensive-security-guide-to-ssh-tunnels-and-proxies-b525cbd4d4c6

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