Какие службы предоставляет протокол telnet? cloud-script.ru

Какие службы предоставляет протокол telnet?

Какие службы предоставляет протокол telnet?

a. для чего предназначен

c. недостатки, проблемы безопасности

d. обзор и сравнительные таблицы telnet -клиентов и telnet -серверов

a. для чего предназначен

c. недостатки и достоинства

d. обзор и сравнительные таблицы SSH -клиентов

Telnet

Основные реализации (клиенты):

telnet.exe / telnet ( в Unix)

Основные реализации (серверы):

telnetd, MS Telnet

Telnet (Teletype Network) — сетевой протокол для удалённого доступа к компьютеру с помощью командного интерпретатора. Аналогичное название имеют утилиты для работы с протоколом. Не использует шифрование и поэтому уязвим для атак при применении в Интернете или локальной сети. Равную функциональность при большей защищённости обеспечивает сетевой протокол SSH.

TELNET позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов.

TELNET предлагает три услуги:

  1. Определяет сетевой виртуальный терминал (NVT — network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе.
  2. Включает механизм, который позволяет клиенту и серверу согласовать опции обмена
  3. Обеспечивает симметрию соединения, допуская любой программе (например FTP) выступать в качестве клиента

Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные «сетевые виртуальные терминалы» строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей.

Telnet взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.

При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.

После того как TELNET связь установлена, начинаются переговоры об используемых опциях (см. табл. 4.5.3.1). Каждая из договаривающихся сторон может послать другой один из четырех запросов will, do, wont и dont

Далее TELNET переходит в режим ввода. В этом режиме любой введенный текст пересылается удаленной ЭВМ. Ввод может производиться посимвольно или построчно. При посимвольном режиме каждый введенный символ пересылается немедленно, при построчном режиме отклик на каждое нажатие клавиши производится локально, а пересылка выполняется лишь при нажатии клавиши . Некоторые опции требуют дополнительных данных, такая информация ожет быть получена с помощью субопций (RFC-1091). При этом клиент посылает трехбайтовую последовательность IAC WILL 24, где 24 — код-идентификатор терминала. Получатель может откликнуться последовательностью IAC DO 24, если все в порядке. Сервер в свою очередь посылает последовательность IAC SB 24 1 IAC SE, запрашивая тип терминала клиента. Здесь код 24 означает, что это субопция для опции типа терминала (см. табл. 4.5.3.1), а следующая 1 является командой «пришлите код вашего терминала». Клиент в свою очередь может откликнуться, послав последовательность — IAC SB 24 0 I B M P C IAC SE. Здесь байт 0 имеет значение «мой терминал имеет тип». Список кодов терминалов содержится в RFC-1700.

Блок данных процедуры TELNET содержит три байта и называется командой. Формат этого блока показан на рис. 4.5.3.1.

Рис. 4.5.3.1. Формат блока данных Telnet

Первый байт в соответствии с таблицей содержит 8 единиц, далее следует байт команды (табл. 4.5.3.4). Третий октет служит для размещения кода опции, он может и отсутствовать.

Пожалуй, самой известной программой удаленного управления UNIX является telnet, тем более что она входит в комплект поставки практически любой современной операционной системы. telnet представляет собой программу эмуляции терминала, использующую собственный протокол прикладного уровня TELNET. Для поддержки сервиса telnet на сервере должна быть запущена системная программа (называемая в UNIX демоном) telnetd, которая обрабатывает запросы клиентов telnet. Сервер telnet может обслуживать сразу несколько клиентов, при этом протокол TELNET использует в качестве транспортного протокол TCP (порт 23).

С помощью telnet можно управлять не только компьютерами UNIX, но и такими сетевыми устройствами, как маршрутизаторы, коммутаторы, серверы удаленного доступа и т. д. telnet можно использовать и для администрирования Windows NT (серверное ПО для этой службы имеется в виде нескольких бесплатных и коммерческих программ), но только в режиме командной строки. Telnet дает пользователю возможность со своего места подключаться к удаленному серверу и работать с ним в текстовом режиме. При этом для пользователя создается полная иллюзия, что он сидит за текстовым терминалом данного сервера.

Протоколы прикладного уровня. TELNET

Главная задача Интернета и его набора протоколов TCP/IP — это обеспечить сервис для пользователя. Например, пользователь хочет иметь возможность выполнять различные прикладные программы на удаленном сайте и создать результат, который может быть передан к его местному сайту. Один из путей удовлетворения такой потребности — создать различные прикладные программы клиент- сервер для каждой услуги. Уже доступны программы передачи файлов ( FTP и TFTP ), электронной почты ( SMTP ) и так далее. Однако все конкретные программы клиентсервер для каждого применения описать невозможно.

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

TELNET — это сокращение от Terminals NETwork . Это стандартный протокол TCP/IP для услуг виртуального терминала. TELNET дает возможность устанавливать соединение с удаленным компьютером таким образом, что создается впечатление, как будто местный терминал – это терминал удаленной системы.

TELNET основан на концепциях, которые обсуждаются ниже.

Внешняя среда с разделением времени

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

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

В среде с разделением времени пользователь — это часть системы с некоторыми правами и, вероятно, с паролем. Каждый полномочный пользователь имеет идентификатор и пароль . Пользовательская идентификация определяет пользователя как часть системы. Для доступа к системе пользователь начинает сеанс с пользовательского идентификатора (id) или с регистрационного имени ( login name ). Система помогает проверке пароля, чтобы предотвратить доступ к ресурсу неполномочного пользователя.

Местный логин

Когда пользователь входит в местную систему с разделением времени, это называется местный логин. Как только пользователь напечатает некое слово на терминале или рабочей станции, выполняющей эмуляцию терминала, сразу начинает работать терминальная программа (драйвер), которая распознает значение введенных символов. Терминальный драйвер передает символы операционной системе, в рамках этой системы комбинация символов интерпретируется и вызывает желаемую прикладную программу или утилиту (рис. 12.1 ).

Однако этот механизм не такой простой, как кажется, потому что операционная система может назначить специальные значения для специальных символов. Скажем, в UNIX некоторые комбинации символов имеют специальное значение, например, комбинации управляющих символов с символом «z», которые означают прекращение действия; комбинации управляющих символов с символом «c» означают остановку; и так далее. Несмотря на то что эти специальные ситуации не создают никаких проблем в местном вхождении в систему (login), потому что терминальный эмулятор и терминальный драйвер знают точно значение каждого символа и комбинации символов, они могут создавать проблемы при удаленном входе в систему. Какой процесс должен интерпретировать специальные символы? Клиент или сервер? Эта ситуация будет рассмотрена в этой лекции позднее.

Удаленный логин

Когда пользователь хочет иметь доступ к прикладной программе или утилите, размещенным на удаленном компьютере, он выполняет дистанционный вход в систему (логин). Здесь TELNET берет на себя функции клиента и сервера. Пользователь посылает сигнал нажатия кнопки терминальному драйверу, где местная операционная система принимает символы и интерпретирует их. Эти символы посылает TELNET-клиент, который преобразует символы к универсальному набору, называемому символы виртуального сетевого терминала (Network Virtual Terminal Characters), и доставляет их к местному стеку протоколов TCP/IP (рис. 12.2 ).

Читать еще:  Как узнать историю включения компьютера

Команды или текст в форме сетевого виртуального терминала ( NVT ) перемещаются через Интернет и прибывают на стек протоколов TCP/IP в удаленной машине. Здесь символы доставляются операционной системе и проходят к TELNET-серверу, который преобразует их в символы, понятные удаленному компьютеру. Однако символы не могут пройти прямо на операционную систему, потому что удаленная операционная система не разработана для получения трактовки этих символов от TELNET. Она спроектирована так, чтобы принимать символы от драйвера терминала. Решение, добавляющее необходимое программное обеспечение, называется псевдотерминальным драйвером, который преобразовывает поступившие символы как символы, поступающие от местного терминала. Операционная система затем предает символы к соответствующей прикладной программе.

Сетевой виртуальный терминал (NVT)

Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl+z , в то время как в других операционных системах — это Ctrl+d .

Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением универсального интерфейса , называемого NVT ( Network Virtual Terminal — виртуальный сетевой терминал ). Для каждого интерфейса TELNET переводит символы (данные или команды), которые получает от местного терминала, в NVT -форму и доставляет их в сеть . С другой стороны, сервер TELNET переводит команды из формы NVT в форму, доступную удаленному компьютеру. Все иллюстрации этой концепции смотрите на рисунке 12.3.

TELNET — клиент сервера Telnet для Windows.

Протокол прикладного уровня TELNET (от англ. TErminaL NETwork) — сетевой протокол для реализации текстового интерфейса по сети. Название telnet получили также клиентские программы реализации данного протокола, практически для всех существующих операционных систем. Протокол Telnet – один из старейших сетевых протоколов, разрабатывавшихся как средство связи между удаленными терминалами в тестовом режиме. Поэтому в нем не предусмотрено шифрование данных и использование современных средств проверки подлинности. Протокол уязвим для множества сетевых атак, и не может использоваться в качестве средства управления сетевыми операционными системами. В настоящее время, для удалённого доступа к системе применяется сетевой протокол SSH (Secure SHell), при создании которого упор делался именно на вопросы безопасности. Относительная безопасность сессий Telnet осуществляется только в полностью контролируемой сетевой среде или с применением защиты на сетевом уровне (различные реализации VPN — виртуальных частных сетей). Тем не менее, TELNET по-прежнему применяется для управления специализированными сетевыми устройствами (Коммутаторами, роутерами и т.п.), а также для сетевой диагностики, выполнения отладки и изучения других текст-ориентированных (telnet-like) протоколов на основе транспорта TCP. Современный стандарт протокола Telnet описан в RFC 854.

В современных ОС семейства Windows, утилита telnet.exe по умолчанию, не устанавливается. Для ее установки нужно перейти в Панель управления — Программы и Компоненты – Включение или отключение компонентов Windows и установить галочку для Клиент Telnet. Или в командной строке, запущенной от имени администратора, выполнить команду:

Формат командной строки:

telnet [-a][-e Символ][-f Файл][-l Имя][-t Тип][Узел [Порт]]

Параметры командной строки:

-l Имя пользователя для входа в удаленную систему при условии, что поддерживается параметр TELNET ENVIRON.

-a Попытка автоматического входа в систему. Как и ключ -l, но использует текущее имя пользователя, под которым выполнен вход в систему.

-e Служебный символ переключения режима ввода в окне telnet-клиента.

-f Имя файла журнала на стороне клиента. В русскоязычной справке этот параметр неверно трактуется как Файл_входа — “Имя файла со стороны клиента для выполнения входа в систему”.

-t Тип telnet-терминала. Поддерживаются 4 типа терминалов: vt100, vt52, ansi и vtnt.

Узел Имя узла или IP-адрес удаленного компьютера, к которому выполняется подключение. Порт Номер порта или имя службы. Если номер не задан, то используется стандартный порт Telnet 23TCP

При запуске без параметров, утилита переходит в режим ожидания ввода команд :

Добро пожаловать в программу-клиент Microsoft Telnet

Символ переключения режима: ‘CTRL+]’

При вводе символа ? или help отображается справочная инвормация:

Команды могут быть сокращены. Поддерживаемыми командами являются:

c — close — закрыть текущее подключение

d — display — отобразить параметры операции

o — open имя_узла [Порт] — подключиться к сайту (по умолчанию, Порт = 23)

q — quit — выйти из telnet

set — set — установить параметры («set ?» для вывода их списка)

sen — send — отправить строки на сервер

st — status — вывести сведения о текущем состоянии

u — unset — сбросить параметры («unset ?» для вывода их списка)

? /h — help — вывести справку

Некоторые из команд позволяют получить подсказку по использовании, при вводе с символом вопроса:

Telnet> set ? — получить подсказку по использованию команды установки режимов . Пример отображаемой информации:

bsasdel — символ BackSpace будет отправляться как символ Delete

crlf — режим возврата каретки; приводит к отправке символов CR & LF

delasbs — символ Delete будет отправляться как символ BackSpace

escape x — где x — символ переключения в режим telnet-терминала и обратно

localecho — включение локального эха.

logfile x — где x — файл журнала. В русском переводе неверно трактуется как «Файл входа текущего клиента в систему»

logging — запись текущей сессии в журнал. В русском переводе неверно трактуется как «выполнение входа в систему»

mode x — где x=console — консольный режим, используемый для работы с оконными приложениями (редактор vi) и x=stream — потоковый режим, используемый для работы в командной строке.

ntlm — включение проверки подлинности NTLM.

term x — тип эмулируемого терминала. Где x — ansi, vt100, vt52, или vtnt.

Для получения подсказки по отмене установленных параметров используется команда

Microsoft Telnet> unset ?

bsasdel — символ BackSpace будет отправляться как символ Delete

crlf — режим перевода строки; приводит к отправке символа CR

delasbs — символ Delete будет отправляться как символ Backspace

escape — символ переключения в режим telnet-терминала и обратно не задан

localecho — отключение локального эха

logging — отключение записи журнала. В русскоязычной весии неверно трактуется как «отключение выполнения входа в систему»

ntlm — отключение проверки подлинности NTLM.

Примеры команд в интерактивном режиме:

open 192.168.0.1 — подключиться к серверу Telnet с IP-адресом 192.168.0.1

o zte-f660 — подключиться к Telnet-серверу с именем zte-f660. Используется сокращение команды open

set logfile C:telnet.log — использовать в качестве файла журнала C:telnet.log

set logging — выполнять запись текущей сессии в файл журнала.

display — отобразить параметры текущей сессии. Пример отображаемой информации:

Символ переключения режима: ‘CTRL+]’

Проверка подлинности NTLM — включена

Вывод локального эха — отключен

Режим новой строки — Символ ВВОД будет отправляться как CR & LF

Текущий режим: Потоковый

Предпочитаемый тип терминала ANSI

&nbsp &nbsp На практике, утилита telnet.exe используется как средство диагностики и отладки для подключения не только к серверу Telnet на TCP порт 23, но и на любой другой TCP-порт, тем самым, позволяя взаимодействовать с любым приложением, управляемым командной строкой. Так, например, с использованием утилиты telnet можно подключиться к серверам, поддерживающим текстовый (telnet-like) ввод команд и данных — SMTP, POP3, IMAP и т.п. Кроме этого, утилиту можно использовать в качестве средства грубой проверки возможности подключения на любой TCP-порт (проверки слушается ли определенный порт TCP).

telnet 192.168.1.1 8080 — подключиться к узлу 192.168.1.1 на порт 8080. В тех случаях, когда порт закрыт, утилита сообщит о невозможности подключения. Причем, для проверки доступности определенного порта даже необязательно, чтобы он слушался службой с поддержкой текстового ввода, как например, сервер VNC. Для отключения от удаленного сервера необходимо ввести символ переключения режима ( по умолчанию — CTRL+]).

Утилиту telnet.exe можно использовать , например, для обмена с почтовым сервером по протоколу POP3 (Post Office Protocol ver. 3). Данный протокол используется почтовыми клиентскими программами (Outlook, Outlook Express, The Bat и т.д.) для получения электронной почты, хранящейся в почтовом ящике пользователя. Это простейший протокол, в основе которого лежит обмен текстовыми сообщениями. С целью изучения взаимодействия почтового клиента с почтовым сервером, можно реализовать сеанс подключения с помощью TELNET.

Стандартно сервер POP3 ожидает входящие соединения по протоколу TCP на порт 110 («слушает» порт tcp/110). Команда telnet для подключения к серверу, например pop.mail.ru

telnet pop.mail.ru 110

Читать еще:  Как узнать системные характеристики своего компьютера?

Если сервер работоспособен, в окне telnet появится его приглашение

+OK mPOP POP3 v1.1

Для доступа к почтовому ящику, нужно авторизоваться на данном почтовом сервере с помощью директив user имя пользователя и pass пароль

После чего, сервер предложит ввести пароль:

+OK Password required for user vasya@pochta.ru

Нужно ввести пароль

Сервер сообщит результат проверки пароля:

+OK vasya@pochta.ru maildrop has 10 messages (152527 octets)

Подобное сообщение означает, что авторизация выполнена успешно, и в почтовом ящике vasya@pochta.ru имеются 10 полученных писем, общим объемом 152527 байт (октетов).

Можно запросить список писем директивой list:

В ответ на это, сервер выдаст список и размеры писем в почтовом ящике:

+OK 10 messages (152527 octets)
1 48628 &nbsp &nbsp &nbsp 1-это порядковый номер, 48628 — размер
2 1829
3 2070
:

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

В ответ на это, вы увидите заголовок письма, содержащий служебную информацию об отправителе, дате отправки, обратном адресе и некоторые другие данные:

Received: from [62.141.94.151] (HELO mx1.ks.pochta.ru) by node7-1.ks.pochta.ru with QIP.RU LMTP
for vasya@pochta.ru;
Fri, 08 Apr 2011 15:18:33 +0400
Received: from mx3.softkey.ru ([217.74.43.68])
: :

Для приема писем используется директива retr порядковый номер

retr 2 — принять письмо с порядковым номером 2

Для удаления письма, используется директива dele порядковый номер Например, для удаления 2-го письма из списка, полученного директивой list:

Если удаление прошло успешно, сервер выдаст сообщение:

+OK message 2 deleted

Иногда, команду TELNET можно использовать и для идентификации службы, слушающей указанный порт, поскольку многие из них при подключении отображают либо свой баннер, либо специфическую служебную информацию. Например, приветствие FTP-сервера: 220-FileZilla Server version 0.9.43 beta

220-written by Tim Kosse (tim.kosse@filezilla-project.org)

220 Please visit http://sourceforge.net/projects/filezilla/

А так выглядит экран при подключении к серверу RealVNC:

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»

Протокол TELNET и SSH

1.2 Технология

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

Telnet — протокол эмуляции терминала, обычно используемый в сети Интернет и в сетях, работающих по протоколам, основанным на TCP/IP. Это позволяет пользователю терминала или персонального компьютера, регистрироваться в системе удаленного компьютера и выполнять программы. Протокол t elnet был первоначально разработан для ARPA net и является важной частью протокола передачи данных TCP/IP.

Хотя большинство компьютеров в сети Интернет предоставляют доступ посредством протокола t elnet только для пользователей, у которых имеется действующая учетная запись и пароль, существуют также некоторые системы, которые предоставляют доступ в свою сеть без аутентификации пользователя, чтобы запускать и пользоваться такими программами как утилиты поиска (например Archie – система поиска архивов по протоколу ftp , Telene t ).

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

Telnet — клиент-серверный протокол, основанный на TCP , и клиенты в общем случае соединяется с портом 23 на удаленном компьютере, предоставляющем такую услугу (хотя, подобно многим протоколам, используемым в сети Интернет, используемый для соединения порт можно изменить, другими словами 23 номер порта – всего лишь общий случай). Частично из-за конструкции протокола и частично из-за гибкости, обычно снабжаемой программами telnet, можно использовать программу t elnet, чтобы установить интерактивное подключение TCP с некоторой другой услугой удаленного компьютера. Классическим примером такого использования клиентской части протокола может послужить соединение при помощи программы telnet с портом 25 удаленного компьютера (где обычно находиться SMTP сервер) чтобы отладить сервер почты.

Протокол telnet может быть представлен в виде ядра и наборов дополнений. Некоторые из дополнений были приняты как стандарты Интернет, некоторые нет. IETF STD документы с номерами от 27 до 32 описывают различные дополнения протокола t elnet (большинство из которых являются чрезвычайно общими). Из оставшихся дополнений наиболее полезные те, которые находятся на рассмотрении IETF в качестве будущих стандартов.

Объяснение этому факту будет дано позже, однако стоит заметить, что сам по себе протокол telnet очень небезопасный, и следует избегать его использования. Использование этого протокола в общедоступных местах может привести к серьезным проблемам безопасности .

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

Имеются три главных проблемы связанные с использованием t elnet, делая его плохим выбором для современных систем с точки зрения безопасности :

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

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

— Отсутствие системы аутентификации в t elnet не дает никакой гарантии, что связь, установленная между двумя удаленными хостами не будет прервана в середине.

Нежелательно использование протокола telnet в системах, для которых важна безопасность, таких как общественный Интернет . Сеансы t elnet не поддерживают шифрование данных . Это означает, что любой, кто имеет доступ к любому маршрутизатору , коммутатору или шлюзу в сети между двумя удаленными компьютерами, соединенными сеансом связи по протоколу telnet, может перехватить проходящие пакеты и легко получить логин и пароль для доступа в систему (или завладеть любой другой информацией, которой обмениваются эти компьютеры) при помощи любой общедоступной утилиты подобно tcpdump и Ethereal .

Эти недостатки привели к очень быстрому отказу от использования протокола t elnet в пользу более безопасного и функционального протокола 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 игр, которые работают через сеть Интернет.

2. Протокол SSH

2.1 Введение

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

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

Любой системный администратор прекрасно знаком с программами эмуляции терминала ( ssh , rsh , telnet и др.), а также с протоколами, посредством которых они взаимодействуют. Первым делом, после установки операционной системы, системный администратор считает своим долгом заменить используемые по умолчанию небезопасные программы удаленного доступа, такие как telnet , rlogin и другие, на SSH .

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

2.2 История

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

Читать еще:  Куда подключать переднюю панель компьютера?

Важно отметить, что сами по себе протоколы SSH -1 и SSH -2 различны. Т.е. если клиент запрашивает соединение с сервером протоколу SSH -1, а сервер поддерживает только протокол SSH -2, то соединение установлено не будет. Эта особенность связана с технической реализацией этих протоколов, которые, по большому счету, выполняют одни и те же функции. Более того использование протокола SSH -1 скорее всего свалится на системного администратора в виде лишней головной боли, чем предоставит реальную защиту передаваемых между системами данных.

2.3 Технология

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

Рис.1. SSH -1

Описание работы протокола SSH -1:

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

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

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

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

Рис.2. SSH -2.

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

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

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

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

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

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

TELNET — одна из самых старых информационных технологий Интернет. Основным назначением протокола является реализация сетевого терминала для доступа к ресурсам удаленного компьютера. Протокол TELNET обеспечивает двунаправленный восьмибитный канал передачи данных. Его главной задачей является создание стандартного метода взаимодействия терминальных устройств и терминал -ориентированных процессов через сеть (РИС 0):

[схема клиент-сервер для Telnet ]

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

Keywords: удаленный терминал , remote terminal, протокол сеансового уровня , session level protocol

Протокол TELNET находится на сеансовом уровне модели OSI/ISO. Для обеспечения удаленного доступа к терминалу сервера стандартом резервируется порт 23.

Основу протокола составляют три базовые концепции:

  1. концепция «Сетевого Виртуального Терминала»,
  2. принцип согласования параметров,
  3. симметрия терминалов и процессов.

К онцепция «Сетевого Виртуального Терминала»

Keywords : Сетевой виртуальный терминал, Network Virtual Terminal , NVT

Когда устанавливается соединение, предполагается, что оно начинается и завершается на «Сетевом Виртуальном Терминале» ( Network Virtual Terminal , NVT). NVT — это воображаемое устройство, которое создает промежуточное стандартное представление канонического терминала. NVT является стандартным описанием наиболее широко используемых возможностей реальных физических терминальных устройств. NVT позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации.

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

Характеристики диалога определяются устройством с меньшими возможностями. В результате, «пользовательскому» и «серверному» узлам не нужно хранить информацию о характеристиках терминалов друг друга. Все узлы отображают характеристики своих устройств так, чтобы другой стороне казалось, что она имеет дело с NVT. Обычно, под «пользовательским» понимают узел, к которому подключен реальный терминал, а под «серверным» — который предоставляет некоторый сервис.

В качестве альтернативы можно считать «пользовательским» тот узел, который инициирует соединение:

Принцип согласования параметров

Keywords : Согласование параметров, option negotiation

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

Протокол предлагает структуру дополнительных параметров «DO, DON’T, WILL, WON’T», позволяющую пользователю и серверу более точно договориться об используемых в соединении соглашениях.

Команда WILL XXX указывает на предложение отправляющей стороны использовать параметр XXX. DO XXX и DON’T XXX являются, соответственно, положительным и отрицательным ответом.

Аналогично, DO XXX посылается как предложение получающей стороне использовать параметр XXX. WILL XXX и WON’T XXX суть положительный и отрицательный ответы. Так как NVT это то, что остается, когда никакие параметры не используются, ответы DON’T и WON’T гарантируют, что соединение останется в состоянии, которое подходит обеим сторонам.
В отличие от других протоков сеансового уровня, таких как FTP или SMTP, команды передаются не английскими словами (или их сокращениями), а в виде восьмибитных последовательностей (байтов).

Так, команде DO соответствует байт 253, WON’T — 252, и т.д.

Установка определенного параметра происходит так: один из участников соединения посылает другому запрос, предлагая использовать в сеансе работы определенный параметр. Если другая сторона соглашается, параметр немедленно вступает в силу. Если приходит отказ, используется то значение параметра, которое определяется для NVT. Обычно параметры согласуются вначале при установке соединения, хотя при работе одна из сторон может вновь изменить какие-либо параметры.

Симметрия терминалов и процессов

Keywords : симметрия терминалов и процессов

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

Ссылка на основную публикацию
Adblock
detector