| 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, и с компьютера, на котором установлен сервер; обращения с других узлов должны отвергаться. Сделать это можно с помощью следующих записей:
ACCEPT SERVICE=X SERVER
REJECT SERVICE=X NOT REMOTEIP=172.22.0.0/16