В предыдущих разделах был рассмотрен принцип использования X-соединений, предполагающий применение протокола удаленной регистрации, например Telnet. Сервер Telnet располагался на том же компьютере, что и X-клиент; с его помощью пользователь регистрировался на удаленном компьютере, после чего устанавливалось X-соединение между клиентом и сервером. Сервер XDMCP успешно заменяет Telnet, SSH и другие протоколы удаленной регистрации, обеспечивающие взаимодействие в текстовом режиме. Когда пользователь обращается к удаленной системе с помощью Telnet, сервер Telnet регистрирует его и предоставляет текстовую оболочку. Средства XDMCP действуют подобным образом, но вместо текстовой оболочки сервер XDMCP инициирует процедуру регистрации X Window; при этом отображается окно для ввода пользовательского
имени и пароля и загружается диспетчер окон, среда рабочего стола и другие компоненты графического интерфейса. Эти программы запускаются посредством X-соединения; XDMCP автоматически конфигурирует клиентскую и серверную программы, используя
xauth
. Другими словами, XDMCP автоматизирует описанную ранее процедуру регистрации.
Сервер XDMCP применяется не только для установления X-соединений. Он также обеспечивает обращение системы Linux к X-серверу при загрузке. Отображаемое при этом окно регистрации показано на рис. 14.2. Внешний вид окна зависит от конфигурации сервера XDMCP.
Рис. 14.2. В окне регистрации указываются пользовательское имя и пароль. В некоторых случаях пользователь может задать дополнительную информацию, например, указать среду рабочего стола и диспетчер окон
Настройка сервера регистрации для установления соединения
Для настройки сервера XDMCP используются конфигурационные файлы, которые обычно находятся в каталогах
/etc
и
/etc/X11
. Исходя из сообщений защиты, большинство дистрибутивных пакетов сконфигурировано так, что обращения к серверу возможны только с локального узла. Чтобы разрешить удаленную XDCMP-регистрацию, необходимо снять данные ограничения. Кроме того, надо обеспечить выполнение сервера XDMCP. В настоящее время в системе Linux используются три сервера XDMCP: X Display Manager (XDM) и более новые продукты — KDM (KDE Display Manager) и GDM (GNOME Display Manager).
Настройка XDM
XDM — наиболее простой среди серверов XDMCP; он был разработан раньше других продуктов подобного назначения. В отличие от GDM и KDM, XDM не связан с окружением рабочего стола Linux. Он дает возможность пользователям вводить имена и пароли, но не позволяет указывать дополнительные сведения, например задавать диспетчер окон. Для управления регистрационными параметрами пользователя служит файл
.xsession
, расположенный в его рабочем каталоге. (Данный сценарий запускается из сценария
Xsession
, который располагается в каталоге
/etc/X11
или
/etc/X11/xdm
.) Файл
.xsession
, соответствующий конкретному пользователю, обычно заканчивается строкой, которая запускает диспетчер окон или среду рабочего стола. По завершении сценария (это происходит, когда пользователь выходит из системы, прекращая тем самым работу диспетчера окон) завершается X-сеанс и XDM прекращает удаленное взаимодействие, либо при использовании локального дисплея XDM повторно отображает приглашение для регистрации.
Обеспечение доступа к XDM
Доступом удаленных компьютеров XDM управляет основной конфигурационный файл
/etc/X11/xdm/xdm-config
. В большинстве дистрибутивных пакетов в составе этого файла содержится следующая строка:
DisplayManager.requestPort: 0
Данная запись указывает XDM на то, что он не должен принимать обращения через UDP-порт 177. Если вы хотите, чтобы пользователи с других компьютеров могли регистрироваться посредством XDMCP, вам надо закомментировать данную строку (включить в ее начало символ
#
).
Помимо редактирования файла
xdm-config
, вам, возможно придется внести изменения в файл
/etc/X11/xdm/Xaccess
. В этом файле указаны компьютеры, которым разрешен доступ к серверу XDM. Данный файл состоит из набора записей, каждая из которых занимает одну строку. В составе записи указываются имя узла и тип доступа, разрешенный для него. (Символ
#
в начале строки является признаком комментариев.) Если тип доступа не указан, клиенту разрешены непосредственные
обращения к серверу. Значение
CHOOSER
определяет действия сервера при получении косвенного запроса от клиента, а значение
BROADCAST
, которое чаще всего используется в сочетании с
CHOOSER
, указывает на то, что при получении косвенного запроса он должен передаваться остальным серверам XDMCP в широковещательном режиме. Если вместо имени узла указан символ
*
, это означает, что любой клиент имеет право устанавливать соединение с сервером XDM. Например, приведенные ниже записи позволяют любому клиенту обращаться к серверу непосредственно или использовать его для передачи косвенного запроса.
*
* CHOOSER BROADCAST
Если вы хотите, чтобы право обращаться к серверу имели лишь некоторые узлы сети, вам надо вместо символа
*
задавать конкретные имена компьютеров. Данный символ может использоваться в составе имени; в этом случае право доступа к серверу получают все компьютеры, принадлежащие к указанному домену. Например, приведенные ниже записи разрешают доступ к серверу всем компьютерам домена
threeroomco.com
, а также двум внешним узлам. Кроме того, указанные здесь внешние узлы имеют право передавать косвенные запросы.
*.threeroomco.com
bronto.pangaea.edu
stego.pangaea.edu
bronto.pangaea.edu CHOOSER BROADCAST
stego.pangaea.edu CHOOSER BROADCAST
На заметку
Ограничить доступ к XDMCP можно не только средствами, предусмотренными в конфигурационном файле XDM. Блокировать обращения к серверу может также брандмауэр.
Управление отображением
В файле
/etc/X11/xdm/xservers
указывается список устройств, которыми может управлять сервер XDM. При запуске XDM пытается непосредственно обратиться к этим дисплеям и вывести окно регистрации. По умолчанию в данный файл помещается следующая строка (в зависимости от особенностей системы конкретная запись может несколько отличаться от приведенной ниже):
:0 local /usr/X11R6/bin/X
Данная запись указывает на то, что сервер должен управлять локальным дисплеем (:0). При необходимости XDM запускает локальный X-сервер. Если вы хотите, чтобы XDM непосредственно управлял отображением на удаленных машинах, без использования окна регистрации, вы должны указать требуемые системы следующим образом:
term.threeroomco.com:0 foreign
В этом примере
foreign
указывает на то, что заданная система является удаленной. Система может быть сконфигурирована так, что соединение с сервером XDMCP и отображение окна регистрации будет разрешено. Редактируя файл
Xservers
, вы можете также удалить включенную по умолчанию запись
local
. Если вы сделаете это, компьютер не будет загружать локальный X-сервер при запуске XDM. Такая конфигурация может потребоваться, если вы организуете работу с мощным центральным компьютером через X-терминалы. В таком случае на компьютере будет выполняться много X-программ, но ни одна из них не будет взаимодействовать с локальным X-сервером.
На заметку
Задавать управление устройством отображения следует в том случае, если X-сервер должен взаимодействовать только с компьютером, на котором выполняется XDM. В частности, данный подход применяется тогда, когда X-терминал соединяется лишь с одним узлом сети.
Настройка KDM
Сервер был разработан для замены существующего XDM. По сравнению со своим предшественником, KDM предоставляет дополнительные возможности, наиболее важными из которых являются список Session Type, в котором пользователи могут выбирать диспетчер окон или среду рабочего стола, и кнопка Quit (или Shutdown), позволяющая завершать выполнение локального X-сервера (при удаленном выполнении) или останавливать работу всей системы (при локальном запуске). Окно регистрации, отображаемое посредством KDM, показано на рис. 14.2.