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.
Установление соединения
Процесс подключения состоит из нескольких этапов:
- Клиент открывает TCP-соединение к порту 513 на удалённом хосте.
- Сервер отправляет клиенту нулевой байт (в качестве приветствия).
- Клиент отправляет строку, содержащую имя пользователя на удалённом хосте, имя пользователя на локальном хосте, тип терминала и скорость передачи, разделённые нулевыми байтами.
- Сервер проверяет файлы доверенных хостов (
/etc/hosts.equivи~/.rhosts). Если локальный хост и пользователь считаются доверенными, аутентификация не требуется, и сеанс начинается немедленно. - Если доверие не установлено, сервер запрашивает пароль. Пароль передаётся по сети в открытом виде (без шифрования).
- После успешной аутентификации сервер запускает для пользователя командную оболочку (обычно
/bin/shили/bin/csh).
Передача данных
Весь ввод с клавиатуры клиента и вывод с сервера передаётся в виде обычного текста (ASCII или UTF-8). Протокол поддерживает специальные управляющие последовательности для обработки прерываний (Ctrl+C), приостановки вывода (Ctrl+S/Ctrl+Q) и изменения размера окна терминала.
Ключевые особенности и недостатки
Преимущества (в контексте своего времени)
- Простота: Минимальное количество служебных данных и простота реализации.
- Скорость: Быстрое установление соединения, особенно в доверенных сетях, где не требовался ввод пароля.
- Интеграция с Unix: Естественная поддержка механизма
.rhostsиhosts.equiv, что упрощало администрирование в однородной среде.
Недостатки
- Отсутствие шифрования: Все данные, включая пароли, передаются в открытом виде. Это делает протокол уязвимым для перехвата трафика с помощью снифферов.
- Уязвимость к подмене хоста: Механизм доверенных хостов основан на IP-адресе и DNS-имени, которые могут быть подделаны (IP-спуфинг).
- Слабая аутентификация: Используется только парольная аутентификация без возможности применения ключей или сертификатов.
- Отсутствие сжатия: Трафик не сжимается, что снижает эффективность работы на медленных каналах связи.
Сравнение с альтернативными протоколами
| Характеристика | rlogin | Telnet | SSH |
|---|---|---|---|
| Шифрование | Нет | Нет | Да |
| Аутентификация | Пароль / доверенные хосты | Пароль | Пароль, ключи, сертификаты |
| Порт по умолчанию | 513 | 23 | 22 |
| Поддержка сжатия | Нет | Нет | Да |
| Перенаправление портов | Нет | Нет | Да |
| Статус (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 →