четверг, 27 декабря 2007 г.

Расширенная конфигурация squidGuard

Перевод с англ., источник: http://www.squidguard.org/Doc/extended.html

Имеются несколько дополнительных параметров, чтобы сконфигурировать squidGuard в соответствии с вашими нуждами.

  • Запрещение IP-адресов
Чтобы быть уверенным, что пользователи не могут обойти URL-фильтр простым использованием IP-адресов вместо полных определенных доменных имен (FQDN), вы можете добавить параметр !in_addr следующим образом в ваш acl:

acl {
default {
pass !in-addr all
redirect http://localhost/block.html
}
}
  • Блокирование на основе времени
Имеется два пути определить дату и время, когда разрешается и запрещается доступ к веб-сайтам. Директива weekly используется для переопределения времени доступа, например разрешение веб-доступа и блокирование веб-сайтов после работы.
Используя директиву date, вы можете определить специальные дни, по которым может быть предоставлен доступ. Могу использоваться шаблоны имен.

time afterwork {
weekly * 17:00-24:00 # After work
weekly fridays 16:00-17:00 # On friday we close earlier
date *.01.01 # New Year's Day
date *.12.24 12:00-24:00 # Christmas Eve
date 2006.04.14-2006.04.17 # Easter 2006
date 2006.05.01 # Maifeiertag
}

Чтобы применить определенное время, вы можете использовать классификаторы within и outside соответственно. Теперь ваш acl выглядит так:

acl {
all within afterwork {
pass all
}
else {
pass !adv !porn !warez all
}
default {
pass none
redirect http://localhost/block.html
}
}

Это означает, что для каждого свободный доступ у веб-сайтам возможен в течение времени, определенного в afterwork. После этого времени пользователи не могут иметь доступ, что бы ни было определено в adv, porn и warez.

  • Правила, основанные на исходных IP-адресах
Если вам необходимы политики для предоставления одним пользователям доступа к большему количеству веб-сайтов, чем другим, у вас есть разные варианты осуществления этой политики. Первый способ - определить списки acl с исходными IP-адресами. Это может работать, только если группы пользователей разделены по IP-адресам внутри вашей сети.
Предподожим, что это случай, когда вы можете сейчас определить исходный диапазон IP-адресов в вашем файле squidGuard.conf следующим образом:

src admins {
ip 192.168.2.0-192.168.2.255
ip 172.16.12.0/255.255.255.0
ip 10.5.3.1/28
}

Вы можете указать IP-адреса прямо также, как определение IP-диапазонов с использованием нотации "from-to", определяя маску подсети или используя аббревиатуру префикса маски подсети.
Примечание: Если у вас еесть несколько определений сетей для пользовательских групп, вы можете размесить эту информация в отдельном файле и просто прописать в вашем файле squidGuard.conf о расположении файла. В этом случае вы пишете в вашем squidGuard.conf:

src admins {
iplist adminlist
}

squidGuard посмотрит файл с именем adminlist, расположенный в любом месте, которое вы указали директивой dbhome. Альтернативно, вы можете определить абсолютный путь с вашим именем файла. Сам файл содержит информацию в следующем стиле:

192.168.2.0-192.168.2.255
172.16.12.0/255.255.255.0
10.5.3.1/28

  • Журналирование событий блокирования доступа

Может представлять интерес, кто попытался получить доступ к блокированным сайтам. Чтобы проследить это, вы можете добавить директиву log в ваши определения src и dest в вашем файле squidGuard.conf. Если задано только имя файла, файл ищется в каталоге, определенном директивой logdir.

dest porn {
domainlist porn/domains
urllist porn/urls
log pornaccesses
}

среда, 26 декабря 2007 г.

squidGuard - параметры запуска

Перевод с англ., источник: http://www.squidguard.org/Doc/runtimeops.html

SquidGuard допускает следующие опции:

-v -- Установка этого параметра выведет на экран номер версии.

-d -- Установка этого параметра направляет все ошибки в стандартный поток ошибок (обычно терминал, в котором вы запустили squidGuard). Это чрезвычайно полезно, либокогда идет тестируется новая установка либо для целей диагностики проблем.

файл -- Этот параметр разрешает вам определить другой конфигурационный файл. Используйте его, когда тестируете новые конфигурации до установки их в качестве основных.

-t время -- Этот параметр разрешает вам установить формат времени запуска в виде yyyy-mm-ddTHH:MM:SS. Это особенно интересно, если вы тестируете acl, основанные на времени.

-u файл -- Обновление файлов всех доменов и url может потребовать значительного времени. Намного быстрее работать с .diff-файлами и просто включить изменения в db-файлы. Используя этот параметр, squidGuard посмотрит в каталогах категорий для .diff-файлов и, таким образом, подготовит изменения. Изменения вступят в силу в случае, когда squid перечитает свой конфигурационный файл (squid -k reconfigure).

файл|all -- Используя -C all, будет созданы db-файлы для всех сконфигурированных категорий заново. Если вы хотите обновить только определенный файл, вы можете ввести прямо его имя, например -C porn/domains.

среда, 14 ноября 2007 г.

Базовая конфигурация SquidGuard



( оригинал - http://www.squidguard.org/Doc/configure.html )


Когда SquidGuard успешно установлен, вы захотите настроить его в соответствии с вашими нуждами. Простая конфигурация устанавливается в каталог /usr/local/squidGuard (или в любой другой каталог, который вы укажете при инсталляции).
Ниже вы найдете три примера для базовой конфигурации SquidGuard.

1.Самая простая конфигурация:

#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /usr/local/squidGuard/db
logdir /usr/local/squidGuard/logs

dest porn {
domainlist porn/domains
urllist porn/urls
}

acl {
default {
pass !porn all
redirect http://localhost/block.html
}
}

Всегда проверяйте, что самая первая строка в вашем файле squidGuard.conf не пуста!
Параметры имеют следующее значение:

dbhome
  • Местоположение «черных» списков
logdir
  • Местоположение журнальных файлов
dest
  • Определение категории блокирования
acl
  • Действующее определение блокирования. В нашем примере отображено только правило по умолчанию. У вас может быть более чем одно определение acl. Категория porn, определенная вами в параметре dest, блокируется выражением !porn. Вам следует добавить идентификатор all после списка блокирования или ваших пользователей, которые не будут иметь возможность веб-серфинга вообще.

Изменение более чем одной категории для блокирования

Во-первых, определите ваши категории. Определите их подобно категории porn в примере выше. Например:

dest adv {
domainlist adv/domains
urllist adv/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
Теперь ваш acl должен выглядеть так:

acl {
default {
pass !adv !porn !warez all
redirect http://localhost/block.html
}
}

2.«Белый» список

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

dest white {
domainlist white/domains
urllist white/urls
}

acl {
default {
pass white !adv !porn !warez all
redirect http://localhost/block.html
}
}

В этом примере мы предполагаем, что ваш белый список располагается в каталоге, называемом white, внутри каталога черных списков, который вы определили параметром dbhome. Убедитесь, что ваш идентификатор white — первый в строке директивы pass. Он не должен иметь восклицательного знака вначале (иначе все данные, располагающиеся в white, будут также блокироваться).

3. Инициализация черных списков.

До того, как вы запустите свой SquidGuard, вы должны инициализировать черные списки, т.е. конвертировать их из текстовых файлов в db-файлы. При использовании db-формата будет ускорен процесс проверки и блокировки.
Инициализация выполняется следующей командой:

squidGuard -C all
chown -R squiduser /usr/local/squidGuard/db/*

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

2006-01-29 12:16:14 [31977] squidGuard 1.2.0p2 started (1138533256.959)
2006-01-29 12:16:14 [31977] db update done
2006-01-29 12:16:14 [31977] squidGuard stopped (1138533374.571)

Если вы посмотрите в каталог, содержащий файлы domains и urls, вы увидите, что дополнительные файлы уже созданы: domains.db и urls.db. Эти новые файлы должны быть не пусты!
Конвертируются только те файлы, которые вы определили, чтобы блокировать или определить белые списки в вашем файле squidGuard.conf.

пятница, 19 октября 2007 г.

SquidGuard — правила перенаправления



(оригинал - http://www.squidguard.org/Doc/redirect.html)

1. Основы

Чтобы все работало корректно, вы должны указать SquidGuard, какие URL будут возвращены squid в случае, если запрашиваемый сайт должен блокироваться. Правило redirect должно быть размещено в директивах acl. Возможны несколько правил перенаправлений внутри одной и той же политики (т.е. определения исходных правил). Пример правила перенаправления в конфигурации:

acl {
default {
pass !porn all
redirect http://www.foo.bar/blocked.html
}
}

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

acl {
group1 within workhours {
pass !tracker !adv !spyware !hacking !porn all
redirect http://www.foo.bar/allblocked.html
}


default {
pass !porn all
redirect http://www.foo.bar/defaultblocked.html
}
}


В этом примере определяются 2 политики: последнее — это то же самое, что и пример выше, он действует на всех пользователей прокси, которые не попадают под действие политики, определенной как «group1». Если вы как пользователь распознаны как часть «group1» (по аутентификации, IP-адресу или временному определению), будет показана страница http://www.foo.bar/allblocked.html , если запрашиваемая страница является часть политики блокирования (в нашем примере — tracker, adv, spyware, hacking и porn).

Пожалуйста, помните:

  • Политика, называемая «default», необходима!
  • Если вы не определите конкретное правило перенаправления, блокирование или журналирование откликов не будет работать.
  • Внутри описания политики должно быть только одно правило перенаправления .

2. Дополнительно

Вместо отображения статичного сообщения «You have been blocked», вы можете запрограммировать скрипт, который делает то же, а также показывает пользователю некоторую дополнительную информацию о блокировании. SquidGuard допускает следующие переменные, интерпретируемые скриптом:

— переменная, которая содержит IP-адрес клиента
%i - переменная, которая содержит идентификатор пользователя (UID) (см. RFC 931 или LDAP) или «unknown», если UID не доступен.
%n - переменная, которая содержит доменное имя клиента или «unknown», если оно не доступно
%p - переменная, которая содержит REQUEST_URI, т.е. путь и, опционально, запрос переменной %u, но помните, что для удобства без промежуточных «/»
%s - переменная, которая содержит соответствующую исходную группу (source group) или «unknown», если нет соответствующих групп.
%t - переменная, которая содержит соответствующую группу назначения(target group) или «unknown», если нет соответствующих групп.
%u - переменная, которая содержит запрошенный URL.

Эта дополнительная информация в вашем перенаправляющем правиле вашего скрипта должна выглядеть примерно следующим образом:

redirect
http://www.foo.bar/blocked.cgi?caddr=%a&cname=%n&user=
%i&group=%s&url=%u&target=%t

В вашем скрипте вы должны установить значение передаваемой переменной $QUERY_STRING. Эта переменная содержит все данные параметры. SquidGuard заменяет переменную (с «%») с ее соответствующими значениями до отправки URL скрипту, таким образом, переменная $QUERY_STRING содержит всю информацию о пользователе, IP-адресе, группе и запрашиваемом URL.