Контроль доступа к возможностям UUCP

UUCP очень гибкая система. Надо тщательно управлять доступом к свойствам, чтобы предотвратить злоупотребления. Наиболее интересны удаленное выполнение команды, передача файлов и пересылка. Taylor UUCP обеспечивает средства для ограничения свободы, которую удаленные компьютеры UUCP имеют в осуществлении каждого из этих важных свойств.

Выполнение команд

Задача UUCP состоит в том, чтобы копировать файлы из одной системы в другую и запрашивать выполнение некоторых команд на удаленных машинах. Конечно, Вы как администратор хотите управлять тем, какие права предоставляете другим системам: разрешать им делать, что угодно, определенно, не очень хорошая идея.

По умолчанию Taylor UUCP разрешает выполнять на Вашей машине лишь rmail и rnews, которые обычно используются для e-mail и Usent новостей по UUCP. Заданный по умолчанию путь поиска, используемый uuxqt, настраивается во времея компиляции, но обычно содержит /bin, /usr/bin, и /usr/local/bin. Чтобы изменять набор команд для определенной системы, Вы можете использовать ключевое слово commands в файле sys. Аналогично, путь поиска может быть изменен указанием ключевого слова command-path. Например, Вы можете разрешить системе pablo выполнять команду bsmtp в дополнение к rmail и rnews:

system          pablo
...
commands        rmail rnews bsmtp

Передача файлов

Taylor UUCP также позволяет описывать передачу файлов в подробностях. Вы можете запретить любой обмен с определенной системой. Только установите request в no, и удаленная система не сможет ни искать, ни читать, ни посылать Вашей никаких файлов вообще. Аналогично Вы можете запретить пользователям Вашей системы пересылку файлов в систему или из нее, установив transfer в no. По умолчанию любая пересылка им разрешается.

Кроме того, Вы можете конфигурировать каталоги, из которых файлы могут быть скопированы. Обычно запрещают доступ с удаленных систем к определенным каталогам, но разрешают своим пользователям посылать файлы со своего исходного каталога. Обычно удаленным пользователям разрешается получить файлы только из общего каталога UUCP /var/spool/uucppublic. Это традиционное место, в котором хранятся публично доступные файлы. Очень похоже на FTP-сервис.

Taylor UUCP обеспечивает четыре различные команды конфигурирования каталогов для посылки и получения файлов: local-send определяет список каталогов, из которых пользователь может запросить файлы. local-receive задает список каталогов, в которые пользователь может просить UUCP записать файлы. remote-send и remote-receive, которые определяют то же самое для запросов в другую систему. Рассмотрим следующий пример:

system          pablo
...
local-send      /home
local-receive   /home /receive
remote-send      !/incoming !/receive
remote-receive  /incoming

Команда local-send разрешает пользователям Вашего компьютера посылать любые файлы ниже /home и из общего каталога UUCP на систему pablo. Команда local-receive разрешает им получать файлы или в общедеступный каталог receive в uucppublic, или в любой общедоступный каталог ниже /home. Команда remote-send разрешает pablo запрашивать файлы из /var/spool/uucppublic или из любого общедоступного его подкаталога, кроме подкаталогов incoming и receive. Это сообщается uucico восклицательным знаком, поставленным перед именем каталога. Последняя строка разрешает pablo записать любые файлы в каталог incoming.

Одна из самых больших проблем при передаче файлов, используя UUCP, это то, что файлы записываются в обшедоступные каталоги. Это может соблазнить нзкоторых пользователей вмешаться в личные дела других пользователей. Однако, нет никакого способа решения этой проблемы, кроме отключения передач файлов по UUCP вообще.

Пересылка (Forwarding)

UUCP обеспечивает механизм, благодаря которому другие системы могут выполнять передачу файлов от Вашего имени. Например, Ваша система имеет доступ через uucp к системе seci, но не имеет доступа к uchile. Тогда пусть seci получит для Вас файлы с uchile и перешлет Вам. Следующая команда именно это и делает:

$ uucp -r seci!uchile!/find-ls.gz /uchile.files.gz

Эта методика прохождения работы через несколько систем называется пересылкой (forwarding). В вышеупомянутом примере причиной для использования пересылки могло быть то, что seci имеет UUCP-доступ к uchile, а Ваша машина нет. Однако, если Вы используете систему UUCP, ограничьте обслуживание пересылки некоторыми машинами, которым Вы доверяете, чтобы не ужасаться счету, если кто-нибудь решит скачать себе через Вас исходные тексты последней версии X11R6.

По умолчанию Taylor UUCP запрещает пересылку вообще. Чтобы дать возможность пересылки определенной системе, Вы можете использовать команду forward. Эта команда определяет список систем, которые могут воспользоваться пересылкой через Вашу. Например, администратор UUCP seci должен был добавить следующие строки к файлу sys, чтобы разрешить pablo запрос файлов из uchile:

# pablo
system          pablo
...
forward         uchile

# uchile
system          uchile
...
forward-to      pablo

Строка forward-to для uchile необходима, чтобы любые полученные файлы фактически передались pablo. Иначе UUCP пропустит их. Этот пример разрешает uchile посылать файлы только pablo через seci: любой другой путь недопустим.

Чтобы разрешить пересылку любой системе, используйте специальное ключевое слово ANY (обязательно заглавные буквы).