стандартного файла /etc/lpd.perms
:
ACCEPT SERVICE=M SAMEHOST SAMEUSER
ACCEPT SERVICE=M SERVER REMOTEUSER=root
REJECT SERVICE=M
В этих трех строках указано, кто может использовать утилиту lprm
для удаления заданий. В каждой строке содержится опция SERVICE=M
, которая означает, что строка соответствует функциям lprm
. Это соответствие можно проследить по строке SERVICE
табл. 9.2. В первой из указанных трех строк содержатся также опции SAMEHOST
и SAMEUSER
, которые указывают на то, что команда принимается только в том случае, если она передана с того же компьютера, что и задание на печать, и от того же пользователя, который является владельцем этого задания. В состав второй строки включены опции SERVER
и REMOTEUSER=root
. Они означают, что пользователь, зарегистрированный на сервере как root
, имеет право удалять задания. Последняя строка запрещает обработку прочих запросов, поступающих от lprm
. (LPRng просматривает файл lpd.perms
до тех пор, пока не будет найдена опция, которая соответствовала бы поступившей команде. В данном случае две записи ACCEPT SERVICE=M
предшествуют записи REJECT SERVICE=M
, поэтому опции ACCEPT
имеют преимущество перед опцией REJECT
.)
Как было сказано ранее, во многих случаях система LPRng по умолчанию настраивается так, чтобы она принимала обращения с любого узла. Подобная конфигурация недопустима с точки зрения безопасности, так как любой внешний пользователь может запустить задание на печать, в результате чего будут расходоваться бумага и ресурсы принтера. Кроме того, при обнаружении недостатков в защите LPRng неограниченный доступ к этой системе предоставит дополнительную возможность для взлома принтера. Исходя из этих соображений возможности пользователей по обращению к серверу печати необходимо ограничить. Сделать это можно с помощью брандмауэра (вопросы настройки брандмауэра будут рассмотрены в главе 25). Кроме того, я настоятельно рекомендую вам принять дополнительные меры по защите самой системы LPRng. Предположим, что вы настраиваете сервер печати, который должен обрабатывать задания, переданные из сети 172.22.0.0/16, и с компьютера, на котором установлен сервер; обращения с других узлов должны отвергаться. Сделать это можно с помощью следующих записей:
ACCEPT SERVICE=X SERVER
REJECT SERVICE=X NOT REMOTEIP=172.22.0.0/16
Данные строки ограничивают способность устанавливать соединения с сервером, а следовательно, возможность передавать задания на печать и выполнять прочие действия. Первая строка разрешает устанавливать соединения при обращении с сервера (эти обращения поступают с интерфейса, который имеет адрес 127.0.0.1, поэтому использование REMOTEIP=127.0.0.1
вместо SERVER
привело бы к аналогичному результату). При отсутствии этой строки следующая запись блокировала бы обращения с локального компьютера, что в данном случае нежелательно. Вторая строка отвергает все попытки установить соединения, кроме тех, которые предпринимаются компьютерами, принадлежащими сети 172.22.0.0/16. Если бы у вас возникла необходимость принимать обращения из нескольких сетей, вам бы пришлось включить перед опцией REJECT
еще одну опцию ACCEPT
и указать для нее адрес дополнительной сети, компьютеры которой имели бы право устанавливать соединения с сервером.
Указание LPRng-сервера на стороне клиента
Файл /etc/printcap
в системе LPRng используется аналогично одноименному файлу в системе BSD LPD. В частности, опции lp
, rm
и rp
, которые обсуждались выше в данной главе, применимы как в BSD LPD, так и в LPRng. Большинство других опций также может присутствовать в обеих системах, но некоторые из них интерпретируются по-разному. Обсуждение этих различий выходит за рамки данной книги.
Системы BSD LPD и LPRng используют протокол LPD, поэтому вы можете сконфигурировать клиент LPRng для печати на сервере BSD LPD и наоборот. Подобное взаимодействие можно также организовать с системой CUPS. Кроме того, CUPS поддерживает расширенный протокол, который может использоваться только в рамках этой системы.
Настройка сервера CUPS
Система печати CUPS, предназначенная для использования в Unix и Linux, обеспечивает чрезвычайно высокую степень гибкости. Вместо того чтобы вносить изменения в пакет BSD LPD (что по сути надо было сделать при создании LPRng), разработчики CUPS создали полностью новый набор базовых средств, поддерживающих вывод на принтер в различных системах, в том числе в Linux. Часть этих базовых средств предназначена для обеспечения совместимости, поэтому пользователи могут задавать привычные им команды для вывода данных на печать. Клиенты CUPS могут работать с серверами LPD, а клиенты LPD, в свою очередь, могут передавать задания на сервер CUPS. Кроме того, в системе CUPS реализована поддержка нового протокола IPP, который базируется на протоколе HTTP, используемом Web-серверами и броузерами. В системе CUPS можно передавать на сервер информацию о типе файла, что упрощает выбор принтера; для описания возможностей принтеров могут использоваться файлы PPD (PostScript Printer Description); средства просмотра принтеров дают возможность клиенту искать нужные принтеры в сети; при этом не требуется настройка клиентской системы для работы с конкретным устройством. При условии повсеместного применения CUPS перечисленные свойства системы существенно упростят конфигурацию как локальных, так и сетевых средств печати.
Работу с CUPS усложняет одна особенность этой системы: конфигурационные файлы существенно отличаются от файлов, используемых в системах BSD LPD и LPRng. Даже если вы хорошо знакомы с данными системами, это не поможет вам при работе с CUPS; средства ее настройки придется изучать специально. Если вы предпочитаете работать с инструментами, предоставляющими графический интерфейс, можете воспользоваться KUPS (http://cups.sourceforge.net/kups/
) и ESP Print Pro (http://www.easysw.com/printpro/
). CUPS также можно настраивать, пользуясь Web- броузером, для этого надо запустить броузер на локальном компьютере и обратиться по адресу http://localhost:631
.
Подробное описание конфигурации системы печати CUPS выходит за рамки данной книги. Предполагается, что вы уже умеете выполнять действия, необходимые для реализации минимальных возможностей локальной очереди. В данном разделе рассматриваются только опции, необходимые для настройки сетевых средств печати. Дополнительная информация о работе системы CUPS находится по адресу http://www.cups.org/sam.html
.
Редактирование файла /etc/cups/cupsd.conf
Работой сервера CUPS управляет файл /etc/cups/cupsd.conf
. Поскольку система CUPS