У нас есть доступ к безопасной инфраструктуре Linux через машину Windows. У linux infra нет доступа к Интернету, но у машины Windows есть.
На этой машине с Windows мы установили шпатлевку и с ее помощью можем подключиться к Linux. Мы можем настроить туннели от Windows-машины к Linux-инфраструктуре в обоих направлениях (локальном и удаленном).
Мне интересно, можем ли мы предоставить linux infra доступ в Интернет через хост Windows через удаленный туннель с помощью putty.
Нам нужен только доступ по протоколу http / https, потому что он предназначен для обновлений безопасности debian и подготовки новых машин (которые прямо сейчас не могут установить какой-либо пакет из-за отсутствия доступа в Интернет).
Схема на мой взгляд довольно ясна, но я не знаю, как ее реализовать на практике:
Я думаю, мне понадобится своего рода http-прокси на машине с Windows, который прослушивает порт, на который направляет удаленный туннель?
Как настроить фронтальную машину ssh так, чтобы другие хосты, использующие ее в качестве шлюза, подключались через туннель ssh?
Кроме того, как в этом случае будет работать DNS?
Спасибо за указатели!
Если сервер 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://serverfault.com
На других серверах (если это разрешено брандмауэром) вы можете использовать:
export http_proxy="http://username:password@<ip-of-ssh-server>:8080"
Этот конфиг не тестировался.