Открыть сервис

Протокол rlogin

rlogin — это протокол прикладного уровня модели OSI, предназначенный для удалённого доступа к компьютерам в сети, работающий поверх транспортного протокола TCP. Он обеспечивает интерактивный текстовый сеанс на удалённой Unix-системе, позволяя пользователю выполнять команды так, как если бы он работал непосредственно за терминалом этой системы. Протокол был разработан в 1980-х годах в Калифорнийском университете в Беркли и стал частью дистрибутива 4.2BSD. В отличие от более позднего и более защищённого протокола SSH, rlogin не использует шифрование и передаёт все данные, включая пароли, в открытом виде.

История

Протокол rlogin был создан как часть пакета программного обеспечения для удалённого администрирования в операционной системе BSD. Он появился в 1983 году в версии 4.2BSD. Разработка была направлена на упрощение взаимодействия между Unix-машинами в локальных сетях, где безопасность не являлась первостепенной задачей. Основной целью было предоставить пользователям возможность подключаться к другим системам без необходимости вводить пароль при каждом соединении, используя механизм доверительных отношений на основе файла /etc/hosts.equiv или .rhosts в домашнем каталоге пользователя.

Протокол быстро распространился в академической среде и среди ранних пользователей интернета. Однако с ростом глобальной сети и осознанием угроз безопасности, связанных с передачей данных в открытом виде, популярность rlogin стала снижаться. К середине 1990-х годов, с появлением протокола SSH (Secure Shell), который обеспечивал шифрование и аутентификацию, rlogin начал вытесняться. В современных Unix-подобных системах rlogin часто считается устаревшим и не рекомендуется к использованию, особенно в сетях, не являющихся полностью изолированными и доверенными.

Архитектура и принцип работы

Модель «клиент-сервер»

Протокол rlogin реализует классическую модель «клиент-сервер». Клиентская часть, обычно представленная командой rlogin, инициирует соединение, а серверная, демон rlogind, ожидает входящие подключения на TCP-порту 513. После установления соединения клиент отправляет серверу пакет с данными для аутентификации, после чего начинается интерактивный сеанс.

Аутентификация

Аутентификация в rlogin основана на нескольких механизмах, приоритет которых определяется сервером:

  1. Доверительные отношения (r-команды): Если имя пользователя на клиентской машине совпадает с именем пользователя на сервере, и клиентский хост указан в файле /etc/hosts.equiv (глобальный список доверенных хостов) или .rhosts (персональный список в домашнем каталоге пользователя), то аутентификация происходит автоматически, без запроса пароля.
  2. Запрос пароля: Если доверительные отношения не настроены, сервер запрашивает пароль. Пароль передаётся по сети в открытом виде (незашифрованным), что является основной уязвимостью протокола.

Передача данных

После успешной аутентификации устанавливается двунаправленный поток данных. Пользовательский ввод (нажатия клавиш) передаётся на сервер, а вывод (текст терминала) — обратно клиенту. Протокол поддерживает управляющие последовательности для эмуляции терминала, такие как передача размера окна и управление потоком данных (XON/XOFF). Важной особенностью rlogin является возможность «прозрачного» проброса сигналов прерывания и приостановки процесса.

Уязвимости и критика

Основным недостатком протокола rlogin является отсутствие шифрования. Это делает его крайне уязвимым для атак типа «человек посередине» (MITM) и пассивного перехвата трафика. Злоумышленник, имеющий доступ к сети, может перехватить все передаваемые данные, включая пароли, команды и результаты их выполнения.

Критика протокола также связана с ненадёжным механизмом аутентификации на основе IP-адресов. Файлы .rhosts и /etc/hosts.equiv полагаются на то, что IP-адрес клиента не подделан. В современных сетях, особенно с использованием технологий NAT и DHCP, а также с учётом возможности IP-спуфинга, этот механизм считается небезопасным.

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

Применение

Несмотря на устаревание, rlogin в определённых контекстах продолжал использоваться до середины 2010-х годов:

Сравнение с SSH

ХарактеристикаrloginSSH
ШифрованиеОтсутствуетПрисутствует (симметричное и асимметричное)
АутентификацияПо IP-адресу, пароль в открытом видеПо паролю (зашифрованному), ключам, сертификатам
ПортTCP 513TCP 22
БезопасностьНизкаяВысокая
Сложность настройкиНизкая (файлы .rhosts)Средняя (ключи, конфигурация)
Современное использованиеНе рекомендуетсяСтандарт де-факто

Статус и наследие

В современных дистрибутивах Linux и BSD-системах rlogin и rlogind обычно не устанавливаются по умолчанию или считаются устаревшими пакетами. Разработчики операционных систем настоятельно рекомендуют использовать SSH для всех удалённых соединений. Однако протокол rlogin оставил значительное наследие: его идеи доверительных отношений и автоматической аутентификации были частично реализованы в современных системах с помощью Kerberos и других механизмов единого входа (SSO). Кроме того, некоторые идеи, заложенные в rlogin, повлияли на разработку протоколов для удалённого управления и терминального доступа.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →