Разработчик(и) | Исследовательская группа компьютерных систем Калифорнийского университета в Беркли |
---|---|
Первоначальный выпуск | Июнь 1981 г ( 1981-06 ) |
Операционная система | Unix и Unix-подобные |
Тип | Командный пакет |
Лицензия | БСД |
набор интернет-протоколов |
---|
Уровень приложений |
Транспортный уровень |
Интернет-слой |
Связующий слой |
Команды R-типа Berkeley представляют собой набор компьютерных программ, разработанных для того, чтобы пользователи одной системы Unix могли входить в систему или отдавать команды другому компьютеру Unix через компьютерную сеть TCP/IP . [1] Команды R-типа были разработаны в 1982 году Исследовательской группой компьютерных систем Калифорнийского университета в Беркли на основе ранней реализации TCP/IP ( стек протоколов Интернета ) . [2]
CSRG включила r-команды в свою операционную систему Unix , Berkeley Software Distribution (BSD). Впервые r-команды появились в BSD v4.1. [2] Среди программ в этом наборе: (remote copy ), (remote execution ), (remote login ), (remote shell ), , и (remote who ). [2] [3]rcp
rexec
rlogin
rsh
rstat
ruptime
rwho
Команды r были значительным нововведением и стали фактическими стандартами для операционных систем Unix. [4] [5] С более широким распространением Интернета их уязвимости безопасности стали проблемой, [6] и, начиная с разработки протоколов и приложений Secure Shell в 1995 году, их принятие полностью вытеснило развертывание и использование команд r (и Telnet ) в сетевых системах. [7]
Услуга | Порт | Транспорт | Реф. | |
---|---|---|---|---|
Клиент | Демон | |||
рчп | ршд | 514 | ТКП | |
rexec | rexecd | 512 | ТКП | [8] |
rlogin | rlogind | 513 | ТКП | [9] |
рш | ршд | 514 | ТКП | |
рстат | rstatd | УДП | ||
время разрыва | rwhod | 513 | УДП | [10] |
rwho | [9] [10] |
Оригинальный пакет Berkeley, который rlogin
также предоставляет функции rcp
(remote-copy, позволяющий копировать файлы по сети) и rsh (remote-shell, позволяющий запускать команды на удаленной машине без входа пользователя в систему).
В качестве примера можно привести следующий протокол: [11]
Клиент:<ноль> имя
пользователя на клиенте <null> имя
пользователя на сервере <null> тип
терминала /скорость передачи данных терминала <null>Сервер:
Сервер проверит, должен ли пользователь иметь доступ. Если да, он возвращает сообщение, в котором ничего нет (даже нет нулевого символа ), что означает, что соединение установлено. Например:
Клиент:<ноль>бостик<null>kbostic<null>vt100/9600<ноль>Сервер:
Оба rlogin
и rsh
разделяют схему управления доступом /etc/hosts.equiv
(применяется ко всем пользователям на сервере) и $HOME/.rhosts
(применяется только к пользователю, который помещает файл в свою домашнюю папку), хотя они подключаются к разным демонам. rlogin
подключается к rlogind
, в то время как rsh
подключается к rshd
. hosts.equiv
и .rhosts
использует тот же формат. Ниже показаны некоторые аспекты формата: [12] [13]
хост1хост2 пользователь_a-хост3+@group1 -user_b-@group2
Это позволяет всем пользователям с хоста host1 входить в систему, пользователю user_a с хоста host2 входить в систему, пользователям с хоста host3 — нет, всем пользователям в группе group1, кроме user_b, и пользователям в группе group2 — нет.
rlogin
позволяет пользователю войти на другой сервер через компьютерную сеть , используя сетевой порт TCP 513.
rlogin
также является названием протокола прикладного уровня , используемого программным обеспечением, частью набора протоколов TCP/IP . Аутентифицированные пользователи могут действовать так, как будто они физически присутствуют за компьютером. RFC 1282, в котором он был определен, гласит: « Средство предоставляет удаленно отображаемый, локально управляемый потоком виртуальный терминал с надлежащей очисткой вывода». взаимодействует с демоном , , на удаленном хосте. похож на команду Telnet , но не так настраиваем и может подключаться только к хостам типа Unix.rlogin
rlogin
rlogind
rlogin
rsh
открывает оболочку на удаленном компьютере без процедуры входа в систему . После подключения пользователь может выполнять команды на удаленном компьютере через интерфейс командной строки оболочки . rsh
передает ввод и вывод через стандартные потоки и отправляет стандартный вывод на консоль пользователя . По сети стандартный ввод и стандартный вывод проходят через порт TCP 514, в то время как стандартная ошибка проходит через другой порт TCP, который открывает rsh
демон ( rshd
). [14]
Как и rsh
, rexec
позволяет пользователю запускать команды оболочки на удаленном компьютере. Однако, в отличие от сервера rsh, rexec
сервер ( rexecd
) требует входа в систему: он аутентифицирует пользователей, считывая имя пользователя и пароль (незашифрованные) из сетевого сокета . [15] rexec
использует порт TCP 512.
rcp
может копировать файл или каталог из локальной системы в удаленную систему, из удаленной системы в локальную систему или из одной удаленной системы в другую. [16] Аргументы командной строки и cp
похожи rcp
, но в rcp
удаленных файлах они имеют префикс в виде имени удаленной системы:
rcp file.txt поддомен.домен:~/home/foo/file.txt
Как и команда копирования Unix cp , rcp
перезаписывает существующий файл с тем же именем в целевом объекте; в отличие от cp
, она не предоставляет механизма предупреждения пользователя перед перезаписью целевого файла. [16] Как и rsh
, rcp
использует TCP-порт 514. [17]
Так же, как команда who выводит список пользователей, вошедших в локальную систему Unix, rwho
выводит список пользователей, вошедших во все многопользовательские системы Unix в локальной сети. [18] rwho
Демон , rwhod
, поддерживает базу данных о состоянии систем Unix в локальной сети. Демон и его база данных также используются программой ruptime
. [19]
rstat
возвращает статистику производительности ядра.
Так же, как uptime
команда показывает, как долго система Unix работает с момента последнего перезапуска, ruptime
запрашивает отчет о состоянии всех компьютеров в локальной сети. Затем она возвращает отчет о времени безотказной работы. Если компьютер не ответил в течение установленного срока, то ruptime
сообщает, что система отключена . [20] Эта информация отслеживается и сохраняется демоном rwhod
, который также используется командой rwho. [19]
Те r-команды, которые включают аутентификацию пользователя ( rcp
, rexec
, rlogin
, и rsh
), имеют несколько серьезных уязвимостей безопасности:
.rlogin
(или .rhosts
) легко использовать не по назначению. Они разработаны для обеспечения входа без пароля , но их зависимость от удаленных имен пользователей, имен хостов и IP-адресов может быть использована. По этой причине многие корпоративные системные администраторы запрещают .rhosts
файлы и активно проверяют свои сети на наличие нарушителей.rlogin
честно предоставляет информацию, включая исходный порт и имя исходного хоста. Злонамеренный клиент может подделать это и получить доступ, поскольку rlogin
протокол не имеет средств аутентификации того, что клиент запущен на доверенной машине. Он также не может проверить, является ли запрашивающий клиент на доверенной машине настоящим rlogin
клиентом, что означает, что вредоносные программы могут выдавать себя за клиента, соответствующего стандарту, rlogin
используя те же протоколы..rhosts
файлов — это означает, что любая его ошибка безопасности автоматически ставит под угрозу rlogin
.Из-за этих проблем r-команды вышли из употребления (и многие дистрибутивы Unix и Linux больше не включают их по умолчанию). Многие сети, которые ранее полагались на SSH rlogin
и telnet
заменили их на SSH и его rlogin
эквивалент slogin
. [21] [22]