Каталог :: Программирование и комп-ры

Доклад: Использование протоколов TELNET и SSH

                  РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ                  
     Доклад на тему:
                  Использование протоколов TELNET и SSH.                  
                                         Подготовил: Войцеховский Вадим Олегович
                                                                  Группа: НП-301
                               Москва, 2005                               
     
      

Содержание

Содержание. - 2 - I. Протокол TELNET. - 3 - Словарь. - 3 - Введение. - 3 - Технология. - 3 - Описание технологии. - 3 - Подробности Протокола. - 4 - Безопасность. - 4 - II. Протокол SSH.. - 5 - Словарь. - 5 - Введение. - 6 - История. - 6 - Технология. - 7 - SSH-1 vs. SSH-2. - 7 - Описание технологии протокола SSH-1. - 7 - Описание технологии протокола SSH-2. - 8 - III. Использование протоколов TELNET и SSH.. - 10 - Удаленный доступ в Windows. - 10 - Безопасность SSH.. - 10 - Эмуляторы терминала SSH в Windows. - 11 - Подведение итогов. - 11 - Список литературы.. - 13 -

I. Протокол TELNET

Словарь

TELNET 1. Протокол линии передачи данных Интернет, который дает возможность компьютеру функционировать как терминал, работающий под управлением удаленного компьютера. 2. Программа, которая осуществляет этот протокол. The American Heritage® Dictionary of the English Language, Fourth Edition Copyright © 2004, 2000 by Houghton Mifflin Company. Published by Houghton Mifflin Company. All rights reserved.

Введение

Протоколы Интернет

Прикладной уровеньHTTP, SMTP, FTP, SSH, IRC, SNMP ...
Транспортный уровеньTCP, UDP, SCTP, RTP, DCCP ...
Межсетевой уровеньIPv4, IPv6, ARP, ICMP , TELNET ...
Физический уровеньEthernet, 802.11 WiFi, Token ring, FDDI, ...
Telnet - протокол сетевого уровня, используемый в Интернет. IETF Документ STD 8 (он же RFC 854 и RFC 855 ) гласит: Подпись: Цель протокола telnet - обеспечение общим, двусторонним, восьмиразрядным  средством связи с ориентированным байтом. 

Telnet обычно используется для обеспечения пользователей ориентируемыми сеансами входа в систему с командной строки между удаленными компьютерами в сети Интернет. Telnet - также название программы, при помощи которой пользователь, чтобы установить сеанс telnet с удаленным компьютером; программа telnet представляет собой клиентскую часть протокола. На протяжении многих лет системы Unix располагали клиентскими приложениями протокола telnet, практически для любой архитектуры компьютера. «Телнетиться» - глагол означающий устанавливать или использовать подключение по протоколу telnet. Например "Если Вы хотите изменить свой пароль, Вам необходимо прителнетится к серверу и выполнить команду passwd".

Технология

Описание технологии

Telnet - протокол эмуляции терминала, обычно используемый в сети Интернет и в сетях, работающих по протоколам, основанным на TCP/IP. Это позволяет пользователю терминала или персонального компьютера, регистрироваться в системе удаленного компьютера и выполнять программы. Протокол telnet был первоначально разработан для ARPAnet и является важной частью протокола передачи данных TCP/IP. Хотя большинство компьютеров в сети Интернет предоставляют доступ посредством протокола telnet только для пользователей, у которых имеется действующая учетная запись и пароль, существуют также некоторые системы, которые предоставляют доступ в свою сеть без аутентификации пользователя, чтобы запускать и пользоваться такими программами как утилиты поиска (пример Archie – система поиска архивов по протоколу ftp; пример - Telenet).

Подробности Протокола

Telnet - клиент-серверный протокол, основанный на TCP, и клиенты в общем случае соединяется с портом 23 на удаленном компьютере, предоставляющем такую услугу (хотя, подобно многим протоколам, используемых в сети Интернет, используемый для соединения порт можно изменить, другими словами 23 номер порта – всего лишь общий случай). Частично из-за конструкции протокола и частично из-за гибкости, обычно снабжаемой программами telnet, можно использовать программу telnet, чтобы установить интерактивное подключение TCP с некоторой другой услугой удаленного компьютера. Классическим примером такого использования клиентской части протокола может послужить соединение при помощи программы telnet с портом 25 удаленного компьютера (где обычно находиться SMTP сервер) чтобы отладить сервер почты. Протокол telnet может быть представлен в виде ядра и наборов дополнений. Ядро протокола описано в соответствии с IETF документами RFC 854 и RFC 855, которые также собраны вместе в STD 8, который определяет только базисные эксплуатационные показатели протокола и способа определения и осуществления дополнений к нему. Имеется много дополнений, некоторые из которых были приняты как стандарты Интернет, некоторые нет. IETF STD документы с номерами от 27 до 32 описывают различные дополнения протокола telnet (большинство из которых являются чрезвычайно общими). Из оставшихся дополнений наиболее полезные – вероятно те, которые находятся на рассмотрении IETF в качестве будущих стандартов; подробности в STD 1. Объяснение этому факту будет дано позже, однако стоит заметить, что сам по себе протокол telnet очень небезопасный, и следует избегать его использование. Использование этого протокола в общедоступных местах может привести к серьезным проблемам безопасности.

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

Имеются три главных проблемы связанные с использованием telnet, делая его плохим выбором для современных систем с точки зрения безопасности: Ø Используемые по умолчанию демоны telnet имеют несколько уязвимостей, обнаруженных за эти годы, и вероятно еще несколько до сих пор существуют. Ø Telnet не шифрует никакие данные, которые посылаются через установленную связь (включая пароли), и таким образом становиться возможным прослушивание связи и использовании пароль позже для злонамеренных целей. Ø Отсутствие системы аутентификации в telnet не дает никакой гарантии, что связь, установленная между двумя удаленными хостами не будет прервана в середине. Нежелательно использование протокола telnet в системах, для которых важна безопасность, таких как общественный Интернет. Сеансы telnet не поддерживают шифрование данных. Это означает это любой, кто имеет доступ к любому маршрутизатору, коммутатору или шлюзу в сети между двумя удаленными компьютерами, соединенными сеансом связи по протоколу telnet, может перехватить проходящие пакеты и легко получить логин и пароль для доступа в систему (или завладеть любой другой информацией, которой обмениваются эти компьютеры) при помощи любой общедоступной утилиты подобно tcpdump и Ethereal. Эти недостатки привели к очень быстрому отказу от использования протокола telnet в пользу более безопасного и функционального протокола SSH, описанного в 1998г. SSH предоставляет все те функциональные возможности, которые представлялись в telnet, с добавлением эффектного кодирования с целью предотвращения перехвата таких данных, как логины и пароли. Введенная в протоколе SSH система аутентификации с использованием публичного ключа гарантирует, что удаленный компьютер действительно является тем, за кого себя выдает. Эксперты компьютерной безопасности, как например SANS Institute и члены телеконференции comp.os.linux.security рекомендуют отказаться от использования протокола telnet для удаленного доступа при всех нормальных обстоятельствах. Когда telnet развивался в ранних 1980-ых (согласно некоторым источникам в 1969), большинство пользовательских компьютеров в сети было в компьютерных отделах академических учреждений, или в больших частных и правительственных научно-исследовательских институтах. В этой среде многие предприятия не были особого обеспокоены защитой до резкого увеличения пропускной способности 1990-ых. С экспоненциальным ростом числа пользователей сети Интернет, также резко увеличилось число людей, пытающихся взломать серверы этой сети. Как следствие протокол telnet не должен использоваться в сетях, имеющих доступ в Интернет. Клиенты telnet до сих пор иногда используются для того, чтобы вручную «общаться» с некоторыми другими сервисами. Например это иногда бывает полезным для отладки сетевых служб типа SMTP или HTTP серверов, т.к этот способ делает простым отправку команд на сервер и изучение ответов сервера на те или иные команды. Telnet может также использоваться как элементарный IRC клиент, если Вы достаточно хорошо знаете протокол. Telnet также может использоваться для Multi User Dungeon игр, которые работают через сеть Интернет. Эта статья запатентована под лицензией GNU Free Documentation License. Она использует материал от Wikipedia article "Telnet".

II. Протокол SSH

Словарь

SSH (Secure SHell) 1. Протокол линии передачи данных Интернет, который дает возможность компьютеру функционировать как терминал, работающий под управлением удаленного компьютера. 2. Программа, которая осуществляет этот протокол. The American Heritage® Dictionary of the English Language, Fourth Edition Copyright © 2004, 2000 by Houghton Mifflin Company. Published by Houghton Mifflin Company. All rights reserved.

Введение

Протоколы Интернет

Прикладной уровеньHTTP, SMTP, FTP, SSH, IRC, SNMP ...
Транспортный уровеньTCP, UDP, SCTP, RTP, DCCP ...
Межсетевой уровеньIPv4, IPv6, ARP, ICMP , TELNET ...
Физический уровеньEthernet, 802.11 WiFi, Token ring, FDDI, ...
Парадокс сети Интернет заключается в том, что она никогда бы не развилась бы, если бы не была открытой. Но подобного рода открытость делает ее уязвимой для различного рода атак. Протокол SSH был тем решением прошлого десятилетия, которое создавалось и развивалось с целью разрешить этот парадокс. Для непосвященных людей SSH представляет собой некую программу, которая позволяет устанавливать соединение с удаленным компьютером, выполнять на нем некоторые команды и перемещать файлы между компьютерами. Предоставляя надежную систему аутентификации и возможность обеспечения стойкого алгоритма шифрования данных, передаваемых по открытым каналам (таким как сеть Интернет) позволила SSH заменить менее безопасные программы эмуляции терминала, такие как telnet, rsh, rlogin и др. Любой системный администратор прекрасно знаком с программами эмуляции терминала (ssh, rsh, telnet и др.), а также с протоколами, посредством которых они взаимодействуют. Первым делом, после установки операционной системы, системный администратор считает своим долгом заменить используемые по умолчанию небезопасные программы удаленного доступа, такие как telnet, rlogin и другие, на SSH. Протокол SSH не решает всех проблем сетевой безопасности. Он лишь фокусирует свое внимание на обеспечении безопасной работы таких приложений, как эмуляторы терминала (однако этими лишь функциями протокол не ограничивается, он позволяет устанавливать безопасные соединения и для других целей). Использование реализаций протокола SSH на серверах и в клиентских приложениях помогает защитить данные лишь в процессе передачи; протокол SSH ни коим образом не является заменой брандмауэров, систем обнаружения вторжений, сетевых сканеров, систем аутентификации и других инструментов, позволяющих защитить информационные системы и сети от атак.

История

В 1995 году Тату Илонен (Tatu Ylonen, Finland) представил на рассмотрение первую версию программы SSH и Интернет драфт (Internet draft) "The SSH (Secure Shell) Remote Login Protocol", который описывает протокол, используемый оригинальной программой SSH, который также известен как протокол SSH-1. Вскоре после этого была выпущена новая версия протокола SSH-2. В 1997 году по просьбе Тату Илонена, организация IETF организовала специальную группу SECSH, в обязанности которой входило дальнейшее развитие, усовершенствование и поддержкапротокола (см. ресурсы SSH). Важно отметить, что сами по себе протоколы SSH-1 и SSH-2 различны. Т.е. если клиент запрашивает соединение с сервером протоколу SSH-1, а сервер поддерживает только протокол SSH-2, то соединение установлено не будет. Эта особенность связана с технической реализацией этих протоколов, которые, по большому счету, выполняют одни и теже функции. Более того использование протокола SSH-1 скорее всего свалится на системного администратора в виде лишней головной боли, чем предоставит реальную защиту передаваемых между системами данных.

Технология

SSH-1 vs. SSH-2

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

Описание технологии протокола SSH-1

Ниже дано описание работы протокола SSH-1: Сначала клиент посылает серверу запрос на установление SSH соединения и создание нового сеанса. Соединение будет принято сервером, если он принимает сообщения подобного рода и готов к открытию нового сеанса связи. После этого клиент и сервер обмениваются информацией, какие версии протоколов они поддерживают. Соединение будет продолжено, если будет найдено соответствие между протоколами и получено подтверждение о готовности обеих сторон продолжить соединение по данному протоколу. Сразу после этого сервер посылает клиенту постоянный публичный и временный серверный ключи. Клиент использует эти ключи для зашифровки сессионного ключа. Несмотря на то, что временный ключ посылается прямым текстом, сессионный ключ по-прежнему безопасный. После этого сессионный ключ шифруется временным ключом и публичным ключом сервера и, таким образом, только сервер может его расшифровать. На этом этапе и клиент и сервер обладают сессионным ключом и, следовательно, готовы к безопасному сеансу передачи зашифрованных пакетов. Аутентификация сервера происходит исходя из его возможности расшифровки сессионного ключа, который зашифрован публичным ключом сервера. Аутентификация клиента может происходить различными способами, в том числе DSA, RSA, OpenPGP или по паролю. Сессия продолжается до тех пор, пока и клиент и сервер способны аутентифицировать друг друга. Установленное соединение по протоколу SSH-1 позволяет защитить передаваемые данные стойким алгоритмом шифрования, проверкой целостности данных и сжатием.

Описание технологии протокола SSH-2

Оба протокола, по сути, выполняют одни и те же функции, но протокол SSH-2 делает это более элегантно, более безопасно и более гибко. Основное различие между протоколами заключается в том, что протокол SSH-2 разделяет все функции протокола SSH между тремя протоколами, в то время как протокол SSH-1 представляет собой один единый и неделимый протокол. Модуляцией функций протокола SSH в трех протоколах – протоколе транспортного уровня, протоколе аутентификации и протоколе соединения, делает протокол SSH-2 наиболее гибким и мощным механизмом создание безопасных туннелей. Ниже надо краткое описание и назначение каждого из трех протоколов, составляющих протокол SSH-2:
  • Протокол транспортного уровня – предоставляет возможность шифрования и сжатия передаваемых данных, а также реализует систему контроля целостностью данных.
  • Протокол соединения – позволяет клиентам устанавливать многопоточное соединение через оригинальный SSH туннель, таким образом снижая нагрузку, которую создают клиентские процессы.
  • Протокол аутентификации – протокол аутентификации отделен от протокола транспортного уровня, т.к. не всегда бывает необходимым использование системы аутентификации. В случае, если нужна аутентификация, процесс защищается оригинальным безопасным каналом, установленным через протокол транспортного уровня.
Сам по себе, протокол транспортного уровня является достаточным для установления защищенного соединения, он является основой протокола SSH-2 и протоколы соединения и аутентификации основаны на нем. Протокол аутентификации отделен от протокола транспортного уровня, т.к. иногда возникает ситуация, когда использование аутентификации не только не обязательно, но и даже нежелательно. Например, некая организация предоставляет на своем FTP сервер анонимный доступ к патчам безопасности для любого человека (или системы), которая захочет их скачать. В этом случае аутентификация требоваться не будет, в то время как шифрование, сжатие и контроль целостности данных будут обеспечиваться протоколом транспортного уровня. Более того, при наличии канала высокой пропускной способности, клиенты смогут организовать многопоточное соединение через оригинальное SSH соединение, используя протокол соединения.

III. Использование протоколов TELNET и SSH

Удаленный доступ в Windows

Утилита telnet, предоставляемая вместе с ОС Windows широко используется для получения удаленного доступа и удаленного выполнения программ на серверах Web и других компьютерах в локальных сетях также как в сети Интернет. В этом примере telnet используется для настройки маршрутизатора в локальной сети. Настройка осуществляется путем соединения по протоколу telnet с маршрутизатором, запуском на нем настроек и управлением программным обеспечением, установленном на нем для этих целей. На рисунке изображена оперативная память программы маршрутизации. Это определение защищено авторским правом и предназначено только для персонального использования. Любое другое использование строго запрещено без разрешения автора. © 1981-2005 Computer Language Company Inc. Все права защищены.

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

Клиентские приложения обычно посылают запрос на открытие сессии серверу на определенный порт, который прослушивается запущенными на сервере сервисами на поступающие специфические запросы. Ниже приведен список самых известных из них:
  • 21 – ftp
  • 80 – http
  • 25 – smtp
  • 23 – telnet
  • и др.
Многие из этих клиентских приложений осуществляют запросы прямым текстом. Протокол SSH позволяет обезопасить такие подключения. Сначала пакеты будут посланы на некий известный на сервере порт, после чего они будут переадресованы на 22 порт (который обслуживается сервером SSH) и там будут преобразованы в защищенные SSH пакеты, инкапсулированные в защищенное соединение. Возможности использования протокола SSH ограничиваются, по сути, лишь воображением, так как сам по себе протокол является очень гибким и мощным механизмом создания защищенных туннелей.

Эмуляторы терминала SSH в Windows

Существует множество приложений, предоставляющих возможность эмуляции терминала по протоколам TELNET и SSH в Windows. Конечно, простейший способ - воспользоваться программой telnet, которую компания Microsoft предоставляет вместе с Windows. К сожалению, в ней отсутствует целый ряд привычных средств, в часноти таких, как непосредственные операции вырезания и вставки. Кроме того, подобно многим реализациям протокола TELNET, эта программа не имеет собственной концепции безопасности. К счастью существуют разнообразные эмуляторы терминалов, доступные в Windows; они гораздосовершеннее, чем программа telnet компании Microsoft. Наиболее удачный выбор на мой взгяд - SecureCRT компании VanDyke Technologies, Inc. Этот недорогой коммерческий продукт сочетает средства защищенного входа в систему и передачи данных через систему SSH с надежным эмулятором терминала. Поддерживается шифрование данных с длиной ключа от 56 до 256 битов, а также переадресация портов других приложений, в часности электронной почты. Более подробную информацию о продукте можно найти на Web- узле www.vandyke.com. Другой коммерческий эмулятор - SSH client for Windows - предлагается компанией F-Secure Corporation. Информация о нем доступна на Web-узле www.fsecure.com. Тем, кто ищет бесплатный эмулятор, наиболее приемлемым вариантом будет воспользоваться программой TeraTerm с подключаемым модулем TTSSH, доступной по адресу http://hp.vector.co.jp/authors/VA002416/teraterm.html. Подключаемый модуль можно найти по адресу: http://www.zip.com.au/~roca/ttssh.html. Совместно онипредлагают весьма надежное и безопасное решение.

Подведение итогов

Главной функцией протоколов TELNET и SSH является предоставление возможности входа в удаленную систему. Эта функция предоставляет практически неограниченные возможности использования этих протоколов: ü Они могут использоваться системными администраторами для удаленной настройки компьютеров некоторой сети, что позволит им выполнять свои непосредственные обязанности не вставая со своего рабочего места. ü Они могут использоваться (правда это довольно таки неудобно) для Multi User Dungeon игр, которые работают через сеть Интернет. ü Они могут использоваться для настройки различного рода сетевых служб, таких как сервер исходящей почты SMTP или сервер доменных имен DNS. ü Они могут использоваться для обмена файлами между компьютерами подключенными, например через модем. ü Они могут предложить пользователю возможность общения с сетевыми сервисами «вручную», что иногда бывает полезно для системных администраторов для отправки различных команд сетевым службам и последующего анализа полученных ответов. Однако кардинальные различия между этими протоколами не могут остаться незамеченными. Отсутствие любого рода защиты передаваемых данных, а также системы аутентификации делает протокол TELNET весьма непривлекательным с точки зрения безопасности. Кроме того, на данный момент найдены уязвимости в протоколе SSH-1. Именно поэтому специалисты в области информационной и компьютерной безопасности настоятельно рекомендуют отказаться (по взможности) от использования этих протоколов. В свою очередь, протокол SSH-2, предоставляя возможность защиты передаваемых данных путем использования стойкого алгоритма шифрования, системы аутентификации, системы контроля целостности данных и возможности сжатия, может предоставить дополнительную функциональность: ü Все вышеуказанные функции могут быть предоставлены через защищенные SSH туннели, которые позволят скрыть передаваемую информацию от чужих глаз, защитить ее от атак и обеспечить контроль целостности данных. ü Переадресация пакетов сервером с некоторого порта на порт сервера SSH позволит защитить передаваемые данные, путем организации защищенного SSH туннеля. ü Использование сжатие данных может снизить используемое количество трафика, что бывает полезным, если системный администратор часто пользуется удаленными соединениями через сеть Интернет (подразумевается, что он платит за используемый трафик J) ü Протокол соединения, являющийся частью протокола SSH-2, позволит клиентам уменьшить нагрузку на центральный процессор путем организации многопоточного соединения через оригинальное SSH соединение. Все вышесказанное говорит в пользу того, что протокол TELNET может быть использован только в малых сетях при уверенности, что передаваемые данные никакой важности не несут. Возможности же протокола SSH почти неограниченные. Однако, необходимо отметить, что мир не стоит на месте. Развиваются технологии, Интернет растет, а вместе с ним растет и развивается сообщество хакеров. Будучи сегодня безопасной технологией, завтра SSH может быть под угрозой исчезновения, вследствие найденных в протоколе уязвимостей. Но даже если это случится, протоколы, обеспечивающие функционирование эмуляторов терминалов продолжат свое развитие под действием группы SECSH организации IETF. На сегодняшний же день можно с уверенности утверждать, что протокол SSH-2 предоставляет огромные возможности всем пользователям открытых информационных систем.

Список литературы

1) http://www.answers.com/ 2) http://informationsecurity.techtarget.com/ 3) http://www.nwcet.org/ 4) Эви Немеет, Гарт Снайдер, Скотт Сибасс, Трент Р.Хейн, «UNIX Руководство системного администратора», 3-ее изд., издательская группа BHV, Санкт-Петербург, 2004г.