Блог

Продолжаем рассматривать возможности squidGuard по фильтрации URL. Ранее мы рассказывали о том, как установить и настроить squidGuard (см. Настройка URL-фильтраций на локальном компьютере, Настройка перенаправления в squidGuard 1.4.).

В этой статье речь пойдет об использовании регулярных выражений при фильтрации URL связкой: прозрачный прокси squid3 и squidGuard 1.4

Напомню, что регулярное выражение - это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов (см. Wikipedia).

SquidGuard, на ряду с подключаемыми блэклистами, дает возможность использовать и именно этот инструмент для фильтрации URL. Настраиваются и подключаются регулярные выражения аналогично блэклистам.

1. В домашней директории баз squidGuard (смотри переменную dbhome) создаем файл с регулярным выражением (в нашем случае файл называется reg_exp), и поместим в него регулярное выражение, например:

(^|[-\?+=/_])(mendin*|bondage|boobs*|busty*|hardcore*|eroti*|porno*|sex*|xxx+)

Подробнее про синтаксис регулярных выражение вы найдете на официальном сайте squidGuard (http://www.squidguard.org/Doc/expressionlist.html). Примеры регулярных выражений также можно найти в интернет.

2. Настраиваем тэг dest (раздел DESTINATION CLASSES)

dest digincore_adult {
   domainlistdigincore/bl
  expressionlist digincore/reg-exp
}

где в параметре  expressionlist указываем путь до созданного файла с регулярным выражением (выражениями). Путь является относительным к директории, хранящейся в переменной dbhome.

3. Подключаем объявленный класс в ACL (правила контроля доступа)

acl { default {
         pass !digincore_adult !in-addr all
         redirect http://localhost/blocked.php?u=%u
         }
}

4. Применяем внесенные изменения командой:

squidguard -k reconfigure

...или же перезапускаем squidGuard и squid3

squidGuard -d -C all 
/etc/init.d/squid3 restart

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

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