Общий доступ к Интернету с компьютера с Windows на компьютер с Linux через ssh
У нас есть доступ к защищенной инфраструктуре Linux через компьютер под управлением Windows. У linux инфра нет доступа к интернету, но у Windows машина есть.
На этой машине с Windows мы установили putty и можем подключиться к ней с помощью linux. Мы можем настроить туннели от машины Windows до инфраструктуры Linux в обоих направлениях (локальном и удаленном).
Что мне интересно, так это то, можем ли мы предоставить linux infra доступ в интернет через хост Windows, через удаленный туннель с использованием замазки.
Нам нужен только доступ по http / https, потому что это для обновлений безопасности Debian и подготовки новых компьютеров (которые сейчас не могут установить какой-либо пакет из-за отсутствия доступа в Интернет).
Схема достаточно ясна, но я не знаю, как реализовать ее на практике:
Я думаю, что мне понадобится своего рода HTTP-прокси на компьютере с Windows, который прослушивает порт, на который направляется удаленный туннель?
Как настроить фронтальную машину ssh так, чтобы другие узлы, использующие ее в качестве шлюза, подключались через туннель ssh?
Кроме того, как DNS будет работать в этом случае?
Спасибо за указатели!
1 ответ
Если сервер SSH позволяет это (что является настройкой по умолчанию для большинства дистрибутивов Linux), вы можете настроить переадресацию TCP с помощью PuTTY (и любого другого клиента SSH).
Определите порт на сервере SSH, который доступен и не используется, например, 8080.
В PuTTY установите правило, которое будет туннелировать TCP-трафик от этого порта 8080 на SSH-сервере через SSH к вашей системе Windows и перенаправлять его на прокси-сервер (proxy.example.com порт 8080):
На сервере SSH установите
http_proxy
а такжеhttps_proxy
Переменные окружения и многие приложения смогут использовать этот прокси-сервер через переадресацию порта ssh (для некоторых приложений потребуется изменить свои собственные настройки, чтобы использовать прокси-сервер):export http_proxy="http://username:password@localhost:8080" export https_proxy=$http_proxy
и проверить, например:
curl -vv http://faultserver.ru
На других серверах (если позволяет брандмауэр) вы можете использовать:
export http_proxy="http://username:password@<ip-of-ssh-server>:8080"
Этот конфиг не был проверен.