установить безопасное соединение через SSH [закрыто]

Я настраиваю серверное приложение, которое требует установления безопасного соединения через SSH2, например клиент должен открыть SSH2-соединение с сервером, чтобы получить доступ к определенному приложению:

% ssh -s -p5000 my.server.com app

Я хочу понять, что именно происходит после выполнения этой команды? Как клиент / сервер узнают, что им нужно работать по безопасному каналу SSH? Это называется ssh-туннелированием или у него другое название?

Спасибо.

-1
задан 16 December 2015 в 21:59
2 ответа

% ssh -s -p5000 my.server.com app подключается к my.server.com, затем запускает подсистему "app" в my.server.com

Откуда клиент/сервер знает, что он должен работать по SSH защищенному каналу?

SSH защищенный канал немного запутан: SSH уже безопасен. Безопасный канал может быть VPN.

Обратите внимание, что SSH туннелирование и VPN не одно и то же:

  • VPN работает на транспортном уровне (соединяет сети), в то время как SSH туннель работает на прикладном уровне (соединяющие узлы).
  • VPN может быть аппаратным или программно реализованным, в то время как ssh туннель является всегда программное обеспечение.
  • Вы можете запускать ssh внутри VPN.
2
ответ дан 5 December 2019 в 18:58

Вы подключаетесь к tcp my.server.com:5000, там запускается подсистема ssh "app". То, что выполняется, определяется этой подсистемой (в конфигурационном файле сервера ssh). Эти подсистемы могут передавать данные туда и обратно, через stdin и stdout. Внешний противник видит соединение по протоколу tcp, видит, что это сессия ssh и ничего больше. Это не называется "ssh туннелированием".

Туннелирование - это когда вы пересылаете какой-то TCP сокет, как этот: ssh firewall -L 12345:system-behind:54321, затем локально соединяетесь с localhost:12345 и работает так, как будто Вы сидите на брандмауэре и подключаетесь к системе - позади:54321 оттуда. Вы "туннелируете" tcp-соединение через ssh. Добавив -g, Вы можете позволить кому угодно в Вашей сети соединиться с you:12345 и быть как будто бы соединены с system-behind:54321 от брандмауэра.

Например, рассмотрим Linux firewall, делающий NAT и с ssh сервером, и некоторые windows серверы позади него, которые имеют брандмауэр, который разрешает соединения только из локальной сети. Вы можете подключиться к нему вот так: ssh firewall -L 13389:windows-server address:3389 и затем xfreerdp /v:localhost:13389; сервер будет видеть соединение с локального адреса брандмауэра, а не с Вашего интернет-адреса.

Вы можете сделать это в обратном порядке с помощью ssh remote -R 12345:system-near-you:54321. Затем вы открываете сокет на удаленном компьютере, и кто-то, сидящий на удаленном компьютере, может подключиться к localhost:12345 и закончить так, как будто он сидит на вашей машине и подключается к system-near-you:54321. Это обратное туннелирование. Опять же, -g позволяет это не только тем, кто сидит непосредственно на удаленном компьютере, но и всем, кто может подключиться к remote:12345.

Также существует ssh ip туннелирование, когда вы создаете виртуальные туннельные интерфейсы, как на сервере, так и на клиенте, присваиваете туда ip адреса и соединяете их с помощью ssh. Это называется VPN, но делать это с машиной ssh не очень удобно, и я никогда не видел, чтобы это использовалось.

.
6
ответ дан 5 December 2019 в 18:58

Теги

Похожие вопросы