
Правило доступа - некоторая совокупность параметров для запрета или разрешения доступа к запрашиваемому ресурсу.
Правила доступа задается в файле, указанном в конфигурационном файле, в секции [ucfp.control], параметр rules (по умолчанию /usr/local/ucfp/etc/rules)
Правила задаются в формате "параметр = значение;". Завершающий символ ";" обязателен. Перечисление значений указывается через знак ",".
Общие принципы описания правил:
- Описания правила начинается с параметра do.
- Перечисление параметров возможно как в одну строку, так и в несколько.
- В правиле обязательным является только параметр do
- При определении правила можно использовать следующие параметры:
do = deny/allow/pass
deny - запретить доступ
allow - разрешить доступ
pass - пропустить правило (правило неактивно)
urls = список URL запрашиваемых ресурсов
clients - список IP-адресов клиентов. В качестве значения для данного параметра можно так же указывать описание подсети в формате x.x.x.x/x, или диапазон IP-адресов в формате x.x.x.x-x.x.x.x
logins - список логинов клиентов
ct - типы контента запрашиваемого файла
ext - расширения файлов
method - HTTP метод запроса (OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE или CONNECT)
notify - скрипт оповещения
size - максимальный размер файла в байтах
lists - категории для проверки
comment = комментарий (строка без каких-либо ограничений);
- При определении значений параметров urls, clients, logins, ct и ext допустимо использование объектов в формате $object_name, где object_name - значение параметра name объекта. При этом тип объекта должен соответствовать параметру правила
- При определении значений параметра lists допустимо только описание категорий в формате $object_name, где object_name - значение параметра name категории
- Пустой файл с описанием правил означает "разрешить всем и все без каких-либо проверок", т.е. do = allow; является последним правилом по умолчанию
- Прохождение правил осуществляется сверху вниз, до первого удовлетворения параметров запроса значениям параметров правила. Если запрос не удовлетворяет ни одному из правил, то действует правило по умолчанию. т.е. доступ к запрашиваемому ресурсу разрешается
- Сравнение параметров запроса и параметра правила осуществляются через логическое "и". Исключение составляют пары параметров ct/ext и urls/lists, сравнение которых происходит через логическое "или". Также через логическое "или" происходят проверки внутри категории, т.е. проверка по категории читается как: если запрашиваемый URL находится в базе данных (db) или в URL содержится запрещенное слово (parts) или анализатор контента отнес страницу к данной категории (tpl).
- Если в правиле указаны urls и lists одновременно, то ресурсы, перечисленные в urls, заносятся в базу данных первой в списке lists категории, т.е. блокировка таких ресурсов происходит с диагнозом "ресурс находится в базе данных категории".
(См. раздел Примеры: Примеры правил) |