Поскольку в директиве 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, поставляемые производителями принтеров.
Читать дальше