Родерик Смит - Сетевые средства Linux
• Location. Данная директива отличается от остальных; она объединяет ряд других директив и указывает область их применения. Например, в состав Location вы можете включить директивы Allow и Deny, разрешая или запрещая для клиентов обращение к конкретным типам документов (и, следовательно, выполнение определенных типов операций). Началом данной директивы является ключевое слово Location, помещенное в угловые скобки, а окончанием — выражение </Location>. В составе <Location> могут присутствовать опции /admin (действия по администрированию), /classes (определение классов принтеров), /jobs (определение заданий на печать) и /printers (принтеры).
• MaxClients. Директива MaxClients позволяет ограничить число клиентов, которые могут устанавливать соединение с сервером. По умолчанию принимается значение, равное 100.
• Order. Данная директива выполняет действия, аналогичные действиям директивы BrowseOrder, но применяется к директивам Allow и Deny. Выражение Order Allow, Deny означает, что директива Allow должна применяться перед директивой Deny, а выражение Order Deny, Allow задает обратную последовательность применения этих директив.
• Port. В обычных условиях CUPS ожидает обращение через порт 631, но при необходимости вы можете с помощью данной директивы изменить порт, используемый по умолчанию. Указывая данную директиву многократно, можно задать несколько портов. Заметьте, что директива Port не влияет на номер порта, используемый CUPS для взаимодействия с клиентами и серверами BSD LPD и другими подобными программами.
Файл /etc/cups/cupsd.conf, поставляемый с большинством пакетов CUPS, оставляет сервер совершенно открытым для обращений с внешних узлов. Подготавливая средства CUPS к реальной работе, необходимо ограничить доступ к серверу. Например, приведенная ниже директива блокирует доступ со всех узлов, за исключением компьютера, на котором расположен сервер, а также компьютеров, принадлежащих сети 172.22.0.0/16.
<Location /printers>
BrowseAllow from 127.0.0.1
BrowseAllow from 172.22.0.0/16
Allow from 127.0.0.1
Allow from 172.22.0.0/16
</Location>
Поскольку в директиве Location указана опция /printers, она не блокирует полностью доступ к серверу. Например, выполнение административных задач (опция /admin) и доступ к информации о заданиях на печать (опция /jobs) разрешены и для других систем. Настраивая CUPS, необходимо ограничить все виды доступа и даже продублировать ограничения, сконфигурировав соответствующим образом средства фильтрации пакетов (они будут рассматриваться в главе 25).
Получение заданий от клиентов BSD LPD и LPRng
Рассмотренные выше директивы, предназначенные для включения в файл /etc/cups/cupsd.conf, в основном имеют отношение к клиентам, поддерживающим IPP. Этот протокол не использует ни BSD LPD, ни LPRng; данные системы применяют в работе протокол LPD. (В настоящее время ведутся работы по включению средств поддержки IPP в состав LPRng, но они еще не завершены.) Как было сказано выше в данной главе, серверы печати CUPS могут получать задания на печать от клиентов, использующих протокол LPD. Для этого в состав CUPS включена вспомогательная программа cups-lpd.
Программа cups-lpd не может выполнять функции независимого сервера, ее необходимо сконфигурировать для работы с суперсервером inetd или xinetd (суперсерверы и взаимодействие с ними рассматривались в главе 4). Программа cups-lpd обычно располагается в каталоге /usr/lib/cups/daemon, а соответствующая ей запись в конфигурационном файле /etc/inetd.conf выглядит следующим образом:
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd
cups-lpd
Учитывая различия между inetd и xinetd, описанные в главе 4, вы можете легко сконфигурировать cups-lpd для работы с xinetd. В некоторых случаях пакет CUPS поставляется уже сконфигурированным для взаимодействия с клиентами BSD LPD, в этом случае нет необходимости предпринимать специальные меры по его настройке.
ВниманиеВ CUPS не предусмотрены никакие средства для контроля доступа клиентов, использующих протокол LPD. При передаче заданий от таких клиентов используется адрес сервера, и директивы в файле /etc/cups/cupsd.conf не оказывают никакого влияния на ход взаимодействия. Для того чтобы ограничить доступ к серверу CUPS с внешних узлов, надо настроить соответствующим образом брандмауэр или использовать другие механизмы ограничения доступа.
Определение сервера CUPS на стороне клиента
Для добавления принтеров к системе CUPS используется утилита lpadmin, вызываемая из командной строки или доступная посредством специального графического интерфейса. Кроме того, эта задача может решаться с помощью Web-броузера; для этого надо запустить Web-броузер на компьютере, на котором расположен сервер, и обратиться с его помощью по URL http://localhost:631. (Вы можете также запустить броузер и на другом узле, для которого разрешено выполнение задач администрирования, в этом случае вместо localhost необходимо указать имя компьютера, на котором выполняется сервер CUPS.) Используя любой из описанных здесь способов, вы можете добавлять или удалять принтеры или выполнять другие действия по администрированию сервера. Ниже приведен пример вызова утилиты lpadmin.
# lpadmin -р Имя_Принтера -Е -v lpd: //имя_сервера/имя_очереди
-m ppdfile.ppd
В данном примере Имя_Принтера — это имя очереди печати, используемой локально, имя_сервера — это имя узла, на котором установлен сервер печати, а имя_очереди — имя очереди на этом сервере. Поскольку в качестве протокола указано имя доступ к очереди печати осуществляется посредством протокола LPD. Для использования другого протокола надо вместо lpd задать имя ipp. (Аналогичным способом вы можете задать локальную очередь, но в качестве значения опции -v необходимо указать parallel:/dev/lp0 или задать идентификатор другого локального устройства.) Опция -m определяет PPD-файл для принтера, при этом CUPS может передавать приложению информацию о возможностях принтера. В состав большинства пакетов включается набор файлов PPD; они располагаются в каталоге /usr/share/cups/model. Файлами PPD снабжаются также многие принтеры PostScript. Для получения файла PPD вы можете воспользоваться списком драйверов по адресу http://www.linuxprinting.org/driver_list.cgi. Щелкните на имени драйвера Ghostscript, затем выберите модель вашего принтера в области CUPS-O-Matic и щелкните на Generate CUPS PPD. Через некоторое время вы получите файл PPD, описывающий возможности вашего принтера. Как сказано в комментариях, этот автоматически сгенерированный файл не свободен от недостатков, более того, не исключено, что он вовсе не будет работать. Поэтому, если это возможно, лучше использовать файлы PPD, поставляемые производителями принтеров.
СоветЕсли вы сконфигурировали клиент и сервер для просмотра принтеров, вам нет необходимости специально указывать принтеры IPP. Клиент автоматически получит список доступных принтеров. Описанная операция нужна лишь при использовании очередей печати LPD.
Если вы хотите модифицировать существующую очередь печати, для этого также можно применить инструмент lpadmin. Задайте исходное имя и необходимые опции. Например, чтобы преобразовать локальную очередь в сетевую, надо указать опцию -v и задать ее новое расположение.
Если вы предпочитаете инструменты с графическим пользовательским интерфейсом, можете воспользоваться средствами Web. В стандартном пакете CUPS предусмотрена возможность выполнения операций администрирования по протоколу HTTP. Соответствующая Web-страница показана на рис. 9.1. Для того чтобы приступить к администрированию, надо ввести URL компьютера, на котором установлен сервер, и указать порт 631. Затем CUPS запросит у вас имя и пароль администратора. После этого вы сможете выбрать конкретный пункт, например Do Administration Tasks или Manage Printers. Результат выбора Manage Printers показан на рис. 9.1. На этой странице отображается информация о двух принтерах. Первый из них, hp4000, используется по умолчанию и представляет собой принтер LPD. Второй, lexmark, подключен к параллельному порту. Щелкнув на кнопке Modify Printer, вы можете изменить базовые установки, например имя сервера, а щелкнув на кнопке Configure Printer, — задать установки для конкретного принтера, например размер страницы.
Рис. 9.1. Web-интерфейс CUPS упрощает настройку как локальных, так и сетевых принтеров