Примеры использования

Если требуется заблокировать доступ к интернет-ресурсам из списков Adult и Email в рабочее время для пользователей из локальной сети, а также для пользователей с определенного IP-адреса, то можно использовать следующее правило:

[match]
if (local_ip() ||
   request_ip <<= "87.249.57.20") &&
   worktime()
{
BlockAdult = yes
BlockEmail = yes
}

Если требуется заблокировать доступ к интернет-ресурсам из списка Terrorism в ночное время (с 23:00 до 8:00) для пользователей с определенных IP-адресов, то можно задать следующее правило:

[match]
if (request_ip <<= "93.185.182.46" ||
   request_ip <<= "195.98.93.66") &&
   (system_time>="23:00" ||
   system_time<="8:00")
{
BlockTerrorism = yes
}

Чтобы запретить пользователю "edx" доступ к сети Интернет в нерабочее время:

[match]
if request_username=="edx" && !worktime()
{
BlockAll = yes
}

Обратите внимание, что функции local_ip() и worktime(), используемые в примерах, должны быть предварительно определены в секции [def].

Чтобы запретить доступ к конкретному интернет-ресурсу всем пользователям, чьи имена удовлетворяют регулярному выражению "vasya.*", либо удовлетворяют любому из регулярных выражений, перечисленных в файле, либо совпадают с одной из строк в файле, используйте следующее правило:

[match]
if (request_username ~ "vasya.*" ||
request_username ~ file:"/tmp/icapd/users_re_block.txt"
|| request_username == file:"/tmp/icapd/users_block.txt")
&& (request_url == "http://example.com/mega_music.mp3")
{
BlockAll = yes
}

Обратите внимание, что установка в правиле BlockAll в No не означает, что в результате срабатывания условия будет обеспечен беспрепятственный доступ к запрошенному ресурсу. В этом случае доступ к ресурсу разрешается, если он попадает в пользовательский белый разрешающий список или не попадает в активные черные списки (как тематические списки <Name>, включение и выключение которых определяется значением соответствующих параметров Block<Name>, так и пользовательский черный список).

В случае если в обычном режиме доступ к ресурсам из некоторых тематических списков запрещен, но нужно разрешить доступ к некоторому ресурсу (или, например, разрешить доступ к сайтам из некоторого тематического списка), следует создать соответствующее разрешающее правило.

Например, пусть требуется разрешить посещать ресурс socialnetwork.com пользователям, IP-адреса которых принадлежат подсети 192.168.1.1/32, не смотря на то, что он относится к блокируемым тематическим спискам SocialNetworks и Chats:

if (request_ip <<= "192.168.1.1/32") && (request_url ~ "socialnetwork.com")
{
BlockSocialNetwork = no
BlockChats = no
}

Данное правило разрешает доступ к ресурсам, находящимся в тематических списках SocialNetworks и Chats, только в том случае, если:

IP-адрес запросившего доступ клиента относится к подсети 192.168.1.1/32;

URL, запрошенный клиентом, содержит подстроку socialnetwork.com.

При выполнении указанных условий доступ к ресурсу будет открыт. Во всех остальных случаях применяются глобальные настройки блокировки, указанные в конфигурационном файле. Обратите внимание, что если ресурс принадлежит более чем одному списку, то чтобы обеспечить к нему доступ, следует отключить блокировку для всех списков, в которые он входит.