R-команды Беркли — это набор компьютерных программ , предназначенных для того, чтобы пользователи одной системы Unix могли входить в систему или отправлять команды на другой компьютер Unix через компьютерную сеть TCP/IP . [1] R-команды были разработаны в 1982 году исследовательской группой компьютерных систем Калифорнийского университета в Беркли на основе ранней реализации TCP/IP ( стека протоколов Интернета ). [2]
CSRG включила r-команды в свою операционную систему Unix , Berkeley Software Distribution (BSD). Премьера r-команд появилась в BSD v4.1. [2] Среди программ пакета: (удаленное копирование ), (удаленное выполнение ), (удаленный вход в систему ), (удаленная оболочка ), , и (удаленный who ). [2] [3]rcp
rexec
rlogin
rsh
rstat
ruptime
rwho
R-команды были значительным нововведением и стали де-факто стандартами для операционных систем Unix. [4] [5] С более широким распространением Интернета среди населения присущие ему уязвимости безопасности стали проблемой, [6] и, начиная с разработки протоколов и приложений Secure Shell в 1995 году, его принятие полностью вытеснило развертывание и использование r- команды (и Telnet ) в сетевых системах. [7]
Исходный пакет Berkeley, который rlogin
также предоставляет функции rcp
(удаленное копирование, позволяющее копировать файлы по сети) и rsh (удаленная оболочка, позволяющая запускать команды на удаленном компьютере без входа пользователя в систему).
В качестве примера протокол выглядит следующим образом: [11]
Клиент:<ноль> имя
пользователя на клиенте <null> имя
пользователя на сервере <null>тип терминала / скорость передачи данных терминала <null>Сервер:
Сервер проверит, есть ли у пользователя доступ. Если это так, он возвращает сообщение, в котором ничего нет (даже нет нулевого символа ), что означает, что соединение установлено. Например:
Клиент:<ноль>Бостик <ноль>kbostic<ноль>vt100/9600<ноль>Сервер:
Оба rlogin
имеют rsh
общую схему управления доступом /etc/hosts.equiv
(применяется ко всем пользователям на сервере) и $HOME/.rhosts
(применяется только к пользователю, который помещает файл в свою домашнюю папку), хотя они подключаются к разным демонам. rlogin
подключается к rlogind
, а rsh
подключается к rshd
.hosts.equiv
и .rhosts
использует тот же формат. Ниже показаны некоторые аспекты формата: [12] [13]
хост1хост2 user_a-host3+@group1 -user_b-@группа2
Это позволяет всем пользователям с хоста 1 войти в систему, пользователю user_a с хоста 2 войти в систему, никому из пользователей с хоста 3, всем пользователям в группе 1, кроме пользователя_b, и ни одному пользователю из группы 2.
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] , , поддерживает базу данных о состоянии Unix-систем в локальной сети. Демон и его база данных также используются программой . [19]rwho
rwhod
ruptime
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 больше не включают их по умолчанию). Многие сети, которые раньше полагались на rlogin
SSH и его эквивалент, telnet
заменили их . [21] [22]rlogin
slogin