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

rlogin

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

История

Протокол rlogin появился как часть дистрибутива 4.2BSD, выпущенного в 1983 году. Его создание было обусловлено потребностью в простом и быстром способе удалённого администрирования компьютеров в локальных сетях университетов и исследовательских центров. В те годы сети были изолированными, а вопросы безопасности не стояли так остро, как впоследствии.

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

С ростом популярности Интернета и увеличением числа атак, направленных на перехват трафика, недостатки rlogin стали критическими. В середине 1990-х годов началось активное внедрение протокола SSH, который обеспечивал шифрование и аутентификацию с открытым ключом. К началу 2000-х годов rlogin был вытеснен SSH в большинстве операционных систем. Тем не менее, в некоторых устаревших корпоративных и научных сетях он продолжал использоваться вплоть до 2010-х годов.

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

Протокол rlogin работает по модели «клиент-сервер». Клиентская программа обычно называется rlogin, серверная — rlogind. Взаимодействие происходит через TCP-порт 513.

Установление соединения

Процесс подключения состоит из нескольких этапов:

  1. Клиент открывает TCP-соединение к порту 513 на удалённом хосте.
  2. Сервер отправляет клиенту нулевой байт (в качестве приветствия).
  3. Клиент отправляет строку, содержащую имя пользователя на удалённом хосте, имя пользователя на локальном хосте, тип терминала и скорость передачи, разделённые нулевыми байтами.
  4. Сервер проверяет файлы доверенных хостов (/etc/hosts.equiv и ~/.rhosts). Если локальный хост и пользователь считаются доверенными, аутентификация не требуется, и сеанс начинается немедленно.
  5. Если доверие не установлено, сервер запрашивает пароль. Пароль передаётся по сети в открытом виде (без шифрования).
  6. После успешной аутентификации сервер запускает для пользователя командную оболочку (обычно /bin/sh или /bin/csh).

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

Весь ввод с клавиатуры клиента и вывод с сервера передаётся в виде обычного текста (ASCII или UTF-8). Протокол поддерживает специальные управляющие последовательности для обработки прерываний (Ctrl+C), приостановки вывода (Ctrl+S/Ctrl+Q) и изменения размера окна терминала.

Ключевые особенности и недостатки

Преимущества (в контексте своего времени)

  • Простота: Минимальное количество служебных данных и простота реализации.
  • Скорость: Быстрое установление соединения, особенно в доверенных сетях, где не требовался ввод пароля.
  • Интеграция с Unix: Естественная поддержка механизма .rhosts и hosts.equiv, что упрощало администрирование в однородной среде.

Недостатки

  • Отсутствие шифрования: Все данные, включая пароли, передаются в открытом виде. Это делает протокол уязвимым для перехвата трафика с помощью снифферов.
  • Уязвимость к подмене хоста: Механизм доверенных хостов основан на IP-адресе и DNS-имени, которые могут быть подделаны (IP-спуфинг).
  • Слабая аутентификация: Используется только парольная аутентификация без возможности применения ключей или сертификатов.
  • Отсутствие сжатия: Трафик не сжимается, что снижает эффективность работы на медленных каналах связи.

Сравнение с альтернативными протоколами

ХарактеристикаrloginTelnetSSH
ШифрованиеНетНетДа
АутентификацияПароль / доверенные хостыПарольПароль, ключи, сертификаты
Порт по умолчанию5132322
Поддержка сжатияНетНетДа
Перенаправление портовНетНетДа
Статус (2020-е)Устарел, не рекомендуетсяУстарел, не рекомендуетсяАктивно используется

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

Из-за отсутствия шифрования и уязвимости к атакам «человек посередине» (MITM) использование rlogin в современных сетях, особенно в Интернете, считается крайне опасным. Перехват пароля позволяет злоумышленнику получить полный доступ к удалённой системе. Даже в локальных сетях, где перехват трафика сложнее, не рекомендуется применять rlogin без дополнительных мер защиты, таких как туннелирование через SSH или VPN.

В большинстве современных дистрибутивов Linux и BSD-систем сервер rlogind не устанавливается по умолчанию или удалён из репозиториев. В macOS до версии 10.13 (High Sierra) клиент rlogin ещё присутствовал, но затем был исключён из базовой поставки.

Применение в настоящее время

Несмотря на устаревание, rlogin изредка встречается:

  • В устаревших корпоративных системах: На старых серверах, работающих под управлением Solaris, HP-UX или AIX, где миграция на SSH требует значительных затрат.
  • В образовательных целях: Для изучения истории вычислительной техники и протоколов, а также в курсах по сетевым технологиям.
  • В изолированных промышленных сетях: На оборудовании, которое не имеет возможности обновления прошивки для поддержки SSH.

Однако в подавляющем большинстве случаев rlogin заменён протоколом SSH, который является стандартом де-факто для удалённого администрирования Unix-подобных систем.

Интересные факты

  • Имя rlogin расшифровывается как remote login (удалённый вход).
  • Протокол rlogin был одним из первых, кто реализовал механизм «доверенных хостов», который впоследствии был раскритикован за слабую безопасность.
  • В некоторых реализациях rlogin поддерживал передачу управляющих сигналов (например, прерывание процесса Ctrl+C) с помощью специальных управляющих последовательностей, что было нехарактерно для ранних версий Telnet.
  • В 1995 году, когда SSH только появился, многие администраторы продолжали использовать rlogin из-за его простоты и привычности, игнорируя проблемы безопасности.

Источники

  • RFC 1282 — «BSD Rlogin» (1991)
  • Stevens, W. Richard. «TCP/IP Illustrated, Volume 1: The Protocols» (1994)
  • Nemeth, Evi; Snyder, Garth; Seebass, Scott; Hein, Trent R. «UNIX System Administration Handbook» (4th edition, 2010)
  • Документация к операционной системе 4.2BSD (1983)

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

На главную BFOmetr →