Протокол SSH, основное применение и отличие от Telnet. Протокол Telnet


МИНИСТЕРСТВО ТРАНСПОРТА И СВЯЗИ УКРАИНЫ

ОДЕССКАЯ НАЦИОНАЛЬНАЯ АКАДЕМИЯ СВЯЗИ им. А.С.ПОПОВА

Кафедра сетей связи

Реферат

на тему: «Протоколы SSH, CMIP, Telnet»

Одесса 2013

    • Стандарты и программные реализации
      • SSH-серверы
      • SSH-клиенты и оболочки
    • Советы по безопасности использования SSH
    • Примеры использования SSH
    • SSH-туннелирование
    • Техническая информация о протоколе

Основные характеристики протокола CMIP

Протокол CMIP и услуги CMIS

Фильтрация

Синхронизация

  • Устройство
    • Опции
      • Принтер и клавиатура NVT
      • Структура команд Telnet
    • Применения
    • Безопасность
    • Telnet и другие протоколы

Стандарты и программные реализации

SSH (англ. Secure SHell -- «безопасная оболочка») -- сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X WindowSystem.

Большинство хостинг-провайдеров за определённую плату предоставляют клиентам доступ к их домашнему каталогу по SSH. Это может быть удобно как для работы в командной строке, так и для удалённого запуска программ (в том числе графических приложений).

Первая версия протокола, SSH-1, была разработана в 1995 году исследователем Тату Улёненом из Технологического университета Хельсинки (Финляндия). SSH-1 был написан для обеспечения большей конфиденциальности, чем протоколы rlogin, telnet и rsh. В 1996 году была разработана более безопасная версия протокола, SSH-2, несовместимая с SSH-1. Протокол приобрел ещё большую популярность, и к 2000 году у него было около двух миллионов пользователей. В настоящее время под термином «SSH» обычно подразумевается именно SSH-2, т.к. первая версия протокола ввиду существенных недостатков сейчас практически не применяется.

В 2006 году протокол был утвержден рабочей группой IETF в качестве Интернет?стандарта.

Однако, в некоторых странах (Франция, Россия, Ирак и Пакистан) до сих пор требуется специальное разрешение в соответствующих структурах для использования определённых методов шифрования, включая SSH.

Распространены две реализации SSH: частная коммерческая и бесплатная свободная. Свободная реализация называется OpenSSH. К 2006 году 80 % компьютеров сети Интернет использовало именно OpenSSH. Частная реализация разрабатывается организацией SSH Communications Security, которая является стопроцентным подразделением корпорации Tectia, она бесплатна для некоммерческого использования. Эти реализации содержат практически одинаковый набор команд.

Протокол SSH-2, в отличие от протокола telnet, устойчив к атакам прослушивания трафика («снифинг»), но неустойчив к атакам «человек посередине». Протокол SSH-2 также устойчив к атакам путем присоединения посредине (англ. sessionhijacking), так как невозможно включиться в уже установленную сессию или перехватить её.

Для предотвращения атак «человек посередине» при подключении к хосту, ключ которого ещё не известен клиенту, клиентское ПО показывает пользователю «слепок ключа» (англ. keyfingerprint). Рекомендуется тщательно проверять показываемый клиентским ПО «слепок ключа» со слепком ключа сервера, желательно полученным по надёжным каналам связи или лично.

Поддержка SSH реализована во всех UNIX_подобных системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIX ОС. Большую популярность протокол получил после широкого развития анализаторов трафика и способов нарушения работы локальных сетей, как альтернативное небезопасному протоколу Telnet решение для управления важными узлами.

Для работы по SSH нужен SSH-сервер и SSH-клиент. Сервер прослушивает соединения от клиентских машин и при установлении связи производит аутентификацию, после чего начинает обслуживание клиента. Клиент используется для входа на удалённую машину и выполнения команд.

Для соединения сервер и клиент должны создать пары ключей -- открытых и закрытых -- и обменяться открытыми ключами. Обычно используется также и пароль.

SSH-серверы

· *BSD: OpenSSH

· Linux: dropbear, lsh-server, openssh-server, ssh

· Windows: freeSSHd, copssh, WinSSHD, KpyM Telnet/SSH Server, MobaSSH, OpenSSH через Cygwin

SSH-клиенты и оболочки

· GNU/Linux, *BSD: kdessh, lsh-client, openssh-client, putty, ssh, Vinagre

· MS Windows и Windows NT: PuTTY, SecureCRT, ShellGuard, Axessh, ZOC, SSHWindows, ProSSHD, XShell

· MS Windows Mobile: PocketPuTTy, mToken, sshCE, PocketTTY, OpenSSH, PocketConsole

· Mac OS: NiftyTelnet SSH

· Symbian OS: PuTTY

· Java: MindTerm, AppGateSecurityServer

· J2ME: MidpSSH

· iPhone: i-SSH, ssh (вкомплектес Terminal)

· Android: connectBot

· Blackberry: BBSSH

· MAEMO 5: OpenSSH

Советы по безопасности использования SSH

3. Выбор нестандартного порта для SSH-сервера.

4. Использование длинных SSp RSA-ключей (2048 бит и более). Системы шифрования на основе RSA считаются надёжными, если длина ключа не менее 1024 бит.

5. Ограничение списка IP-адресов, с которых разрешён доступ (например, настройкой файервола).

7. Отказ от использования распространённых или широко известных системных логинов для доступа по SSH.

8. Регулярный просмотр сообщений об ошибках аутентификации.

9. Установка систем обнаружения вторжений.

10. Использование ловушек, подделывающих SSH-сервис (honeypots).

Примеры использования SSH

Команда подключения к локальному SSH-серверу из командной строки GNU/Linux или FreeBSD для пользователя pacify (сервер прослушивает нестандартный порт 30000): $ ssh -p 30000 [email protected]

Генерация пары ключей (в UNIX-подобных ОС) осуществляется командой $ ssh-keygen

Генерация пары SSH-2 RSA-ключей длиной 4096 бита программой puttygen под UNIX?подобными ОС:

$ puttygen -t rsa -b 4096 -o sample

Некоторые клиенты, например, PuTTY, имеют и графический интерфейс пользователя.

Для использования SSH в Python существуют такие модули, как python-paramiko и python-twisted-conch.

SSH-туннелирование

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

· Созданием Socks-прокси для приложений, которые не умеют работать через SSH-туннель, но могут работать через Socks-прокси

· Использованием приложений, умеющих работать через SSH-туннель.

· Созданием VPN-туннеля, подходит практически для любых приложений.

· Если приложение работает с одним определённым сервером, можно настроить SSH-клиент таким образом, чтобы он пропускал через SSH-туннель TCP-соединения, приходящие на определённый TCP-порт машины, на которой запущен SSH-клиент. Например, клиенты Jabber подключаются по умолчанию на порт 443. Тогда, чтобы настроить подключение к серверу Jabber через SSH-туннель, SSH-клиент настраивается на перенаправление подключений с любого порта локальной машины на удалённый сервер: $ ssh -L 4430:jabber.example.com:443 somehost. В данном случае Jabber-клиент настраивается на подключение к порту 4430 сервера localhost (если ssh-клиент запущен на той же машине что и Jabber-клиент). Для создания ssh-туннеля необходима машина с запущенным ssh-сервером и доступом к jabber.example.com. Такая конфигурация может использоваться в случае, если с локальной машины доступ к jabber.example.com закрыт файерволом, но есть доступ к некоторому ssh-серверу, у которого ограничения доступа в Интернет отсутствуют.

Техническая информация о протоколе

SSH -- это протокол прикладного уровня. SSH-сервер обычно прослушивает соединения на TCP-порту 22. Спецификация протокола SSH-2 содержится в RFC 4251. Для аутентификации сервера в SSH используется протокол аутентификации сторон на основе алгоритмов электронно-цифровой подписи RSA или DSA. Для аутентификации клиента также может использоваться ЭЦП RSA или DSA, но допускается также аутентификация при помощи пароля (режим обратной совместимости с Telnet) и даже ip-адреса хоста (режим обратной совместимости с rlogin). Аутентификация по паролю наиболее распространена; она безопасна, так как пароль передаётся по зашифрованному виртуальному каналу. Аутентификация по ip-адресу небезопасна, эту возможность чаще всего отключают. Для создания общего секрета (сеансового ключа) используется алгоритм Диффи -- Хеллмана (DH). Для шифрования передаваемых данных используется симметричное шифрование, алгоритмы AES, Blowfish или 3DES. Целостность передачи данных проверяется с помощью CRC32 в SSp илиHMAC-SHA1/HMAC-MD5 в SSp. Для сжатия шифруемых данных может использоваться алгоритм LempelZiv (LZ77), который обеспечивает такой же уровень сжатия, что и архиватор ZIP. Сжатие SSH включается лишь по запросу клиента, и на практике используется редко.

Основные характеристики протокола CMIP

CMIP реализует весь набор услуг CMIS. С помощью этих услуг протокол CMIP поддерживает следующую услугу удаленных операций:

Запрос (invoke);

Возврат результата;

Возврат ошибки;

Отклонение запроса пользователем услуги;

Отклонение запроса провайдером услуги.

Управляющая информация от менеджера к агенту, передаваемая по протоколу CMIP кодируется в соответствии с правилами ASN.1 и BER.

Для каждой операции определен формат блока данных, переносимых по сети от менеджера агенту, и наоборот.

Формат протокольных блоков данных CMIP описывается нотацией ASN.1 и имеет гораздо более сложную структуру, чем блоки SNMP. Например, блок данных операции M-GET имеет поля для задания имен атрибутов, значения которых запрашивает менеджер, а также поля задания параметров обзора и фильтрации. Имеются также поля для задания параметров прав доступа к объекту.

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

Уведомления агента CMIP всегда передаются с помощью надежного транспортного протокола и в случае потери будут переданы повторно.

Протокол CMIP рассчитан на агентов, которые могут по одной простой команде от менеджера выполнить сложную последовательность действий.

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

MIB для протокола CMIP не имеют единого стандарта и разрабатываются каждым производителем телекоммуникационного оборудования только для своего собственного оборудования. Исключение составляет только стандарт на MIB по системам передачи G.722, G.774.

Протокол CMIP и услуги CMIS

Доступ к управляющей информации, хранящейся в управляемых объектах, обеспечивается с помощью элемента системы управления, называемого службой CMSIE (Common Management Information Service Element). Служба CMSIE построена в архитектуре распределенного приложения, где часть функций выполняет менеджер, а часть - агент. Взаимодействие между менеджером и агентом осуществляется по протоколу CMIP. Услуги, предоставляемые службой CMSIE, называются услугами CMIS (Common Management Information Services).

Протокол CMIP и услуги CMIS определены в стандартах Х.710 и Х.711 ITU-T. Услуги CMIS разделяются на две группы - услуги, инициируемые менеджером (запросы), и услуги, инициируемые агентом (уведомления).

Услуги, инициируемые менеджером, включают следующие операции:

· M-CREATE инструктирует агента о необходимости создать новый экземпляр объекта определенного класса или новый атрибут внутри экземпляра объекта;

· M-DELETE инструктирует агента о необходимости удаления некоторого экземпляра объекта определенного класса или атрибута внутри экземпляра объекта;

· M-GET инструктирует агента о возвращении значения некоторого атрибута определенного экземпляра объекта;

· M-SET инструктирует агента об изменении значения некоторого атрибута определенного экземпляра объекта;

· M-ACTION инструктирует агента о необходимости выполнения определенного действия над одним или несколькими экземплярами объектов.

Агент инициирует только одну операцию:

M-EVENT_REPORT - отправка уведомления менеджеру.

Для реализации своих услуг служба CMISE должна использовать службы прикладного уровня стека OSI - ACSE, ROSE.

Отличие услуг CMIS от аналогичных услуг SNMP состоит в большей гибкости. Если запросы GET и SET протокола SNMP применимы только к одному атрибуту одного объекта, то запросы M-GET, M-SET, M-ACTION и M-DELETE могут применяться к более чем одному объекту. Для этого стандарты CMIP/CMIS вводят такие понятия, как обзор (scoping), фильтрация (filtering) и синхронизация (synchronization).

Обзор

Запрос CMISE может использовать обзор, чтобы опросить одновременно несколько объектов. Вводятся четыре уровня обзора:

· базовый объект, определенный своим отличительным именем FDN;

· объекты, расположенные на n-м уровне подчинения относительно базового в дереве включения;

· базовый объект и все объекты, расположенные на подчиненных ему уровнях до n-го (включительно) в дереве включения;

· поддерево - базовый объект и все ему подчиненные в дереве включения.

Фильтрация

Фильтрация заключается в применении булевого выражения к запросу менеджера. Запрос применяется только к тем объектам и их атрибутам, для которых данное булево выражение верно. Булевы выражения могут включать операторы отношения =>, <=,<,> или определенные атрибуты. Возможно построение сложных фильтров на основе объединения нескольких фильтров в один составной.

Синхронизация

При выполнении запросов к нескольким объектам используется одна из двух схем синхронизации: атомарная или «по возможности». При атомарной схеме запрос выполняется только в том случае, когда все объекты, попадающие в область действия обзора или фильтра, могут успешно выполнить данный запрос. Синхронизация «по возможности» подразумевает передачу запроса всем объектам, к которым запрос относится. Операция завершается при выполнении запроса любым количеством объектов.

Протокол CMIP представляет собой набор операций, прямо соответствующих услугам CMIS. Таким образом, в протоколе CMIP определены операции M-GET, M-SET, M-CREATE и т. д. Для каждой операции определен формат блока данных, переносимых по сети от менеджера агенту, и наоборот. Формат протокольных блоков данных CMIP описывается нотацией ASN.1 и имеет гораздо более сложную структуру, чем блоки SNMP. Например, блок данных операции M-GET имеет поля для задания имен атрибутов, значения которых запрашивает менеджер, а также поля задания параметров обзора и фильтрации, определяющих множество экземпляров объектов, на которые будет воздействовать данный запрос. Имеются также поля для задания параметров прав доступа к объекту.

Сравнение протоколов SNMP и CMIP

· Применение протокола SNMP позволяет строить как простые, так и сложные системы управления, а применение протокола CMIP определяет некоторый, достаточно высокий начальный уровень сложности системы управления, так как для его работы необходимо реализовать ряд вспомогательных служб, объектов и баз данных объектов.

· Агенты CMIP выполняют, как правило, более сложные функции, чем агенты SNMP. Из-за этого операции, которые менеджеру можно выполнить над агентом SNMP, носят атомарный характер, что приводит к многочисленным обменам между менеджером и агентом.

· Уведомления (traps) агента SNMP посылаются менеджеру без ожидания подтверждения, что может привести к тому, что важные сетевые проблемы останутся незамеченными, так как соответствующее уведомление окажется потерянным, в то время как уведомления агента CMIP всегда передаются с помощью надежного транспортного протокола и в случае потери будут переданы повторно.

· Решение части проблем SNMP может быть достигнуто за счет применения более интеллектуальных MIB (к которым относится RMON MIB), но для многих устройств и ситуаций таких MIB нет (или нет стандарта, или нет соответствующей MIB в управляемом оборудовании).

· Протокол CMIP рассчитан на интеллектуальных агентов, которые могут по одной простой команде от менеджера выполнить сложную последовательность действий.

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

сетевой протокол операционный текстовый

TELNET (англ. TErminaLNETwork) -- сетевой протокол для реализации текстового интерфейса по сети (в современной форме -- при помощи транспорта TCP). Название «telnet» имеют также некоторые утилиты, реализующие клиентскую часть протокола. Современный стандарт протокола описан в RFC 854.

Выполняет функции протокола прикладного уровня модели OSI.

Назначение протокола TELNET в предоставлении достаточно общего, двунаправленного, восьмибитного байт-ориентированного средства связи. Его основная задача заключается в том, чтобы позволить терминальным устройствам и терминальным процессам взаимодействовать друг с другом. Предполагается, что этот протокол может быть использован для связи вида терминал-терминал («связывание») или для связи процесс-процесс («распределенные вычисления»).

Устройство

Хотя в сессии Telnet выделяют клиентскую и серверную сторону, протокол на самом деле полностью симметричен. После установления транспортного соединения (как правило, TCP) оба его конца играют роль «сетевых виртуальных терминалов» (англ. Network Virtual Terminal, NVT), обменивающихся двумя типами данных:

· Прикладными данными (то есть данными, которые идут от пользователя к текстовому приложению на стороне сервера и обратно);

· Командами протокола Telnet, частным случаем которых являются опции, служащие для уяснения возможностей и предпочтений сторон.

Хотя Telnet-сессии, выполняющейся по TCP, свойственен полный дуплекс, NVT должен рассматриваться как полудуплексное устройство, работающее по умолчанию в буферизированном строковом режиме.

Прикладные данные проходят через протокол без изменений , то есть на выходе второго виртуального терминала мы видим именно то, что было введено на вход первого. С точки зрения протокола данные представляют просто последовательность байтов (октетов), по умолчанию принадлежащих набору ASCII, но при включенной опции Binary -- любых. Хотя были предложены расширения для идентификации набора символов , но на практике ими не пользуются. Все значения октетов прикладных данных кроме \377 (десятичное 255) передаются по транспорту как есть. Октет \377 передаётся последовательностью \377\377 из двух октетов. Это связано с тем, что октет \377 используется на транспортном уровне для кодирования опций.

Опции

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

Принтер и клавиатура NVT

Принтер NVT имеет неопределённую ширину каретки и длину страницы и должен иметь представление всех 95 печатных символов US-ASCII (коды с 32 по 126). Управляющие символы имеют следующие значения:

Название

Описание

Нет операции

Переводит принтер на следующую строку печати, оставаясь на той же горизонтальной позиции.

CarriageReturn (CR) *

Перемещает принтер к левой границе текущей строки.

Производит аудио или видеосигнал (но НЕ перемещает головку принтера).

Перемещает головку принтера на один символ по направлению к левой границе.

HorizontalTab (HT)

Перемещает принтер на следующую остановку горизонтальной табуляции. Остается неопределённым как сторона определяет и устанавливает эти остановки табуляции.

VerticalTab (VT)

Перемещает принтер на следующую остановку вертикальной табуляции. Остается неопределённым как сторона определяет и устанавливает эти остановки табуляции.

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

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

Последовательность «CR LF» должна обрабатываться как единый символ перевода строки и использоваться всякий раз, когда требуется их объединённое действие; последовательность «CR NUL» должна использоваться, где требуется только возврат каретки; и использования символа CR следует избегать в других контекстах.

Структура команд Telnet

Каждая команда TELNET является многобайтовой последовательностью, начинающейся с кода \377 (десятичное: 255) «InterpretasCommand» (IAC) и кода команды. Команды, отвечающие за договоренности по опции, являются трехбайтовыми последовательностями, где третий байт является кодом опции. Нижеперечисленные коды и кодовые последовательности имеют соответственный смысл только когда следуют сразу за IAC.

Название

Код (десятичный/ шестнадцатеричный)

Описание

Завершает согласование, начатое командой SB

Нет операции.

Синхронизация (Synch) обмена данными. Эта команда всегда сопровождается TCP Urgentnotification.

Нажатакнопка «Break» или «Attention».

InterruptProcess

Приостанавливает, прерывает, аварийно прекращает или завершает процесс.

Подавление вывода текущего процесса. Также отправляет сигнал Synch пользователю.

Отправляет обратно ответ терминала, состоящий из печатных символов.

Получатель должен удалить предыдущий символ, если это возможно.

Стереть последнюю введённую строку, то есть все данные, полученные после последнего перевода строки.

Ожидается передача данных.

Начало согласования опции, требующего передачи параметров.

Указывает на желание исполнять или подтверждает, что сейчас исполняется указанная опция.

WON"T опция

Указывает на отказ начать или продолжить исполнять указанную опцию.

Запрос на то, чтобы другая сторона исполнила или подтвердила исполнение указанной опции.

DON"T опция

Требование на то, чтобы другая сторона остановила исполнение или подтвердила то, что указанная опция более не исполняется.

Байт данных 255.

Применения

Исторически Telnet служил для удалённого доступа к интерфейсу командной строки операционных систем. Впоследствии его стали использовать для прочих текстовых интерфейсов, вплоть до игр MUD и анимированного ASCII-art. Теоретически, даже обе стороны протокола могут являться не только людьми, но и программами.

Иногда клиенты telnet используются для доступа к другим протоколам на основе транспорта TCP, см. #Telnet и другие протоколы.

Протокол telnet используется в управляющем соединении FTP, то есть заходить на сервер командой telnet ftp.example.net ftp для выполнения отладки и экспериментов не только возможно, но и правильно (в отличие от применения клиентов telnet для доступа к HTTP, IRC и большинству других протоколов).

Безопасность

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

Telnet и другие протоколы

В среде специалистов по технологиям internet распространено мнение, что клиент Telnet пригоден для осуществления ручного доступа (например, в целях отладки) к таким протоколам прикладного уровня как HTTP, IRC, SMTP, POP3 и прочим текст-ориентированным протоколам на основе транспорта TCP. Однако, использование клиента telnet в качестве клиента TCP вызывает следующие нежелательные эффекты:

· Клиент может передать данные, которые вы не вводили (опции Telnet);

· Клиент не будет принимать октет \377;

· Клиент будет искажать октет \377 при передаче;

· Клиент вообще может отказаться передавать октеты со старшим битом 1.

Такие программы как netcat действительно обеспечивают чистый доступ к TCP, однако требуются специальные ухищрения (как то stty -icrnl на UNIX-системе) для передачиперевода строки как CR LF (что требуется многими протоколами). Обычно клиент Telnet по умолчанию передаёт любой перевод строки как CR LF, независимо от его кодирования в системе клиента. Также для отладочного доступа к прикладным протоколам (кроме FTP и, собственно, Telnet) является использование клиента PuTTY в режиме «Raw» (чистый доступ к TCP) -- PuTTY преобразует переводы строки отдельно от поддержки протокола Telnet.

Подобные документы

    Физический уровень протокола CAN. Скорость передачи и длина сети. Канальный уровень протокола CAN. Рецессивные и доминантные биты. Функциональная схема сети стандарта CAN. Методы обнаружения ошибок. Основные характеристики сети. Протоколы высокого уровня.

    реферат , добавлен 17.05.2013

    Электронная почта (E-Mail) и ее основные компоненты: информационный ресурс, почтовый сервер, клиент и протоколы их взаимодействия. Сравнительная характеристика протоколов SMTP, POP3 и IMAP4. Телеконференции, файловые архивы FTP, Telnet, World Wide Web.

    контрольная работа , добавлен 19.01.2011

    Общие понятия, задачи и характеристика компьютерной сети TMN: технология управления, состав и назначение основных элементов, функциональные возможности, архитектура. Реализация управления в модели ВОС. Сравнительная характеристика протоколов SNMP и CMIP.

    курсовая работа , добавлен 18.03.2011

    Описание общих функций сетевого уровня модели OSI: протоколирование, маршрутизация и логическая адресация. Изучение принципов работы сетевого протокола TCP/IP и сетевых утилит командной строки. Адрес локальной сети и определение класса сети Интернет.

    презентация , добавлен 05.12.2013

    Протокол как набор соглашений и правил, определяющих порядок обмена информацией в компьютерной сети. Краткое описание и характеристика некоторых протоколов используемых в работе Интернет: TCP/IP, POP3, IMAP4, SMTP, FTP, HTTP, WAIS, TELNET, WAP.

    презентация , добавлен 27.04.2011

    Анализ и сравнение различных методов реализации системы защиты сетевых соединений. Виды сетевых атак и методика их негативного воздействия, возможные последствия и меры их профилактики. Структура протокола создания защищенных сетевых соединений ISAKMP.

    дипломная работа , добавлен 19.06.2010

    Общая характеристика протокола ICMP, его назначение и формат сообщений. Анализ применимости протокола ICMP при переходе с набора протоколов IP v4 на набор IP v6. Свойства и принцип работы, сферы применения протоколов обмена маршрутной информацией.

    курсовая работа , добавлен 24.08.2009

    Работы по созданию сети ARPANET, протоколы сетевого взаимодействия TCP/IP. Характеристика программного обеспечения для TCP/IP. Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур. Архитектура, уровни сетей и протоколы TCP/IP.

    реферат , добавлен 03.05.2010

    Функция протокола и структура пакета разрабатываемого протокола. Длина полей заголовка. Расчет длины буфера на приеме в зависимости от длины пакета и допустимой задержки. Алгоритмы обработки данных на приеме и передаче. Программная реализация протокола.

    курсовая работа , добавлен 18.05.2014

    Услуги Интернета: электронная почта, передача файлов. Получение услуг сети через удаленный компьютер. Протоколы сети Internet: HTTP, FTP, Telnet, WAIS, Gopher, SMTP, IRC. Цели Внедрения видео-конференции-связи. Организация и проведение телеконференций.

  • Административное принуждение и его отличие от других видов государственного принуждения система мер административного принуждения.
  • Адрес заведения, которое заполнило протокол ___________________________________________________
  • Акты, протоколы. Состав реквизитов акта и протокола. Расположение реквизитов на бланке А4. Требования к оформлению акта и протокола. Придание документу юридической силы.
  • Амнистия: понятие и признаки. Помилование: понятие, правовые последствия, отличие от амнистии.
  • Арбитражная судебная система РФ. Роль судебной системы в разрешении экономических споров, включая споры, связанные с применением налогового законодательства.
  • SSH - (Secure Shell) - сетевой протокол, позволяющий производить удалённое управление компьютером и передачу файлов. Сходен по функциональности с протоколом Telnet и rlogin, однако использует алгоритмы шифрования передаваемой информации.
    Недостатки telnet привели к очень быстрому отказу от использования этого протокола в пользу более безопасного и функционального протокола SSH. SSH предоставляет все те функциональные возможности, которые представлялись в telnet, с добавлением эффектного кодирования с целью предотвращения перехвата таких данных, как логины и пароли. Введенная в протоколе SSH система аутентификации с использованием публичного ключа гарантирует, что удаленный компьютер действительно является тем, за кого себя выдает.

    Криптографическая защита протокола SSH не фиксирована, возможен выбор различных алгоритмов шифрования. Клиенты и серверы, поддерживающие этот протокол, доступны для различных платформ. Кроме того, протокол позволяет не только использовать безопасный удалённый shell на машине, но и туннелировать графический интерфейс - X Tunnelling (только для Unix-подобных ОС или приложений, использующих графический интерфейс X Window System). Так же SSH способен передавать через безопасный канал (Port Forwarding) любой другой сетевой протокол, обеспечивая (при надлежащем конфигурировании) возможность безопасной пересылки не только X-интерфейса, но и, например, звука.
    Однако протокол SSH не решает всех проблем сетевой безопасности. Он лишь фокусирует свое внимание на обеспечении безопасной работы таких приложений, как эмуляторы терминала. Использование реализаций протокола SSH на серверах и в клиентских приложениях помогает защитить данные лишь в процессе передачи. Протокол SSH ни коим образом не является заменой брандмауэров, систем обнаружения вторжений, сетевых сканеров, систем аутентификации и других инструментов, позволяющих защитить информационные системы и сети от атак.
    39.Роль и задачи сервера в локальной сети.

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

    Задачи сервера:

    1.обеспечения доступа к данным, хранящимся на серверных дисках организации;

    2.хранение, обработку и доступ к базам данных компании;

    3.программную обработку данных, которые посылает ему пользователь, и выдаёт этому пользователю конечные результаты;

    4.выдачу интернет-страницы пользователю, который её запрашивает;

    5.отправки, получения, хранения и распределения электронных писем, которые посылают все пользователи локальной сети.


    Сетевые службы.

    Для конечного пользователя сеть - это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть - это, прежде всего, тот набор сетевых служб, с помощью которых он получает возможность просмотреть список имеющихся в сети компьютеров, прочитать удаленный файл, распечатать документ на «чужом» принтере или послать почтовое сообщение. Именно совокупность предоставляемых возможностей - насколько широк их выбор, насколько они удобны, надежны и безопасны - определяет для пользователя облик той или иной сети.
    Кроме собственно обмена данными, сетевые службы должны решать и другие, более специфические задачи, например, задачи, порождаемые распределенной обработкой данных. К таким задачам относится обеспечение непротиворечивости нескольких копий данных, размещенных на разных машинах (служба репликации), или организация выполнения одной задачи параллельно на нескольких машинах сети (служба вызова удаленных процедур). Среди сетевых служб можно выделить административные, то есть такие, которые в основном ориентированы не на простого пользователя, а на администратора и служат для организации правильной работы сети в целом.
    Реализация сетевых служб осуществляется программными средствами. Основные службы - файловая служба и служба печати - обычно предоставляются сетевой операционной системой, а вспомогательные, например служба баз данных, факса или передачи голоса, - системными сетевыми приложениями или утилитами, работающими в тесном контакте с сетевой ОС. Вообще говоря, распределение служб между ОС и утилитами достаточно условно и меняется в конкретных реализациях ОС.
    При определении степени удобства разделяемого ресурса часто употребляют термин «прозрачность». Прозрачный доступ - это такой доступ, при котором пользователь не замечает, где расположен нужный ему ресурс - на его компьютере или на удаленном. После того как он смонтировал удаленную файловую систему в свое дерево каталогов, доступ к удаленным файлам становится для него совершенно прозрачным. Сама операция монтирования также может иметь разную степень прозрачности - в сетях с меньшей прозрачностью пользователь должен знать и задавать в команде имя компьютера, на котором хранится удаленная файловая система, в сетях с большей степенью прозрачности соответствующий программный компонент сети производит поиск разделяемых томов файлов безотносительно мест их хранения, а затем предоставляет их пользователю в удобном для него виде, например в виде списка или набора пиктограмм.
    Для обеспечения прозрачности важен способ адресации (именования) разделяемых сетевых ресурсов. Имена разделяемых сетевых ресурсов не должны зависеть от их физического расположения на том или ином компьютере. В идеале пользователь не должен ничего менять в своей работе, если администратор сети переместил том или каталог с одного компьютера на другой. Сам администратор и сетевая операционная система имеют информацию о расположении файловых систем, но от пользователя она скрыта. Такая степень прозрачности пока редко встречается в сетях, - обычно для получения доступа к ресурсам определенного компьютера сначала приходится устанавливать с ним логическое соединение. Такой подход применяется, например, в сетях Windows NT

    В книге подробно рассмотрены настройки сетевых сервисов, позволяющих создать сервер требуемой конфигурации и функциональности на основе ОС Linux. Вы сможете настроить сервер любого типа: от сервера локальной сети до Интернет-сервера и сервера удаленного доступа. Детальна описано администрирование Linux.

    Изложение материала построено на основе дистрибутивов Red Hat и Mandrake. Много уникальной информации: запуск Windows-игр под Linux и создание Linux-сервера для игрового зала, настройка антивирусов Dr. Web и AVP под Linux, программа учета трафика MRTG, система защиты и обнаружения атак LIDS, а также многое другое. Особое внимание уделено безопасности Linux-серверов. Достаточно подробно описана сама ОС Linux и приведен справочник ее команд. Прочитав книгу, вы станете обладателями знаний по настройке и компилированию ядра, созданию собственных rpm-пакетов, командному интерпретатору bash, использованию массивов RAID. Вы узнаете внутренний мир Linux. Книга подойдет как для профессиональных, так и для начинающих администраторов, поскольку изложение материала начинается с установки ОС Linux, а в первой главе дано описание основных сетевых технологий и протоколов (Курс Молодого Администратора).

    Все приведенные в книге листинги проверены на практике и размещены на прилагаемом CD. Помимо этого на нем содержится много справочной информации (HOWTO, RFC), a также статей, посвященных Linux. Размещен богатый набор вспомогательных утилит и программного обеспечения для сервера (Apache, MySQL, MRTG и др.).

    Книга:

    Разделы на этой странице:

    Сервис Telnet обеспечивает базовую эмуляцию терминалов удаленных систем, поддерживающих протокол Telnet над протоколом TCP/IP. Обеспечивается эмуляция терминалов Digital Equipment Corporation VT 100, Digital Equipment Corporation VT 52, TTY. Протокол Telnet описан в документе RFC 854, который вы найдете на прилагаемом компакт-диске.

    Любые команды, выполняемые с помощью Telnet, обрабатываются telnet-сервером, а не локальным компьютером. Пользователь лишь видит результат выполнения этих команд.

    Для использования Telnet на удаленном компьютере должен быть установлен telnet-демон. На компьютере пользователя нужно установить программу-клиент. Практически в каждой операционной системе существует утилита telnet, которая является клиентом для протокола telnet (см. рис. 8.2).

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

    SSH (Secure Shell) - программа, позволяющая вам зарегистрироваться на удаленных компьютерах и установить зашифрованное соединение. Существует также «безопасная» версия telnet - stelnet.

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


    Рис. 8.2.Telnet-клиент для Windows

    Оболочку ssh можно использовать для безопасной регистрации на удаленном сервере или копировании данных между двумя машинами, в то же время предотвращая атаки путем присоединения посередине (session hijacking) и обманом сервера имен (DNS spotting).

    Оболочка Secure Shell поддерживает следующие алгоритмы шифрования:

    BlowFish - это 64-разрядная схема шифрования. Этот алгоритм часто используется для высокоскоростного шифрования данных больших объемов.

    Тройной DES (Data Encryption Standard) - стандарт для шифрования данных. Данный алгоритм довольно старый, поэтому не рекомендуется его использовать. Обычно DES используется для шифрования несекретных данных.

    IDEA (International Data Encryption Algorithm) - международный алгоритм шифрования информации. Этот алгоритм работает со 128-разрядным ключом и поэтому он более защищен, чем BlowFish и DES.

    RSA (Rivest-Shamir-Adelman algorithm) - алгоритм Ривеста-Шамира-Адельмана. Представляет собой схему шифрования с открытым и секретным ключами.

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

    Оболочка ssh очень эффективна против анализаторов протоколов, так как она не только шифрует, но и сжимает трафик перед его передачей на удаленный компьютер. Программу ssh можно скачать по адресу http://www.cs.hut.fi/ssh/ . Версия ssh для UNIX распространяется бесплатно, а за Windows-версию (имеется в виду клиент для Windows) нужно заплатить.

    Оболочка ssh незаменима в тех случаях, когда удаленно нужно администрировать сервер или когда сервер не имеет собственного монитора. При использовании telnet все данные, которые передаются через telnet-соединение, доступны в открытом виде. А значит, имена пользователей и пароли будут доступны всем, кто прослушивает трафик с помощью анализатора. Шифрование ssh выполняет, используя несколько различных алгоритмов, включая DES и 3DES.

    Программа состоит из демона sshd, который запускается на Linux/UNIX-машине, и клиента ssh, который распространяется как для Linux, так и для Windows. Чтобы установить ssh, возьмите исходные тексты и поместите их по традиции в каталог /usr/src/. Затем распакуйте архив и установите программу, выполнив следующую последовательность действий:

    cd /usr/src/
    tar xzf ssh-2.4.0.tar.gz
    cd ssh-2.4.0
    ./configure
    make
    make install

    Чтобы ssh начал работать, необходимо запустить демон sshd на той машине, к которой предполагается подключение. Желательно добавить команду запуска в сценарий загрузки системы для автоматического запуска. Демон sshd работает по 22 порту (см. листинг 8.6). Если не ошибаюсь, ssh невозможно использовать вместе с xinetd/inetd - его нужно запускать подобно httpd– серверу в режиме standalone.

    Листинг 8.6. Фрагмент файла /etc/services

    ssh 22/tcp # SSH Remote Login Protocol
    ssh 22/udp # SSH Remote Login Protocol

    Обычно с настройкой sshd не возникает никаких неприятных моментов. Подробно настройка демона будет рассмотрена чуть ниже в этой главе. Теперь попробуйте зарегистрироваться на этой машине через ssh. Для этого нужно установить этот же пакет на другую машину под управлением Linux/UNIX (или установить Windows-клиент ssh) и ввести команду:

    $ ssh hostname.domain

    ssh запросит вас ввести пароль пользователя. В качестве имени пользователя для установки соединения будет использовано имя текущего пользователя, то есть имя, под которым вы сейчас зарегистрированы в системе. В случае, если аутентификация пройдет успешно, начнется сеанс связи. Прекратить сеанс можно комбинацией клавиш Ctrl+D.

    Если вам нужно указать другое имя пользователя, используйте параметр –l программы ssh:

    ssh –l user hostname.ru

    Так можно указать программе ssh, от имени какого пользователя нужно регистрироваться на удаленной машине (см. рис. 8.3).

    При использовании Windows-клиента имя компьютера, имя пользователя и пароль нужно ввести в диалоговом окне программы. Если соединение не устанавливается, попробуйте выбрать метод кодирования blowfish. Если и это не поможет, выберите 3DES.

    Работа в ssh аналогична работе в telnet. Вы можете администрировать удаленную машину также легко, как и локальную. Опции программы ssh указаны в табл. 8.5.


    Рис.8.З. Регистрация на удаленной машине

    Опции программы ssh Таблица 8.5

    Опция Описание
    Отключает перенаправление аутентификации агента соединения
    Включает перенаправление аутентификации агента соединения
    -с blowfish|3des Позволяет выбрать алгоритм шифрования при использовании первой версии протокола SSH. Можно указать или blowfish, или 3des
    -с шифр Задает список шифров, разделенных запятыми в порядке предпочтения. Только для второй версии протокола SSH. Допускаются значения blowfish, twofish, arcfour, cast, des и 3des
    -f Данная опция переводит ssh в фоновый режим после аутентификации пользователя. Рекомендуется использовать для запуска программы Х11 . Например, ssh –f hostxterm
    -i идент_файл Задает нестандартный идентификационный файл (для нестандартной RSA/DSA-аутентификации)
    -l имя_пользоват Указывает от имени какого пользователя будет осуществляться регистрация на удаленной машине
    -р порт Определяет порт, к которому подключится программа ssh (по умолчанию используется порт 22)
    -q «Тихий режим». Будут отображаться только сообщения о фатальных ошибках. Все прочие предупреждающие сообщения в стандартный выходной поток выводиться не будут
    -x Отключить перенаправление Х11
    -X Включить перенаправление Х11
    -1 Использовать только первую версию протокола SSH
    -2 Использовать только вторую версию протокола SSH
    -4
    -6

    Оболочка ssh использует два файла конфигурации ssh_conf и sshd_conf. Думаю, что нет смысла говорить о том, что они находятся в директории /etc/ssh. Рекомендую в файле sshd_conf прописать следующую строчку:

    allowedadress 10.1.1.1 10.1.2.1 10.1.3.1

    Это означает, что доступ по ssh может быть выполнен только с машин с адресами 10.1.1.1, 10.1.2.1, 10.1.3.1. Это оградит ваш компьютер от нежелательных вторжений извне.

    Программа stelnet во всем полностью аналогична программе telnet, но она выполняет шифрование трафика, который передается во время telnet-соединения.

    Демон sshd - это программа-демон для оболочки ssh. Обычно sshd запускается на машине, к которой подключаются клиенты ssh. Последние версии демона sshd поддерживают две версии протокола ssh - ssh версия 1, и ssh версия 2.

    Протокол SSH версия 1

    У каждого узла есть свой RSA-ключ (обычно 1024 бит), который используется для идентификации узла. Этот ключ еще называется открытым. Дополнительно, при запуске демона, генерируется еще один RSA-ключ - ключ сервера (обычно 768 бит). Этот ключ создается заново каждый час и никогда не сохраняется на диске.

    Каждый раз при установке соединения с клиентом демон отправляет ему в ответ свой открытый ключ и ключ сервера. Клиент сравнивает полученный открытый ключ со своей базой данных, чтобы проверить, не изменился ли он. Затем клиент случайным образом генерирует 256-разрядное число и кодирует его, используя одновременно два ключа - открытый ключ и ключ сервера. Обе стороны используют этот случайный номер как ключ сессии, который используется для кодирования всех передаваемых во время сессии данных.

    Затем клиент пытается аутентифицировать себя, используя.rhosts-аутентифи-кацию, аутентификацию RSA или же аутентификацию с использованием пароля.

    Обычно.rhosts-аутентификация небезопасна и поэтому она отключена.

    Протокол SSH версия 2

    Версия 2 работает аналогично: каждый узел имеет определенный DSA-ключ, который используется для идентификации узла. Однако, при запуске демона ключ сервера не генерируется. Безопасность соединения обеспечивается благодаря соглашению Диффи-Хелмана (Diffie-Hellman key agreement).

    Сессия может кодироваться следующими методами: 128-разрядный AES, Blowfish, 3DES, CAST128, Arcfour, 192-разрядный AES или 256-разрядный AES.

    Опции демона sshd указаны в табл. 8.6.

    Опции демона sshd Таблица 8.6

    Опция Описание
    -b биты Определяет число битов для ключа сервера (по умолчанию 768). Данную опцию можно использовать, только если вы используете протокол SSH версии 1
    -d Режим отладки (DEBUG). В этом режиме сервер не переходит в фоновый режим и подробно протоколирует свои действия в системном журнале. Использование данной опции особенно полезно при изучении работы сервера
    Если указана это опция, демон sshd отправляет отладочные сообщения не в системный журнал, а на стандартный поток ошибок
    -f конфиг_файл Задает альтернативный файл конфигурации. По умолчанию используется /etc/ssh/sshd_config
    -g время Предоставляет клиенту, не прошедшему аутентификацию, дополнительное время, чтобы аутентифицировать себя. По умолчанию время равно 600 секундам. Если за это время клиент не смог аутентифицировать себя, соединение будет прекращено. Значение 0 интерпретируется как бесконечное ожидание
    -h файл_ключа Задает альтернативный файл открытого ключа (ключ узла). По умолчанию используется файл /etc/ssh/ssh_host_key. Эта опция может понадобиться, чтобы sshd мог выполняться не только от имени суперпользователя root. Кроме этого, частым использованием этой опции является запуск sshd из сценариев, задающих различные настройки в зависимости от времени суток. Например, в дневное (рабочее) время устанавливаются одни опции, а в вечернее(иерабочее) время - другие
    -i Используется, если нужно запускать sshd через суперсервер xinetd (inetd). Обычно демон sshd не запускается суперсервером xinetd (inetd), а запускается при загрузке системы, потому что демону sshd требуется некоторое время (10 секунд) для генерирования ключа сервера, прежде чем он сможет ответить на запросы клиентов
    -k время Задает время, спустя которое ключ сервера будет создан заново. По умолчанию время составляет 3600 секунд (1 час). Данную опцию можно использовать, только если вы используете протокол SSH версии 1
    -р порт Указывает альтернативный порт, который демон sshd будет прослушивать. По умолчанию используется порт 22
    -q «Тихий режим». В данном режиме протоколирование сессии производиться не будет. Обычно протоколируется начало аутентификации, результат аутентификации и время окончания сессии
    -t Тестовый режим. Данный режим применяется для проверки корректности файла конфигурации
    -D При использовании этой опции демон не будет переходить в фоновый режим
    -4 Разрешается использовать IP-адреса только в формате IPv4
    -6 Разрешается использовать IP-адреса только в формате IPv6

    Файл конфигурации демона /etc/ssh/sshd_config выглядит примерно так, как это показано в листинге 8.7

    Листинг 8.7 Файл конфигурации /etc/ssh/sshd_config

    # $OpenBSD: sshd_config,v 1.38 2001/04/15 21:41:29 deraadt Exp $
    # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
    # This is the sshd server system-wide configuration file. See sshd(8)
    # for more information.
    Port 22
    # Protocol 2,1
    # ListenAddress 0.0.0.0
    # ListenAddress::
    HostKey /etc/ssh/ssh_host_key
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    ServerKeyBits 768
    LoginGraceTime 600
    KeyRegenerationInterval 3600
    PermitRootLogin yes
    #
    # Don"t read ~/.rhosts and ~/.shosts files
    IgnoreRhosts yes
    # Uncomment if you don"t trust ~/.ssh/known_hosts for
    RhostsRSAAuthentication
    # IgnoreUserKnownHosts yes
    StrictModes yes
    X11Forwarding yes
    X11DisplayOffset 10
    PrintMotd yes
    # PrintLastLog no
    KeepAlive yes
    # Logging
    SyslogFacility AUTHPRIV
    LogLevel INFO
    # obsoletes QuietMode and FascistLogging
    RhostsAuthentication no
    #
    # For this to work you will also need host keys in /etc/ssh/
    ssh_known_hosts
    RhostsRSAAuthentication no
    # similar for protocol version 2
    HostbasedAuthentication no
    #
    RSAAuthentication yes
    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication yes
    PermitEmptyPasswords no
    # Uncomment to disable s/key passwords
    # ChallengeResponseAuthentication no
    # Uncomment to enable РАМ keyboard-interactive authentication
    # Warning: enabling this may bypass the setting of "PasswordAuthentication"
    # PAMAuthenticationViaKbdInt yes
    # To change Kerberos options
    # KerberosAuthentication no
    # KerberosOrLocalPasswd yes
    # AFSTokenPassing no
    # KerberosTicketCleanup no
    # Kerberos TGT Passing does only work with the AFS kaserver
    # KerberosTgtPassing yes
    # CheckMail yes
    # UseLogin no
    # MaxStartups 10:30:60
    # Banner /etc/issue.net
    # ReverseMappingCheck yes
    Subsystem sftp/usr/libexec/openssh/sftp-server

    SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

    SSH
    Название Secure Shell
    Уровень (по модели OSI) Прикладной
    Семейство TCP/IP
    Порт/ID 22/TCP
    Назначение протокола Удалённый доступ
    Спецификация RFC 4251
    Основные реализации (клиенты)
    1. Аутентификация по паролю наиболее распространена. При каждом подключении подобно https вырабатывается общий секретный ключ для шифрования трафика.
    2. При аутентификации по ключевой паре предварительно генерируется пара открытого и закрытого ключей для определённого пользователя. На машине, с которой требуется произвести подключение, хранится закрытый ключ, а на удалённой машине - открытый. Эти файлы не передаются при аутентификации, система лишь проверяет, что владелец открытого ключа также владеет и закрытым. При данном подходе, как правило, настраивается автоматический вход от имени конкретного пользователя в ОС .
    3. Аутентификация по ip-адресу небезопасна, эту возможность чаще всего отключают.

    Для создания общего секрета (сеансового ключа) используется алгоритм Диффи - Хеллмана (DH). Для шифрования передаваемых данных используется симметричное шифрование , алгоритмы AES , Blowfish или 3DES . Целостность передачи данных проверяется с помощью CRC32 в SSH1 или HMAC -SHA1 /HMAC -MD5 в SSH2.

    Для сжатия шифруемых данных может использоваться алгоритм LempelZiv (LZ77), который обеспечивает такой же уровень сжатия, что и архиватор ZIP . Сжатие SSH включается лишь по запросу клиента, и на практике используется редко.

    Стандарты и программные реализации

    Первая версия протокола, SSH-1, была разработана в 1995 году исследователем Тату Улёненом из Технологического университета Хельсинки (Финляндия). SSH-1 был написан для обеспечения большей конфиденциальности, чем протоколы rlogin, telnet и rsh. В 1996 году была разработана более безопасная версия протокола, SSH-2, несовместимая с SSH-1. Протокол приобрел ещё большую популярность, и к 2000 году у него было около двух миллионов пользователей. В настоящее время под термином «SSH» обычно подразумевается именно SSH-2, так как первая версия протокола ввиду существенных недостатков сейчас практически не применяется.

    Для использования SSH в Python существуют такие модули, как python-paramiko и python-twisted-conch.

    SSH-туннелирование

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

    Практическая реализация может выполняться несколькими способами:

    • Созданием Socks-прокси для приложений, которые не умеют работать через SSH-туннель, но могут работать через Socks-прокси
    • Использованием приложений, умеющих работать через SSH-туннель.
    • Созданием VPN -туннеля, подходит практически для любых приложений.
    • Если приложение работает с одним определённым сервером, можно настроить SSH-клиент таким образом, чтобы он пропускал через SSH-туннель TCP -соединения, приходящие на определённый TCP-порт машины, на которой запущен SSH-клиент. Например, клиенты Jabber подключаются по умолчанию на порт 443. Тогда, чтобы настроить подключение к серверу Jabber через SSH-туннель, SSH-клиент настраивается на перенаправление подключений с любого порта локальной машины (например, с порта 4430) на удалённый сервер (например, jabber.example.com и порт 443):

    $ ssh -L 4430 :jabber.example.com:443 somehost

    В данном случае Jabber-клиент настраивается на подключение к порту 4430 сервера localhost (если ssh-клиент запущен на той же машине что и Jabber-клиент).

    Для создания ssh-туннеля необходима машина с запущенным ssh-сервером и доступом к jabber.example.com. Такая конфигурация может использоваться в случае, если с локальной машины доступ к jabber.example.com закрыт файерволом, но есть доступ к некоторому ssh-серверу, у которого ограничения доступа в Интернет отсутствуют.

    SSH (Secure Shell - Защищенная оболочка ) -- это сетевой протокол, обеспечивающий защищенную аутентификацию, соединение и безопасную передачу данных между хостами сети, путем шифрования, проходящего через него трафика, с возможной компрессией данных. Еще одной важной функциональной особенностью, является возможность создания защищенных, шифрованных туннелей, для безопасной передачи через небезопасную среду (например интернет), других сетевых протоколов, так-же с возможность сжатия трафика. Кроме того протокол SSH отлично работает с форвардингом (переадресация, перенаправление) портов одной машины на порты другой в том числе и форвардинг удаленных клиентов XWindow . Сейчас протокол SSH , является стандартом, и широко используется, например, для серверных систем, то есть выполнения различных команд и манипуляций в оболочке сервера через безопасное соединение, копирования файлов через сеть, вроде резервных копий данных.

    Протокол SSH , существует в двух вариантах, коммерческая версия, разрабатываемая SSH inc, и бесплатная, с открытым исходным кодом, OpenSSH , которая в основном и используется на большинстве серверных платформ. Реализация OpenSSH , есть в любой операционной системе семейства Unix, и в большинстве из них, SSH сервер и SSH клиент, являются стандартными утилитами. Все ниже написанное будет касаться OpenSSH и операционной системы FreeBSD. Существуют две версии протокола SSH , не совместимые между собой. Первая реализация протокола SSH , SSH - 1 , была разработана в 1995 году. Вторая версия, SSH - 2 , выпущена в 1996 году. В 2006 году, протокол SSH был принят ассоциацией IETF в качестве интернет стандарта. Сейчас повсеместно используется именно вторая версия протокола SSH , поскольку во-первых, протокол SSH версии 1, страдал серьезными уязвимостями, во вторых в версия 2 использует более мощные алгоритмы шифрования, кроме того поддерживает возможность обнаружения умышленного искажения данных. Алгоритмы шифрования:

    • Протокол SSH, версии 1 DES, 3DES, blowfish
    • Протокол SSH, версии 2 AES-128, AES-192, AES-256, blowfish, CAST-128, ArcFour
    Функция дайджеста:
    • Протокол SSH, версии 1 нет
    • Протокол SSH, версии 2 HMAC-MD5, HMAC-SHA-1, HMAC-RIPEMD
    Как видите, разница очень велика, так что, протокол SSH версии 1 , сейчас вообще, строго не рекомендуется к применению где-либо.

    Способы аутентификации по протоколу SSH, состав программного пакета OpenSSH

    Безопасность протокола SSH обеспечивается следующими программными решениями:
    • Шифрование всего трафика, проходящего через SSH соединение, выполняемое по одному из возможных алгоритмов, выбираемых в процессе переговоров сторон сеанса связи. Шифрование трафика соединения, препятствует его перехвату и использованию в злонамеренных целях. За счет выбора различных алгоритмов шифрования, систему становится очень гибкой, позволяя, например, не использовать алгоритмы, в которых были обнаружены уязвимости или потенциальные угрозы безопасности, или использовать только те алгоритмы, которые поддерживаются каждой из сторон;
    • Аутентификация SSH сервера производится всегда, при любом соединении, что не позволяет подменить трафик или сам сервер;
    • Аутентификация SSH клиента может происходить различными способами, что, с одной стороны, делает сам процесс аутентификации более безопасным, с другой, делает систему еще более гибкой, упрощая работу с ней;
    • Контроль целостности сетевых пакетов, дает возможность отследить незаконные изменения трафике соединения, в случае обнаружения данного факта, соединение обрывается незамедлительно;
    • ВременнЫе параметры аутентификации, предотвращают возможность использования перехваченных и через некоторое время, расшифрованных данных соединения.
    Протокол SSH поддерживает довольно разнообразные методы аутентификации и авторизации удаленных клиентов на SSH сервере, вот некоторые из них:
    • GSSAPI-based аутентификация
    • Host-based аутентификация;
    • Аутентификация пользователя с помощью публичного ключа;
    • Аутентификация "вызов-ответ" (challenge-response );
    • Ну и наконец обычная аутентификация пользователя, по паролю;
    Методы аутентификации, используются именно в этом порядке, однако у протокола версии 2 есть опция, PreferredAuthentications , позволяющая изменить порядок, установленный по-умолчанию. В добавок SSH поддерживает дополнительные методы аутентификации пользователя, в зависимости от конкретной операционной системы (например bsd_auth или PAM) В общем случае, аутентификация пользователя происходит на основе открытых ключей. Клиент, пытающийся установить удаленное SSH соединение, шифрует данные, известным ему открытым серверным ключом, который он получает при первом подключении к серверу, и передает их на SSH сервер. Сервер в свою очередь расшифровывает данные, только ему известным, секретным ключом, и отсылает их клиенту. В такой схеме, клиент может быть уверен, что сервер является именно тем, за кого себя выдает. Таким образом, можно не полагаться на DNS и маршрутизацию, даже если злоумышленнику удалось подделать запись DNS или перенаправить пакеты на свой хост, аутентификация не будет пройдена, так как посторонние хосты не обладают необходимыми для этого ключами. Так как SSH это полноценный сетевой протокол, естественно это и определенный набор программ, необходимых для его работы, как базовой функциональности, так и различных дополнительных возможностей. Поскольку речь у нас идет об операционной системе FreeBSD (в других версиях Unix, набор может несколько отличаться), то основными компонентами SSH , являются:
    • sshd - это собственно SSH сервер, программа-демон;
    • ssh - программа-клиент, ставшая заменой для rlogin и telnet ;
    • scp - программа для удаленного копирования через протокол SSH , замена для rcp ;
    • sftp - безопасный ftp-клиент;
    • sftp-server - подсистема обеспечивающая передачу файлов через протоколу SSH ;
    • ssh-keygen - генератор ключей
    • ssh-keyscan - "сборщик" публичных ключей хостов;
    • ssh-agent - агент аутентификации, для удержания приватных ключей;
    • ssh-add - небольшая программа для добавления ключей в ssh-agent ;
    Как было сказано выше, sshd , это программа, отвечающая за серверную функциональность SSH , запускается она при загрузке операционной системы. Что-бы использовать протокол SSH сразу после установки FreeBSD, нужно разрешить запуск демона sshd в программе инсталляции Sysinstall . Хотя это можно сделать и позже, при условии что у вас есть доступ к терминалу сервера. Разрешить запуск демона sshd , можно через стартовый скрипт /etc/rc.conf, прописав следующую строку: Естественно этого можно и не делать, а просто запустить демон с консоли /usr/sbin/sshd , но при следующей перезагрузке, он сам по себе не запустится, соответственно доступа к серверу по протоколу SSH у вас не будет, ну а если сервер стоит в дата-центре хостинг провайдера, то и удаленно администрировать его, вы не сможете. По этой причине, если предполагается удаленное администрирование сервера, sshd включается на этапе установки. Обзор