. Указывает на файл устройства, к которому подключен принтер. Например, выражение
lp=/dev/lp0
сообщает системе о том, что для вывода на принтер должно быть использовано устройство
/dev/lp0
(первый параллельный порт). Если вы настраиваете сетевой принтер, вам следует удалить эту опцию или не указывать после знака равенства никакого значения (например,
lр=
).
•
rm
. Определяет имя сервера печати LPD. Например, если для данной очереди сервером печати является
oak
, вам надо включить в определение очереди опцию
rm=oak
. Заметьте, что для организации печати с помощью удаленной очереди этого недостаточно; данная опция лишь идентифицирует компьютер, на котором расположена очередь. Для определения удаленного компьютера можно использовать имя узла (с указанием или без указания доменного имени) или IP-адрес.
•
rp
. Действие опции
rp
начинается там, где заканчивается действие опции
rm
. Опция
rp
задает имя удаленной очереди печати. Например, если очередь на сервере печати называется
inkjet
, в файл
/etc/printcap
на клиентском компьютере надо включить выражение
rp=inkjet
. Заметьте, что имя удаленной очереди не обязательно должно совпадать с именем локальной очереди. Допустима, например, ситуация, когда принтер
inkjet
сервера будет называться на стороне клиента
lр1
или
canon
. Рекомендуется во избежание недоразумений синхронизировать имена; в особенности это важно в больших сетях.
Таким образом, имея локальную очередь печати, вы можете преобразовать ее в сетевую очередь, заменив опцию
lp
опциями
rm
и
rp
. В этом случае вместо вывода данных на локальное устройство компьютер будет передавать задания на узел, заданный с помощью опции
rm
, в очередь, которая указана как значение опции
rp
. На сервере в описании очереди, вероятнее всего, будет присутствовать опция
lp
, но вместо нее могут быть включены опции
rm
и
rp
. Следует заметить, что такая конфигурация нежелательна, в этом случае лучше непосредственно указать в клиентской системе реальный сервер печати. (Исключением являются ситуации, когда средства обработки данных, например Ghostscript, выносятся с сервера печати на другой компьютер либо когда конфигурация сети не обеспечивает непосредственное взаимодействие клиента и сервера.)
Если сервер печати не поддерживает LPD-соединения, необходимо использовать более сложную конфигурацию. Например, сервер может быть настроен для обработки заданий на печать, передаваемых средствами SMB/CIFS или AppleTalk. В таком случае вам надо создать сценарий, который обрабатывал бы задания на печать, и вызывать его с помощью опции
if
. Примеры подобных решений приведены в документации на Samba и Netatalk.
Настройка сервера LPRng
С точки зрения пользователя система печати LPRng работает так же, как и BSD LPD. Это вполне закономерно, так как средства LPRng были разработаны для замены BSD LPD. LPRng использует файл
/etc/printcap
, в котором содержится такая же информация, как и в одноименном файле BSD LPD. Однако средства контроля доступа к серверу печати в LPRng реализованы совершенно по-другому. Вместо списка клиентов, которым разрешен доступ, в LPRng используется гораздо более сложная система печати, для управления которой служит файл
/etc/lpd.perms
.
Редактирование файла
/etc/lpd.perms
Файл
/etc/lpd.perms
управляет доступом к системе печати в целом. Файлы
lpd.perms
могут находиться также в каталогах спулинга для отдельных очередей (
/var/spool/lpd/имя_очереди
). Если такие файлы присутствуют, они осуществляют контроль за конкретными очередями, в то время как в файле
/etc/lpd.perms
указываются глобальные опции.
Независимо от расположения файла
lpd.perms
, в нем содержатся пять типов записей. Комментарии начинаются с символа
#
. В отличие от файла
/etc/hosts.lpd
, вы можете включать комментарии в строку после основной команды. Остальные четыре типа записей приведены ниже.
DEFAULT ACCEPT
DEFAULT REJECT
ACCEPT [ключ=значение[, значение]* ]*
REJECT [ключ = значение [, значение]* ]*
Первые два типа записей задают политику системы по умолчанию, т. е. общие правила по предоставлению или запрету доступа. В большинстве пакетов LPRng, поставляемых в составе дистрибутивных версий Linux, в файле
/etc/lpd.perms
содержится строка
DEFAULT ACCEPT
. Для сравнения, пакеты BSD LPD по умолчанию разрешают доступ только для узла
localhost
, или 127.0.0.1 (т. е. для компьютера, на котором выполняется данное программное обеспечение). Таким образом, при настройке системы печати LPRng желательно уточнить политику доступа, используя для этого опции
ACCEPT
и
REJECT
.
Опции
ACCEPT
и
REJECT
задают типы обращений, которые сервер должен соответственно принимать или отвергать. За именем опции следует один из ключей, указанных в столбце Key табл. 9.2, и значения, заданные в остальных столбцах этой таблицы. Столбец Connect определяет способность устанавливать соединения. Столбцы Job Spool и Job Print указывают на возможность передавать задание спулеру и выводить их на печать. В столбцах
lpq
,
lprm
и
lрс
указано, могут ли выполняться задачи, которыми в обычных условиях управляют утилиты с этими именами. В большинстве случаев наличие одной из этих возможностей означает наличие их всех (по крайней мере, тех, которые имеют смысл в конкретном контексте). Некоторые значения несовместимы с определенными ключами (они отмечены в табл. 9.2 символом —). Для того чтобы изменить значение на обратное, надо указать перед ним
NOT
. IP-адрес может определять всю сеть, после него надо указать символ
/
и задать маску подсети.
Таблица 9.2. Ключи и их значения, используемые при формировании файла
lpd.perms
Key
Connect
Job Spool
Job Print
lpq
lprm
lpc
SERVICE
X
R
P
Q
M
С или S
USER
—
Имя пользователя
Имя пользователя
Имя
пользователя
Имя пользователя
Имя пользователя
HOST
Удаленный узел
Имя узла
Имя узла
Имя узла
Имя узла
Имя узла
GROUP
—
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
IP
IP-адрес удаленного узла
IP-адрес узла
IP-адрес узла
IP-адрес удаленного узла
IP-адрес узла
IP-адрес узла
PORT
Номер порта
Номер порта
—
Номер порта
Номер порта
Номер порта
REMOTEUSER
—
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
REMOTEHOST
Удаленный узел
Удаленный узел
Узел
Удаленный узел
Удаленный узел
Удаленный узел
REMOTEGROUP
—
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
Имя пользователя
REMOTEIP
IP-адрес удаленного узла
IP-адрес удаленного узла
IP-адрес узла
IP-адрес удаленного узла
IP-адрес удаленного узла
IP-адрес удаленного узла
CONTROLLINE
—
Шаблон
Шаблон
Шаблон
Шаблон
Шаблон
PRINTER
—
Имя принтера
Имя принтера
Имя принтера
Имя принтера
Имя принтера
FORWARD
—
—
—
—
—
—
SAMEHOST
—
—
—
—
—
—
SAMEUSER
—
—
—
—
—
—
SERVER
—
—
—
—
—
Опции, предназначенные для контроля доступа, являются достаточно сложными, поэтому имеет смысл пояснить их на конкретных примерах. Рассмотрим следующие строки, входящие в состав стандартного файла
/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, и с компьютера, на котором установлен сервер; обращения с других узлов должны отвергаться. Сделать это можно с помощью следующих записей: