Secure shell (SSH)

Популярным протоколом защищенного удаленного доступа к POSIX-совместимым системам является SSH.

Номинальный вклад этой работы в оценку — 10 единиц.

Общие функции

Для доступа можно пользоваться либо комбинацией эмулятора терминала (как, например, XTerm) и SSH-клиента (OpenSSH), или же комбинированной программой (PuTTY.)

При наличии информации об открытом ключе удаленной системы — всегда проверяйте его соответствие фактическому при первом подключении!

  1. (1 ед.) Получите (санкционированный) доступ к какой-либо удаленной системе с использованием протокола SSH.

  2. (1 ед.) Изучите список систем с общим доступом SSH (например, http://aruljohn.com/freeshell/.) Зарегистрируйтесь на одной из этих систем и получите доступ к ней по SSH под своим регистрационным именем.

  3. (1 ед.) Запишите протокол «терминального» сеанса с удаленной системой используя такую команду, как screen, script, tmux, или ttyrec, — или же встроенную функцию клиента SSH.

  4. (1 ед.) В некоторых организациях, для ограничения доступа к Internet используется HTTP proxy (возможно — с аутентикацией «фирменным» протоколом NTLM.) Настройте используемый клиент SSH на использование proxy и подключитесь к удаленной системе. (См. также раздел Сервера HTTP работы по Всемирной паутине.)

  5. (1 ед.) Запишите настройки SSH-клиента, используемые для доступа к серверу, в отдельный файл (.ssh/config домашней директории; или же используя regedit — в случае PuTTY.)

  6. (1 ед.) Сгенерируйте пару ключей для аутентикации асимметричным шифрованием (ssh-keygen, PuTTYgen.) Включите новый открытый ключ в файл .ssh/authorized_keys домашней директории удаленной системы (или аналогичный.) Проверьте работоспособность. Опубликуйте открытый ключ на каком-либо HTTP-сервере.

  7. (1 ед.) Воспользуйтесь агентом SSH (ssh-agent, Pageant.) Загрузив свой закрытый ключ удостоверьтесь в возможности доступа к серверу без пароля. Удалив ключ из памяти агента, проверьте, что для доступа к серверу вновь требуется пароль.

  8. (1 ед.) Удостоверьтесь в возможности аутентикации с использованием GSSAPI. (Поскольку GSSAPI зачастую используется для взаимодействия с Kerberos, может быть полезно изучить вывод команды klist.)

  9. (1 ед.) SSH можно применять для удаленного запуска программ и без организации «терминального» сеанса. Выполните на удаленной системе командную строку из трех команд без выделения псевдотерминала. (Используйте ssh или plink; весьма вероятно, что потребуется экранирование особых символов shell. Вывод командной строки должен подтверждать отсутствие управляющего терминала.)

  10. (1 ед.) Выполните одну и ту же команду на трех различных машинах однократным запуском dsh. Фактическое использование различных машин должно быть как-либо отражено в выводе команды.

Туннелирование и передача произвольных данных

  1. (1 ед.) Используя scp (pscp) передайте два файла с локальной системы на удаленную или наоборот.

  2. (1 ед.) Создайте средствами SSH защищенный туннель для протокола X window. Проверьте работоспособность запустив три X-приложения.

    Обратите внимание, что с точки зрения безопасности может быть полезно запустить отдельный X-сервер для удаленных приложений. (Как, например, Xephyr, Xming, etc.)

  3. (1 ед.) Создайте средствами SSH защищенный туннель, позволяющий использовать на удаленной системе какой-либо «закрытый» ресурс локальной. (Например, HTTP proxy, PostgreSQL, etc.)

  4. (1 ед.) Создайте средствами SSH защищенный туннель, позволяющий использовать на локальной системе какой-либо «закрытый» ресурс удаленной.

Оформление отчета

  1. (1 ед.) Оформите отчет в виде документа HTML.

    Обратите внимание на то, что документ должен не только корректно воспроизводится соответствующим программным обеспечением, но и успешно проходить формальную проверку с использованием http://html5.validator.nu/ и (или) иных подобных средств. Элементы и атрибуты HTML должны быть использованы семантически-обоснованно — сообразно смыслу, которым их наделяет текущая практика и актуальные спецификации.