Настройка сервера шрифтов для работы в сети
🕛 09.07.2009, 13:40
Если в дистрибутивном пакете по умолчанию предусмотрено выполнение сервера шрифтов, то в системе, как правило, принимаются меры для того, чтобы этот сервер не был доступен с остальных компьютеров. Доступ по сети блокируется исходя из соображений безопасности. Если же вы хотите, чтобы другие компьютеры могли обращаться к вашему серверу шрифтов, вам необходимо выполнить одно из следующих действий.- Запустить второй экземпляр сервера шрифтов и обеспечить доступ к нему. Если вы будете использовать данный подход, вам придется модифицировать сценарий запуска или обеспечить выполнение второго сервера другим способом. Чтобы два экземпляра сервера использовали различные конфигурационные файлы, можно при вызове xf s указать опцию -config /путь_к_конфиаурационному_файлу.
- Модифицировать конфигурационный файл сервера шрифтов и разрешить в нем доступ с других компьютеров. Такой способ более эффективен, но он непригоден в тех случаях, когда вам необходимо предоставлять локальным и удаленным клиентам различные наборы шрифтов.
Сервер шрифтов можно запустить даже на компьютере, на котором отсутствует система X Window. Чтобы это стало возможным, вам придется установить все программы, которые нужны для работы сервера. Несмотря на то что эти программы составляют основную часть X Window, Х-сервер на этом компьютере запускать не обязательно.
Существуют два способа, позволяющие ограничить доступ к серверу шрифтов.
- Запрет установления TCP-соединения. В системе Red Hat 7.2 в файле/etc/Xl 1/ f s/conf ig содержится строка no-listen = tcp, которая запрещает серверу принимать запросы на установление TCP-соединения. Если эта строка отсутствует, сервер принимает обращения от клиентов через порт 7100. Таким образом, чтобы обеспечить доступ к серверу, надо закомментировать данную строку, завершить работу сервера и запустить его снова. В системе Red Hat для остановки и запуска сервера может быть использован сценарий SysV с именем xf s.
- Использование порта-1. В системе Mandrake8.1 сервер шрифтов по умолчанию настраивается для приема обращений через порт с номером -1, Такая настройка запрещает установление сетевых соединений с другими компьютерами. Для того чтобы изменить конфигурацию сервера, надо отредактировать сценарий запуска (обычно он содержится в файле /etc/rc .d/init. d/xf s) и изменить в нем номер порта. Найдите строку, которая начинается с daemon xfs -port -1, и замените число -1 на 7100 или на другой номер порта, который вы собираетесь использовать. Вам также надо отредактировать файл /etc/XF86Config, содержащийся в каталоге /etc/Xl 1 (в зависимости от используемого Х-сервера этот файл может также называться XF86Config или XF86Config-4), и указать в нем, что обращение к серверу шрифтов должно осуществляться с использованием другого номера порта. Найдите запись FontPath, ссылающуюся на unix/: -1, и замените -1 на
7100 или другой номер порта, который вы указали в сценарии запуска xfs. После этого вам придется завершить работу xfs и снова запустить его, а также перезапустить Х-сервер (для этого можно использовать кнопку Restart X Server в окне регистрации Mandrake).
ВНИМАНИЕ Изменение конфигурации работающего сервера шрифтов представляет собой | достаточно сложную задачу. Если сервер станет недоступным, прикладные программы, использующие шрифты, могут зависнуть. Поэтому лучше всего переконфигурировать сервер шрифтов, зарегистрировавшись в текстовом режиме. Если передать сценарию SysV, используемому для запуска xfs в системах Red Hat и Mandrake, опцию restart, изменения конфигурации не будут учтены. Поэтому вам необходимо остановить работу сервера, указав опцию stop, а затем снова запустить его с помощью опции start.
После того как вы настроите сервер шрифтов для работы в сети, вам следует изменить конфигурацию Х-серверов и указать им на то, что за получением шрифтов они должны обращаться к установленному вами серверу шрифтов. Чтобы сделать это, надо включить в файл XF86Config на каждом из компьютеров новую запись FontPath. Примером такой записи может служить рассмотренная ранее запись FontPath, содержащая ключевое слово tcp. Очевидно, что в ней должны быть указаны имя компьютера, на котором выполняется сервер шрифтов, и номер порта, используемый этим сервером. В зависимости от набора шрифтов, установленных на каждом компьютере, вам, возможно, удастся удалить некоторые записи FontPath на клиентских системах, но при этом возрастет загрузка сервера шрифтов. Чтобы уменьшить число запросов к серверу шрифтов, запись FontPath, ссылающуюся на этот сервер, надо указывать после остальных записей данного типа. Это приведет к тому, что клиенты по возможности будут использовать файлы шрифтов, содержащиеся на локальных дисках.
ВНИМАНИЕ Если вы сконфигурируете систему так, что она сможет использовать только J шрифты, предоставляемые внешним сервером, система станет неработоспособной при отсутствии доступа к серверу шрифтов. Поэтому желательно оставить записи FontPath, установленные при инсталляции системы, без изменений и добавить к ним запись, указывающую на сервер шрифтов. (В составе некоторых дистрибутивных пакетов поставляется огромное количество шрифтов. Возможно, вы захотите перенести некоторые из них на сервер. Однако основные шрифты, используемые системой X Window, лучше оставить на месте.)
Используя сервер шрифтов, нельзя упускать из виду вопросы защиты. Если сервер шрифтов работает в локальной сети, не подключенной к Internet, о безопасности системы можно не слишком беспокоиться, особенно если вы полностью контролируете все компьютеры в сети. Если же компьютер, на котором выполняется данный сервер, доступен из Internet, нельзя полностью исключать возможность незаконного проникновения в систему посредством сервера шрифтов. Сервер шрифтов - не очень сложная программа, и при обращении к нему пароль не указывается. Как и в любом сервере, в сервере шрифтов могут быть обнаружены ошибки, допускающие возможность взлома системы. Поэтому сеть, в которой работает сервер шрифтов, рекомендуется изолировать от остальной части Internet с помощью выделенного брандмауэра. Брандмауэр следует настроить так, чтобы через порт, используемый сервером, могли обращаться только локальные машины.