SSH к серверу за брандмауэром - PullRequest
15 голосов
/ 10 января 2012

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

Я рассмотрел туннелирование / обратное туннелирование, но похоже, что это решения для переадресации портов, которые не будут работать, поскольку брандмауэр запрещает все соединения на всех портах.

В идеале я хотел бы сделать это в Rubyиспользуя гем Net :: SSH), чтобы вместо открытия нового соединения, например:

Net::SSH.start('host', 'user', :password => "password")

, я мог как-то привязаться к существующему туннелю.

Спасибо!

Ответы [ 2 ]

28 голосов
/ 10 января 2012

Это довольно просто, если у вас есть контроль над сервером.Я дам версию для командной строки, и вы можете использовать ее в любой среде, которая вам нравится:

server$ ssh -R 9091:localhost:22 client.example.egg

client$ ssh -p 9091 localhost

Сервер сначала устанавливает соединение с клиентом, который начинает прослушивание на конце эмоции "R" (т. е. клиент) на порт 9091 (что я только что создал) и перенаправляет эти соединения на localhost:22, т. е. на ssh-сервер на самом себе.9091, который прозрачно пересылается на ssh-сервер сервера.

Это, как правило, наносит ущерб вашей проверке открытого ключа (и соответствующей безопасности!), Поскольку клиент ssh клиента не знает, что localhost:9091такой же как server:22.Если вашим клиентом является Putty, у вас есть возможность указать «реальное» имя сервера где-нибудь, чтобы можно было правильно искать учетные данные.

0 голосов
/ 10 января 2012

Если вы не можете создать (и поддерживать) туннель из хоста, к которому вы пытаетесь подключиться первым (что позволит вам затем подключиться через этот туннель), нет, вы не можете. В этом и заключается смысл брандмауэра: предотвращать несанкционированный доступ к сети.

Однако брандмауэр не должен блокировать туннель, хотя это зависит от того, как именно управляется туннель. Туннель переадресации портов, настроенный с использованием возможностей туннелирования ssh , может нарушить брандмауэр. Однако это также может привести к проблемам с администратором удаленной сети.

Итак, в конечном счете, вам нужно поговорить с сетевым администратором, чтобы смягчить правила брандмауэра, чтобы сделать это без необходимости туннелирования или, по крайней мере, получить разрешение на туннель.

...