Управление доступом к rlogind

We use cookies. Read the Privacy and Cookie Policy

Управление доступом к rlogind

Если вы обращаетесь к rlogind с узла, не относящегося к списку узлов, пользующихся доверием, вам придется ввести пользовательское имя и пароль. Однако не исключено, что вы захотите регистрироваться на удаленном узле, не задавая имя и пароль. Для этого вам придется определить компьютер, на котором вы работаете, как узел, пользующийся доверием. Это можно сделать двумя способами.

• Создать запись в файле /etc/hosts.equiv. Данный конфигурационный файл содержит установки для всей системы. Если компьютер указан в данном файле, любой пользователь, работающий на нем, может обращаться к службам, поддерживающим r-команды. Для того чтобы такие обращения поддерживались, необходимо, чтобы на сервере существовала учетная запись для текущего пользователя либо выполнялось отображение пользовательских имен. Если же соответствие имен установить не удалось (например, если пользователь julia хочет зарегистрироваться на удаленном сервере с помощью учетной записи fred), придется вводить пароль.

• Создать запись в файле ~/.rhosts. Этот файл хранится в рабочем каталоге пользователя и содержит описания клиентов, которые пользуются доверием у этого пользователя. Если имя удаленного пользователя совпадает с именем пользователя, для которого на сервере существует учетная запись, удаленный пользователь получает доступ к ресурсам сервера. Кроме того, можно принять меры для отображения пользователей (средства отображения будут рассмотрены ниже). Если на сервере используется файл .rhosts, за его поддержку отвечает пользователь, для которого создан этот файл.

Внимание

Тот факт, что файл ~/.rhosts доступен для пользователя, означает, что вы как системный администратор делегируете вашим пользователям право настраивать средства защиты системы. Это одна из причин, по которым применять сервер rlogind не рекомендуется. Если же по каким-либо причинам вам приходится запускать на компьютере rlogind, используйте TCP Wrappers либо другие средства ограничения доступа.

Оба описанных выше файла управляют использованием всех r-команд на сервере, в частности rlogin, rcp и rsh. Если на компьютере поддерживается система печати BSD LPD (системы печати были рассмотрены в главе 9), эти файлы также осуществляют контроль доступа к принтерам.

В обоих файлах содержатся записи, представленные в одинаковом формате, однако некоторые элементы интерпретируют по-разному. Каждая запись занимает одну строку и описывает узел или группу узлов. Формат записи приведен ниже.

[+|-][имя_узла] [имя_пользователя]

Символ + или -, указанный перед именем узла, разрешает или запрещает доступ для конкретного клиента. По умолчанию предполагается, что доступ разрешен, поэтому в большинстве случаев символ + указывать не обязательно. Символ - запрещает доступ клиента. Запрещающую запись имеет смысл использовать в том случае, если ей предшествует запись, которая разрешает доступ к серверу для группы клиентов.

Внимание

Используя символ +, будьте внимательны. Если в строке указан только этот символ (а имя узла отсутствует), доступ разрешается для всех клиентов. Подобная политика защиты является одним из недостатков r-команд. Если вы по ошибке введете пробел между символом + и именем узла, система будет интерпретировать имя узла как имя пользователя и предоставит возможность обращаться к серверу со всех компьютеров.

Для идентификации узла может использоваться IP-адрес (например, 192.168.34.56) или имя (например, gingko.threeroomco.com). В качестве имени может быть указано полное доменное имя, а если и сервер, и клиентская машина принадлежат одному домену, достаточно указать лишь имя самого компьютера, например gingko. Если перед именем задан символ @, это имя определяет домен NIS (для работы с NIS ваша система должна быть специальным образом сконфигурирована).

Если вы включите в состав записи имя пользователя, то указанному пользователю будет предоставлен доступ к системе. Запись в файле .rhosts, содержащая пользовательское имя, означает, что этот пользователь эквивалентен пользователю, в рабочем каталоге которого находится файл .rhosts. Предположим, например, что в файле .rhosts, находящемся в рабочем каталоге пользователя julia, содержится следующая запись:

172.21.13.14 jbrown

В этом случае пользователь jbrown, который работает на узле с адресом 172.21.13.14, может регистрироваться на сервере под именем julia и получить при этом все полномочия данного пользователя. (Другими словами, работая на клиентском компьютере, jbrown может вызывать команду rlogin, указывая опцию -l julia.)

Записи в файле /etc/hosts.equiv распространяются на всю систему. Если в этом файле указано имя пользователя, это означает, что он имеет право регистрироваться на сервере с помощью любой учетной записи, за исключением root. Если бы запись, рассмотренная ранее в качестве примера, присутствовала в файле /etc/hosts.equiv, это означало бы, что пользователь jbrown, работающий на компьютере с адресом 172.21.13.14, имеет право регистрироваться не только под именем julia, но и под именем любого другого пользователя, кроме root. Таким образом, указывая имя пользователя в файле /etc/hosts.equiv, вы создаете угрозу безопасности системы. Исключением являются случаи, когда пользовательское имя указывается в запрещающих записях, которые начинаются с символа -.

Доступ к rlogind может ограничиваться не только с помощью записей в файлах ~/.rhosts и /etc/hosts.equiv и проверки имени пользователя и пароля. Существуют также другие механизмы, предназначенные для ограничения доступа. Поскольку сервер rlogind запускается с помощью inetd или xinetd, вы можете применять для этой цели TCPWrappers. Блокировать доступ можно также с помощью брандмауэра, указав при его настройке TCP-порт 513 (порт, используемый программой rlogind).