• -h
. В обычных условиях rlogind
не использует файл .rhosts
суперпользователя. Опция -h
указывает на то, что данный файл должен использоваться.
• -l
. Данная опция запрещает использование файла .rhosts
для аутентификации пользователей. Исключение составляет суперпользователь, взаимодействие с которым определяет опция -h
.
• -L
. Эта опция запрещает аутентификацию на основе данных, содержащихся в файлах .rhosts
и hosts.equiv
.
Несмотря на то что опции -h
, -l
и -L
входят в официальный набор опций rlogind
, в новых версиях Linux они обычно не оказывают влияния на работу сервера. Причина в том, что в новых версиях системы используются модули РАМ; в результате действие указанных опций отменяется.
Средства защиты rlogind
Средства защиты всех утилит, реализующих r-команды, в лучшем случае могут считаться устаревшими. А если подходить к этому вопросу с позиции современных требований, следует признать, что защита в них вовсе отсутствует. В частности, работа сервера rlogind
основана на принципе доверия, а это значит, что rlogind
полагается на результаты процедуры аутентификации, выполненной на клиентской машине. Существуют способы несколько улучшить защиту rlogind
, а использование системы Kerberos позволяет реально обезопасить ресурсы сети.
Рассмотрим принцип работы базовых средств защиты rlogind
. Когда клиентская программа предпринимает попытки установить соединение с сервером rlogind
, система выполняет для аутентификации пользователя следующие действия.
1. Сервер проверяет порт клиента, выступающего инициатором установления соединения. Обычно клиент-программы rlogin
используют номер порта в диапазоне 512-1023. Если номер порта клиента лежит за пределами этого диапазона, rlogind
отвергает попытки установить соединение. Такая мера предотвращает использование для взаимодействия подложного клиента rlogin
, написанного обычным пользователем, поскольку номера портов ниже 1024 может использовать только root
. Однако это не мешает злоумышленнику подключить к сети свой компьютер под управлением Linux и зарегистрироваться на нем как root
. Кроме того, в некоторых операционных системах порты с номерами ниже 1024 доступны всем пользователям, поэтому описанная здесь мера защиты не очень эффективна.
2. Сервер удаленной регистрации обращается к серверу DNS, чтобы преобразовать IP-адрес клиента в доменное имя.
3. Если имя, полученное в результате DNS-преобразования, принадлежит тому же домену, что и сервер, или если при запуске rlogind
была указана опция -а
, сервер ищет IP-адрес по доменному имени. Если полученный в результате адрес не отличается от исходного IP-адреса и если опции -L
и -l
не были указаны, rlogind
обращается к файлам ~/.rhosts
и /etc/hosts.equiv
и проверяет, объявлен ли данный клиент как пользующийся доверием. Если проверка дала положительный результат и если удалённый пользователь имеет учетную запись на сервере, rlogind
осуществляет регистрацию без дальнейшей проверки.
4. Если IP-адрес, полученный в результате DNS-преобразования, и IP-адрес, указанный в запросе, не совпадают, либо если была задана опция -L
или -l
, либо если клиент не найден в списке клиентов, пользующихся доверием, программа rlogind
запрашивает пользовательское имя и пароль. Если пользователь ввел корректный пароль, rlogind
предоставляет доступ в систему. Если пароль не совпадает с паролем, хранящимся в базе данных, пользовательское имя и пароль запрашиваются снова. Если пользователь не смог зарегистрироваться с нескольких попыток, соединение разрывается.
При выполнении описанной выше процедуры регистрации предполагается, что программа rlogind
знает имя пользователя, по инициативе которого устанавливается соединение. Эта информация передается с одного компьютера на другой и скрыта от пользователя. При желании, вызывая клиент-программу rlogin
, можно задать имя пользователя с помощью опции -l
, например rlogin -l s jones
.