0

SQUID c фильтрацией контента

С фильтрацией интернет трафика рано или поздно придется столкнуться. По поводу как именно фильтровать www трафик существует множество мнений. Мой выбор пал на squidGuard.

Приступаю. Первым делом ищу его в портах:

# cd /usr/ports && make search name=squidguard
Port: squidGuard-1.4_4
Path: /usr/ports/www/squidguard
Info: A fast redirector for squid
Maint:
B-deps: db4-4.0.14_1,1
R-deps: db4-4.0.14_1,1 perl-5.12.4_2 squid-2.7.9_1
WWW: http://www.squidguard.org/
# cd /usr/ports/www/squidguard && make install clean
...
-> Blacklist databases installed in: /var/db/squidGuard
Congratulation. SquidGuard is sucessfully installed.

-> Documentation installed in: /usr/local/share/doc/squidGuard

In order to activate squidGuard you have to edit squid.conf
To the contain «url_rewrite_program /usr/local/bin/squidGuard»
and create a configuration file for squidGuard.
On disinstallation if you want to completely remove the blacklists
you will have to manually remove what remains in /var/db/squidGuard.
To activate the changes do a /usr/local/sbin/squid -k reconfigure

Все что нужно знать о дальнейших действиях написано — запоминаю.
Скачиваю blacklist для squidGuard’а с http://www.squidguard.org/blacklists.html.
Можно взять любой понравившийся, я взял shallalist.tar.gz и закинул на сервер.

# mv /var/db/squidGuard /var/db/squidGuard.example
# tar -xvzf /home/alexey/shallalist.tar.gz
# mv /home/alexey/BL /var/db/squidGuard && chmod -R 550 /var/db/squidGuard && chown -R /var/db/squidGuard
# cp /usr/local/etc/squid/squidGuard.conf.sample /usr/local/etc/squid/squidGuard.conf

Теперь правлю файл конфигурации squidGuard:

# Директория с blacklists
dbhome /var/db/squidGuard
# Директория для логов
logdir /var/log

# Описание пользователей
source myNet {
ip 10.73.0.0/24
}

# Описание запрещенных категорий
dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
}

acl {
default {
pass !porn any
redirect http://www.no-porn.com/
}
}

Затем мне нужно инициализировать blacklist’ы, т.е. переконвертировать их из текстового вида в базу данных, ибо так работается быстрее.

# squidGuard -C all
# chown -R squid:squid /var/db/squidGuard

В /usr/local/etc/squid/squid.conf:

## squidGuard ##
url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/etc/squid/squidGuard.conf
url_rewrite_children 5

Минимальная работоспособность обеспечена. Теперь мне остается допиливать конфиги под свои нужды.

Проверить squidGuard можно так:
# echo "http://adult.com 192.168.100.22/ - - GET" | squidGuard -c /usr/local/etc/squid/squidGuard.conf

P.S. squidGuard умеет смотреть пользователей в mySQL и LDAP. Возьму на заметку. Кроме того вместе с редиректором (squidGuard, rejik) не удастся использовать sqstat, что довольно грустно. (Возможно я ошибаюсь)

Alexey Egorychev

FreeBSD and Linux sysadmin. Know many systems like mailsystems, DB, WWW stack. Automation with salt, ansible. Monitoring with nagios, zabbix.