Использование протоколов telnet, ssh

Протокол Telnet

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

Схема работы

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

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

Протокол SSH

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

Схема работы

Недостатки и достоинства

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

 

Протокол Telnet

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

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

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

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

Схема работы

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

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

Коды опций в Telnet

Код опции в Telnet

Описание

Номер RFC

0

Двоичный обмен

856

1

Эхо

857

2

Повторное соединение NIC

15391

3

Подавление буферизации ввода

858

4

Диалог о размере сообщения NIC

15393

5

Статус

859

6

Временная метка

860

7

Удаленный доступ и отклик

726

8

Длина выходной строки nic

20196

9

Размер выходной страницы nic

20197

10

Режим вывода символов <возврат каретки>

652

11

Вывод горизонтальной табуляции

653

12

Установка положения табуляции при выводе

654

13

Режим вывода команды смены страницы

655

14

Вывод вертикальной табуляции

656

15

Определяет положение вертикальной табуляции

657

16

Режим вывода символа <перевод строки>

658

17

Расширенный набор кодов ASCII

698

18

Возврат (logout)

727

19

Байт-макро

735

20

Терминал ввода данных

732

21

Supdup

736

22

Supdup вывод

747

23

Место отправления

779

24

Тип терминала

930

25

Конец записи

885

26

Tacacs- идентификация пользователя

927

27

Пометка вывода

933

28

Код положения терминала

946

29

Режим

3270 1041

30

X.3 PAD

1053

31

Размер окна

1073

Значения переменных можно узнать с помощью команды display. Такими переменными могут быть: echo, escape, interrupt, quit, flushoutput, erase, kill, eof, echo. Последняя переменная (в исходном состоянии `^E') в построчном режиме осуществляет переключение между локальным эхо на ввод символа (режим по умолчанию) и подавлением эхо, например при вводе пароля.

Переменные Telnet

Название переменной

Назначение

Echo

Определяет, будет ли отображаться на экране то, что вы вводите с клавиатуры. При значении off ввод не отображается, например, при вводе пароля.

Escape

Задает символ, который используется в качестве escape. Появление этого символа во входном потоке заставляет его и последующие символы интерпретироваться в ЭВМ, где функционирует процесс telnet, как команда

Interrupt

Специфицирует символ прерывания процесса. Ввод его приводит к остановке процесса пользователя, работающего на удаленной ЭВМ.

Quit

Специфицирует символ, который используется пользователем на его клавиатуре для выполнения команд brake или attention.

Flushoutput

Определяет символ, который служит для прерывания процедуры вывода на удаленной ЭВМ.

EOF

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

 

Операция прерывание процесса (IP) позволяет прервать, удалить или завершить процесс пользователя (например, выйти из бесконечного цикла). Процедура прерывание вывода (AO) позволяет процессу пользователя продолжаться, но вывод на его рабочую станцию прерывается, при этом очищается буфер от уже записанной, но не отображенной информации. Запрос "Вы здесь?" (AYT) удобен, когда необходимо выяснить выполняется ли пользовательская задача или нет.

Операция стереть символ (EC) позволяет пользователю удалить символ из потока данных, применяется для редактирования текста на экране. Операция стереть строку (EL) позволяет пользователю при редактировании удалить целую строку.

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

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

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

Протокол telnet не использует шифрование и поэтому уязвим для атак при применении в интернете или локальной сети. Равную функциональность при большей защищённости обеспечивает сетевой протокол SSH.

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

TELNET -клиенты

 

Windows

Macintosh

Различные клиенты

Бесплатные с открытым исходным кодом.

TELNET-сервера

Протокол SSH

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

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

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

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

На данный момент известно две ветки версий — 1 и 2. Однако ветка 1 остановлена, так как в конце 90-x в ней было найдено много уязвимостей, некоторые из которых до сих пор накладывают серьёзные ограничения на её использование, поэтому перспективной, развивающейся и наиболее безопасной является версия 2.

Схема работы

SSH предоставляет 3 способа аутентификации
клиента: по ip адресу клиента(небезопасно), по публичному ключу клиента и
стандартный парольный метод. Вот как работает ssh версии 2:
при запросе клиента сервер сообщает ему, какие методы аутентификации он
поддерживает(это определяется в опции PreferredAuthentications sshd.conf) и
клиент по очереди пытается проверить их. По умолчанию клиент вначале пытается
аутентифицироваться своим адресом, затем публичным ключом и, если ничего не
сработало, передаёт пароль, введённый с клавиатуры(при этом пароль шифруется
асимметрическим шифрованием). После прохождения аутентификации одним из методов
из имеющихся у клиента и сервера пар ключей генерируется ключ симметрического
шифрования, который, как я описывал во введении, генерируется на основании
своего секретного и удалённого публичного ключей. После чего все последующие
данные, передаваемые через ssh, шифруются данным ключом(обычно используется
алгоритм aes с длиной ключа 128 бит). Отмечу, что протокол ssh версии 1 имел
некоторые баги в шифрации передаваемого трафика и являлся по сути методом безопасной
аутентификации, поэтому по современным меркам данный протокол считается
небезопасным. Протокол версии 2 поддерживает более современные методы шифрования
тарфика, также вместе с данными посылаются контрольные суммы формата sha или
md5, что исключает подмену или иную модификацию передаваемого трафика(чего не
было у ssh версии 1).

Способы аутентификации пользователей через SSH:

  1. По адресу клиента
  2. По публичному ключу
  3. Обычная парольная аутентификация

Недостатки и достоинства

SSH защищает от:

Другими словами, ssh никогда не доверяет сети; какой-либо "противник" имеющий _определенный_ доступ к сети может лишь _насильно_ разорвать установленное ssh соединение, но никак не расшифровать его, похитить или "обыграть". Все вышесказанное ВЕРНО лишь при использовании шифрования. Однако Ssh имеет опцию шифрования "none", которая необходима лишь для отладки и ни в коем случае не должна быть использована для обычной работы.

Ssh не поможет в случае нарушения безопасности локальной машины другими методами. Например, если хакер взломал компьютер или получил привелигированный-root доступ ИЗНУТРИ, что позволит ему изменить на свой лад и работу ssh тоже. Если какой-либо недоброжелатель имеет доступ в домашнюю директорию пользователей, то безопасность так же под вопросом, одной из частых тому причин является, например экспортирование домашней директории по NFS.

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

Поддержка операционных систем

Поддержка технологий и протоколов

 

 

Hosted by uCoz