The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Сети, протоколы, сервисы" (Архив | Для печати)

FreeBSD + squidGuard + Apache + Squid + Berkeley DB

Бешков Андрей
tigrisha@regata.ru

Целью данных записок является создание простой в управлении и, в то же время, гибкой в настройке системы фильтрации интернет трафика. Строить мы ее будем на основе FreeBSD 4.5+ Squid + SquidGuard + Berkeley DB 3.2.9 + Apache.

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

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

Я думаю, что нижеприведенных инструкций по настройке Apache и Squid хватит, что бы установить их в комплектации по умолчанию. Для получения более подробных сведений вам стоит сходить на следующие сайты:

http://apache.lexa.ru/

http://www.squid-cache.org/

http://squid.opennet.ru/

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

Ну что же, теперь когда с формальностями покончено, приступим к установке.

В качестве прокси я использовал squid 2.5.STABLE1. Взять его можно здесь.

# tar zxvf squid-2.5.STABLE1-src.tar.gz
# cd squid-2.5.STABLE1
# ./configure 
# gmake 
# gmake install 

После инсталяции редактируем конфиг squid, находящийся в /usr/local/squid/etc/squid.conf.
Должно получиться примерно следующее:

http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 64 MB
error_directory /usr/local/squid/share/errors/Russian-koi8-r
maximum_object_size 16384 KB
cache_dir ufs /usr/local/squid/cache 5000    16 256
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
ftp_user vasa@pupkin.ru
quick_abort_pct 60
negative_ttl 1 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 5 minutes
half_closed_clients on
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl users src "/usr/local/squid/etc/users.txt"
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access allow users
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
cache_mgr root@test.ru
cache_effective_user nobody
cache_effective_group nogroup
forwarded_for on
cachemgr_passwd passwd all
client_db on

Обращаю внимание на строку acl users src "/usr/local/squid/etc/users.txt". Она означает, что список пользователей, которым разрешен доступ к squid, находится в файле /usr/local/squid/etc/users.txt

Этот файл имеет следующий формат:

#Петрова Наталья (Снабжение) 
192.168.10.91/32 
#Иванов Владимир (Доставка) 
192.168.10.92/32    
#Сергеев Игорь (Плановый отдел) 
192.168.10.93/255.255.255.255 
#Кривоухина Ирина    (Лаборатория) 
192.168.10.94/255.255.255.255 
#Синицына Светлана (секретарь генерального директора) 
192.168.10.95/255.255.255.255 

Отдельный файл со списком пользователей я решил использовать, что бы не захламлять главный конфигурационный файл. Users.txt должен иметь те же права доступа, что и squid.conf.

Возможен и другой вариант управления доступом к squid, при котором доступ средствами squid не ограничивается. Для тех пользователей, чей адрес не внесен в файл /usr/local/squidGuard/squidGuard.conf, производится перенаправление на страницу запрещения. Соответственно, эти пользователи интернета не увидят. Чтобы добиться такого эффекта, нужно удалить из squid.conf строки:

acl users src "/usr/local/squid/etc/users.txt"
http_access allow users
http_access deny all

И добавить в squid.conf

http_access allow all

Мне больше нравится второй вариант разграничения доступа, но это уже дело вкуса.


страницы: 1, 2, 3, 4
следующая

 




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру