С фильтрацией интернет трафика рано или поздно придется столкнуться. По поводу как именно фильтровать 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, что довольно грустно. (Возможно я ошибаюсь)