Запуск и останов Telnet_SSH

Вы можете запустить Telnet_SSH двойным нажатием мыши на иконке Telnet_SSH в папке программы XSecurePro меню ПУСК:

Диалоговое окно Telnet Connect Host возникнет на Вашем экране:

Сессия - это соединение с удалённым хостом (сервером, или обычным ПК, или ноутбуком), выполненное с учётом набора специфичных для этого соединения настроек. Эти настройки сохраняются в ini-файлах и профилях и позволяют Вам иметь различные установки для различных хостов (используя различные ini-файлы и профили).

Все настройки сессий Telnet сохраняются в секции [TELNET] файла xwp.ini.

Все настройки сессий SSH1 сохраняются в секции [tSSHPro] файла tsshpro.ini.

Все настройки сессий SSH2 сохраняются в секции [tSSH2Pro] файла tsshpro.ini.

Также Вы можете задать некоторые начальные установки для сессии, раскрыв расширенный набор настроек нажатием кнопки Details.

Первое, что Вам необходимо сделать для запуска сессии, - это установить соединение с удалённым хостом. В диалоговом окне Вам необходимо выбрать протокол, который Вы будете использовать (Telnet, SSH1, SSH2), адрес сервера (имя или IP) и номер порта, по которому на хосте доступен соответствующий сервис.

Нажатие OK приведёт к сохранению заданных настроек для следующей сессии и установлению соединения, используя эти настройки.

Вы можете отменить сделанные в диалоговом окне изменения нажатием на кнопке Cancel, что приведёт к закрытию диалогового окна.

Протокол

Telnet

Выбор протокола Telnet приведёт к использованию стандартного протокола TELNET по незащищённому каналу для обеспечения интерфейса обмена информацией между клиентом и сервером. В этом случае программа Telnet_SSH будет работать, как Telnet-клиент на Вашем ПК.

Заметка: сессия Telnet не шифруется; поэтому Ваш логин, пароль и другие важные данные будут передаваться по каналам связи в легко-читаемом формате.

SSH-1 и SSH-2

Выбор протоколов SSH1 или SSH2 приведёт к использованию соответствующих стандартных протоколов защищённого обмена информацией между клиентом и сервером по незащищённому каналу связи. В этом случае программа Telnet_SSH будет работать в качестве SSH-клиента на Вашем ПК.

Заметка: SSH - это средство безопасной аутентификации в незащищённых сетях. Это обеспечивает шифрованную терминальную сессию с надёжной аутентификацией как клиента, так и сервера, с использованием криптографии публичных ключей. Сессия SSH обеспечивает максимум безопасности и конфиденциальности в Интернете и частных сетях. Шифруется весь трафик, включая пароли и логины, для эффективного исключения атак сетевого уровня, к примеру, подслушивания установленного соединения, или перехвата соединения.

SSH - аббревиатура к "Secure Shell protocol" - протокол безопасного обмена информацией с шифрованием сетевого трафика между клиентом и сервером, используемый вместо существующих протоколов стека TCP/IP таких, как TELNET, RSH и RLOGIN. SSH должен поддерживаться как клиентом, так и сервером. SSH1 и SSH2 - это соответственно первая и вторая версии протокола.

Host

В этом поле необходимо указать имя хоста, с которым Вы собираетесь соединиться, и на котором выполняется соответствующий сервис (серверная реализация выбранного протокола - Telnet-сервер, SSH-сервер). Можно задать как доменное имя или имя хоста локальной сети, так и IP-адрес (в дот-нотации - например 192.168.0.32).

При нажатии на кнопку со стрелкой справа от текстового поля в выпадающем меню будут доступны для выбора имена хостов, заданные в файле hosts Вашей системы. Достаточно нажать на выбранной записи хоста, чтобы эта запись была размещена в текстовом поле Host.

Port

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

Для протокола Telnet умолчательный номер порта сервиса Telnet - 23.

Для протоколов SSH1/SSH2 умолчательный номер порта сервиса SSH1/SSH2 - 22.

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


Запуск сессии Telnet

Для установления соединения по протоколу Telnet выберите его, введите сетевое имя или IP-адрес хоста, с которым Вы хотите соединиться, а также при необходимости, если отличается от умолчательного, укажите номер порта, по которому доступен сервис Telnet на хосте, и нажмите кнопку OK. Telnet_SSH выполнит попытку соединения с заданным хостом.

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

Вы должны выполнить аутентификацию на удалённом хосте. Для этого укажите запрашиваемые данные доступа. Обычно достаточно ввести логин (login, username - имя пользователя удалённого хоста) и соответствующий ему пароль. После завершения аутентифкации Вы можете взаимодействовать с хостом, отправляя команды на исполнение, набрав их или выбрав из предоставленного меню, запуская приложения на удалённом хосте.

Вы можете настройть сессию Telnet под Ваши требования с помощью пунктов Settings и/или Keyboard Mapping меню Options.

Следующая последовательность команд может быть использована для примера работы сессии Telnet (конкретная реализация команд может зависеть от используемой удалённой оболочки - remote shell):

login: arsexam
$ DISPLAY=xtp2:0; export DISPLAY;
$ xterm&
$ mwm&

Для сохранения информации с экрана в файл можно задать в настройках сессии (меню Options/Settings закладка Logging), что и куда сохранять. Также Telnet_SSH записывает в файл telnet.out в директории установки пакета информацию о статусе соединения (что полезно для проверки причин сбоя или при наличии параметра 'trace' в командной строке).


Запуск сессии SSH

Протоколы SSH1/SSH2 обеспечивают защищённый обмен данными по незащищённому каналу связи посредством шифрования канала данных с помощью соответствующего алгоритма шифрования. Выбранный для сессии аглоритм шифрования используется для шифрования сетевого трафика между клиентским ПК и удалённым хостом, обеспечивая таким образом защиту данных. Шифрование канала выполняется ещё до аутентификации, что позволяет защищить все передаваемые данные, включая логин и пароль.

Telnet_SSH поддерживает следующие алгоритмы шифрования для протокола SSH1 - DES, 3DES, RC4 и Blowfish.
Telnet_SSH поддерживает следующие алгоритмы шифрования для протокола SSH2 - 3DES, Blowfish, CAST128, ARCFOUR, AES128, AES192 и AES256-cbc.
Алгоритмы DES и 3DES (Triple DES) медленные. RC4 и Blowfish алгоритмы шифрования существенно быстрее (меньше нагрузка на ЦПУ), чем 3DES. Вы можете указать алгоритмы шифрования, которые Telnet_SSH будет пробовать использовать по протоколу SSH. Telnet_SSH будет пробовать использовать 3DES как первый алгоритм (по умолчанию). Какой алгоритм будет выбран для конкретной сессии зависит в том числе от серверной реализации и настроек.

Telnet_SSH поддерживает опциональную компрессию всех данных в gzip (включая перенаправляемые (forwarded) данные X11 и порта TCP/IP), что может привести к существенному увеличению скорости на медленных соединениях. Вы можете указать уровень компрессии от 1 до 9 (умолчательное значение). Уровень 1 даст Вам высокую производительность (с минимальной компрессией), а уровень 9 - низкую производительность (с максимальным сжатием). С учётом высокой производительности современных ПК уровень 9 выбран умолчательным для снижения издержек в сети.

Заметка: для работы по протоколу SSH1 Вам необходим сервис SSH1 (.sshd), исполняемый на удалённом хосте, с которым Вы хотите соединиться. Для протокола SSH2 - соответственно сервис SSH2 (.sshd2).

Для установления SSH-соединения выберите протокол SSH1 или SSH2, введите сетевое имя или IP-адрес хоста, с которым Вы хотите соединиться, а также при необходимости, если отличается от умолчательного, укажите номер порта, по которому доступен сервис SSH1 или SSH2, соответственно, и нажмите кнопку OK. Telnet_SSH выполнит попытку соединения с заданным хостом.

Вы можете настройть сессию SSH1/SSH2 под Ваши требования с помощью пунктов Settings и/или Keyboard Mapping меню Options (описано ниже).

Используя форму, доступную по пункту Forwarding меню Options, Вы можете настроить в сессии SSH1/SSH2 перенаправление TCP/IP портов или данных X11 под свои нужды.

В случае удачного соединения на экране появится окно SSH аутентификации:

Аутентификация - это процедура проверки личности, пытающейся получить доступ к удалённому хосту. Вы должны подтвердить своё право доступа к удалённому хосту, используя один из трёх методов аутентификация, которые поддерживает Telnet_SSH при соединении с серверами SSH: аутентификация паролем, RSA аутентификация или аутентификация keyboard-interactive (для протокола SSH2).

При аутентификации паролем данные доступа (логин и пароль) передаются на сервер для выполнения аутентификации соединения. При этом передаваемые данные защищены от прослушивания, так как канал передачи данных уже шифруется.

Аутентификация keyboard-interactive - это гибкий метод аутентификации, использующий произвольную последовательность запросов и ответов. Это полезно не только с точки зрения проверки путём обмена данными, но также в процессе обмена есть возможность запросить у пользователя новый пароль, если старый уже устарел (к примеру).

RSA аутентификация подразумевает использование пары ключей - публичного и приватного, для аутентификции соединения.

Эта схема базируется на криптографии публичных ключей, когда крипто-система для шифрования и расшифровывания использует различные ключи и практически невозможно вычислить ключ для расшифровывания из ключа, используемого для шифрования. RSA - одна из таких систем. Вначале пользователь создаёт пару ключей - публичный и приватный, которые будут использоваться для RSA аутентификации. SSH сервер знает только публичный ключ, и только пользователь знает свой приватный ключ. Файл $HOME/.ssh/authorized_keys содержит список публичных ключей, допущенных для входа на SSH сервер. Когда пользователь делает попытку входа, программа SSH клиент на его стороне сообщает SSH серверу на стороне удалённого хоста какая пара ключей будет использоваться для соединения. SSH сервер проверяет разрешён ли этому ключу доступ и, если разрешён, отправляет SSH клиенту пользователя сообщение "challenge" - случайное число, зашифрованное с использованием публичного ключа пользователя, хранимого на сервере. "Challenge" может быть расшифрован только с использованием соответствующего приватного ключа пользователя. Таким образом SSH-клиент на стороне пользователя выполняет аутентифкацию соединения в случае успешной расшифровки сообщения "challenge" с использованием приватного ключа пользователя, подтверждая серверу свою идентичность тем, что владеет приватным ключом пользователя. При этом приватный ключ не раскрывается.

SSH сервер реализует протокол RSA аутентификации автоматически. Обычно пользователь создаёт свою пару RSA ключей, запуская утилиту ssh-keygen на удалённом хосте (UNIX сервер). Утилита сохраняет приватный ключ в файл $HOME/.ssh/identity, а публичный в файл $HOME/.ssh/identity.pub в пользовательской директории. Пользователю затем необходимо копировать (или дописать - append) содержимое файла identity.pub в файл $HOME/.ssh/authorized_keys в своей домашней директории на удалённом хосте.

Приватный ключ пользователя часто храниться в шифрованном виде на клиентской машине в файле identity. Пользователь должен указать файл identity, который будет использоваться для RSA аутентификации.

Passphrase - это пароль, используемый для защиты от несанкционированного использования приватного ключа. Этот пароль первоначально используется при создании пары ключей с помощью утилиты ssh-keygen для шифрования приватного ключа (то есть файла identity на сервере). Пользователь должен задать этот пароль прежде, чем цифровая подпись (приватный ключ) будет сгенерирована.

RSA аутентификация предлагает высокий уровень защиты процесса аутентификации, чем парольная аутентификация, требуя наличия как самого ключа, так и пароля к нему, без которого невозможно завершить процедуру аутентификации.

В диалоговом окне SSH аутентификации Вам следует указать требуемые настройки для аутентификации.

User name

В этом поле надо указать пользовательское имя (логин) для доступа на удалённый хост.

Passphrase

Если выбрана аутентификация паролем (Use plain password to log in), то Вы можете указать в этом поле Ваш пароль доступа к удалённому хосту.

Если выбрана RSA аутентификация (Use RSA key to log in), то Вам необходимо указать в этом поле пароль к Вашему приватному ключу.

Рекомендуется задавть пароль ко всем приватным ключам для исключения несанкционированного их использования, особенно на многопользовательских системах, где храняться приватные ключи. При использовании аутентификации с помощью ключей приватный ключ, созданный с паролем доступа, не будет доступен, если используется неверный пароль в процессе аутентификации.

Use plain password to log in

Если выбрана эта опция, то будет использоваться аутентифкация паролем.

Если выбран этот метод аутентификации, то Вы можете указать Ваш пароль доступа к удалённому хосту в поле Passphrase. Если же Вы его там ен укажите, то пароль будет запрошен у Вас в процессе аутентификации соединения.

Use RSA key to log in

Если выбрана эта опция, то будет использоваться RSA аутентификация.

Если выбрана RSA аутентификация, Вам следует указать пароль доступа к Вашему приватному ключу в поле Passphrase. Также Вам необходимо указать месторасположение файла приватного ключа identity, который будет использоваться для аутентификации соединения. Вы можете задать имя файла в текстовом поле или выбрать файл с помощью кнопки Private key file.

Private key file

При нажатии на эту кнопку открывается стандартное диалоговое окно "Открыть Файл". Вы можете выбрать Ваш файл identity для RSA аутентификации. RSA аутентификация будет выполняться только при наличии файла identity.

Для использования Вашего приватного ключа Вам необходимо перенести/копировать с сервера в безопасное место на Вашем ПК файл identity, созданный с помощью утилиты ssh-keygen на SSH сервере.

Один из способов передать файл identity с удалённого хоста на Ваш ПК - это использование FTP-клиента (в режиме ASCII).

Также перед использованием RSA аутентификации публичный ключ должен быть доступен SSH серверу.

Use Keyboard-Interactive Mode

Если выбрана эта опция, то будет использоваться аутентификация keyboard-interactive.

Укажите данные доступа, которые запросит SSH-сервер в процессе аутентификации по этому методу.

Disconnect

Вы можете немедленно прекратить соединение с SSH сервером до выполнения аутентификации, нажав на эту кнопку.

OK

После того, как Вы указали все необходимые для аутентификации настройки и данные, нажатие на кнопку OK инициирует процедуру аутентификации с использованием этих настроек и данных. Когда SSH сервер завершит аутентификацию соединения, он или выполнит заданную для исполнения команду (и возможно сразу закроется после исполнения согласно настроек), или после выполнения входа на удалённый хост отобразит окно эмулятора терминала с использованием заданной в настройках командной оболочкой (command shell). Все передаваемые данные и команды будут автоматически шифроваться.


Пример запуска сессии SSH

Во-первых, убедитесь, что:

  • ваш ПК доступен со стороны удалённого хоста (к примеру, используя утилиту Ping)
  • удалённый хост доступен с Вашего ПК (к примеру, используя утилиту Ping)
  • SSH-сервер (sshd-daemon или sshd2-daemon) исполняется на удалённом хосте.

После этого Вы можете запустить SSH сессию, используя следующие шаги:

  1. Двойное нажатие на иконке Telnet_SSH в папке пакета XSecurePro для запуска программы Telnet_SSH - должно открыться окно "Telnet Connect Host"

  2. Выберите протокол SSH-1 или SSH-2 в секции Interface.

  3. Введите сетевое имя или IP-адрес удалённого хоста, с которым Вы соединяетесь.

  4. Измените умолчательное значение номера порта SSH, если необходимо.

  5. Нажмите OK для установления соединения с удалённым хостом (откроется окно SSH аутентификации)

  6. Выберите Use plain password to log in

  7. Укажите Ваши данные доступа на удалённый хост: имя пользователя (логин) в поле User name и пароль в поле Passphrase

  8. Нажмите OK для входа в удалённую систему (должно открыться окно эмулятора терминала Telnet_SSH).

Завершение сессии

Вы можете завершить соединение Telnet_SSH выбрав команду Close оконного меню программы (тоже, что и нажатие на кнопку закрытия окна вверху-справа), или выбрав команду Exit в меню Commands самой программы Telnet_SSH.

Если Вы выберите команду Exit, когда установлено соединение с удалённым хостом, то Telnet_SSH отсоединит Вас от удалённого хоста автоматически (корректно закрыв все используемые приложения).


Telnet_SSH (SSH2) в качестве SOCKS4 прокси

Telnet_SSH в режиме SSH2 обеспечивает опцию "динамического перенаправления" ("Dynamic Forwarding"), которая позволяет программам FTP, XStartup и XServer/LbxLoxy получать доступ к защищённому хосту по SSH2-соединению. В действительности "Dynamic Forwarding" - это хорошо известный стандартный SOCKS4 прокси-сервер. Это означает, что его можно использовать для доступа к удалённому хосту по "кривому" пути.


Типовой пример

Предположим:

  • Вы работаете на HOST1 (к примеру, в России) под управлением MS Windows и можете использовать Telnet_SSH (SSH2)
  • У Вас есть доступ к промежуточному HOST2 (к примеру samplehostinusa.com в США), на котором работает SSH2-сервер
  • Вы хотите получить доступ к сайту на HOST3 (к примеру, "http://www.sho.com/" в США) с Вашего HOST1, используя излюбленный обозреватель-браузер, при этом сайт настроен для доступа только из США.

Вы можете сделать следующее:

  1. Соединиться с HOST1 на HOST2 по SSH2, используя Telnet_SSH.
    Используя команду "netstat -na", проверьте, что на Вашем ПК открылся порт "16001" LISTEN.
  2. Настройте Ваш излюбленный обозреватель-браузер на HOST1 так, чтобы он использовал для соединения SOCKS-прокси на Вашем ПК на порту 16001.
  3. Запустите Ваш излюбленный обозреватель-браузер и попробуйте открыть желаемый сайт "http://www.sho.com/" на HOST3.

Некоторые замечания

  • Почему только сейчас.

    Всё описанное выше было доступно изначально, но не работало из-за бага в старых версиях SSH2-серверов, который нам удалось преодолеть для FTP, XStartup и XServer/LbxLoxy. Мы делали это с помощью задержки после установления удачного соединения. Это поведение было специфично для нашего ПО. Мы знаем, что этот баг до сих пор можно встретить на SSH-серверах, но уже очень старых версий, к примеру на Linux RH 7.1. Уже начиная с Linux RH 9 этот баг не проявляется.

  • Что это - порт 16001 (всегда ли 16001 ?). НЕТ !

    Каждая сессия Telnet_SSH (SSH2) автоматически создаёт "динамическое перенаправление" ("Dynamic Forwarding") (то есть SOCKS4) начиная с номра порта 16001. Если номер 16001 занят (к примеру, Вы соединились с HOSTxxx по Telnet_SSH/SSH2), тогда следующая сессия Telnet_SSH/SSH2 создаст порт номер 16002, и так далее. Закрытие соединения приведёт к освобождению соответствующего порта.



Labtam Copyright © 1999 - 2013 Labtam.ru