, будьте внимательны. Если в строке указан только этот символ (а имя узла отсутствует), доступ разрешается для всех клиентов. Подобная политика защиты является одним из недостатков 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
).
Настройка Telnet
Протокол Telnet часто используется для удаленной регистрации в сети Internet. Клиент-программа Telnet (как правило, она называется
telnet
) поставляется с большинством версий Linux. Программы, реализующие Telnet-серверы, также широко распространены, однако они в основном включаются в состав тех операционных систем, которые обеспечивают одновременную работу нескольких пользователей, например в Linux, UNIX и VMS. Несмотря на то что протокол Telnet сложнее протокола, используемого
rlogind
, он, как и все протоколы семейства TCP/IP, достаточно прост. Выполняя настройку сервера Telnet для работы в системе Linux, необходимо обеспечить запуск соответствующей программы посредством суперсервера. В отдельных случаях приходится предусматривать запуск сервера Telnet с помощью сценария SysV. Настройка Telnet также предполагает дополнительные операции, например, создание сообщения, выводимого в качестве приглашения к регистрации.
С точки зрения современных стандартов защита Telnet очень слабая, но она все же лучше, чем соответствующие средства программы
rlogind
. Зная слабые стороны
системы защиты Telnet, вы сможете принять обоснованное решение о том, в каких случаях применение Telnet оправдано, а в каких лучше использовать другие средства удаленной регистрации. Кроме того, вы сможете принять меры, минимизирующие опасность для системы при работе с сервером Telnet. Если в вашей сети установлены средства Kerberos, вы можете повысить уровень безопасности, применяя керберизованные версии клиента и сервера Telnet.
Опции, используемые при запуске сервера Telnet
В некоторых случаях сервер Telnet инсталлируется по умолчанию при установке операционной системы, но иногда приходится инсталлировать этот сервер самостоятельно. Пакет, содержащий сервер Telnet, в различных системах называется по-разному. Например, в Caldera он называется
netkit-telnet
, в Debian —
telnetd
, в Mandrake и Red Hat —
telnet-server
, в Slackware —
tcpipl
, в SuSE —
nkitserv
а в TurboLinux —
telnet
. Некоторые из этих пакетов, например
telnetd
, поставляемый в составе системы Debian, содержат только сервер Telnet, а в других, например в
telnet
системы TurboLinux, находится как серверная, так и клиентская программа. В большинстве случаев сервер Telnet устанавливается по умолчанию, но это не означает, что в системе разрешено выполнение данного сервера. Вопросы запуска серверов с помощью суперсервера были рассмотрены в главе 4 (программа, реализующая сервер Telnet, обычно носит имя
telnetd
или
in.telnetd
).
При запуске сервера Telnet могут быть указаны опции, определяющие особенности его функционирования. Некоторые из них предназначены для управления дополнительными средствами защиты, которые в большинстве стандартных версий Telnet отсутствуют. Опции, используемые наиболее часто, перечислены ниже.
•
– D режим_отладки
. Данная опция используется при отладке сервера. Она задается в тех случаях, когда запуск программы
telnetd
осуществляется вручную с консольного терминала. В зависимости от указанного режима отладки, сервер отображает информацию о соединении либо о данных, которыми он обменивается с клиентом. Режим отладки может быть задан с помощью значений
options
,
report
(оба эти значения отображают информацию об установлении соединения),
netdata
и
ptydata
(эти значения выводят соответственно сведения о входном и выходном потоках данных).
•
– h
. По умолчанию
telnetd
передает клиентской программе начальное сообщение, в котором содержится информация, предназначенная для пользователя. Опция
– h
подавляет вывод начального сообщения. Если вы опасаетесь взлома системы, но в то же время вынуждены поддерживать работу сервера Telnet, вы можете указать эту опцию для того, чтобы не предоставлять злоумышленнику дополнительные сведения о системе.
•
– L программа_регистрации
. По умолчанию
telnetd
использует для регистрации пользователей
/bin/login
. При желании вы можете указать посредством данной опции другую программу.
•
– n
. Подобно
rlogind
,
telnetd
проверяет наличие клиента, используя для этого специальные сообщения. Опция
– n
подавляет передачу данных сообщений.
При вызове сервера могут быть также указаны другие опции, большинство из которых управляет шифрованием данных и поддержкой прочих расширенных средств защиты. Поскольку в большинстве версий Telnet-серверов расширенные средства защиты отсутствуют, эти опции применяются крайне редко. Следует заметить, что разновидности Telnet-серверов, обеспечивающие шифрование данных, не пользуются большой популярностью, так как задача обмена закодированными данными гораздо лучше решается с помощью SSH. Если в вашей сети установлена система Kerberos, в ее состав обычно входят керберизованные версии клиента и сервера Telnet, которые можно использовать для повышения уровня защиты при удаленной регистрации пользователей на сервере.