Прокси-сервер с обрезкой контента
Опубликовано : 28-02-2010 | Автор : admin | Категория : Linux
Задача: настроить прокси-сервер с кешированием данных для уменьшения входящего трафика, с обычной авторизацией по логину и паролю (ncsa), с возможностью фильтрации различного контента для разных типов пользователей.
Используемые инструменты и материалы: Ubuntu Server 9.04, squid 2.7, squidguard, прямые руки и ясный разум.
Обновляемся и устанавливаем необходимое ПО:
# sudo su
# aptitude update
# aptitude upgrade
# aptitude install squid squidguard mc htop
Качаем архив с блэклистами и распаковываем их в /var/lib/squidguard/db:
# wget http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist
# mc
… ))
Рисуем конфиг сквида:
# cat /etc/squid/squid.conf
| acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY hierarchy_stoplist cgi-bin ? http_port 3128 #http_port 3128 transparent auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd access_log /var/log/squid/access.log squid url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl CONNECT method CONNECT icp_access allow all http_access deny manager |
Создаем директории для кэша и запускаем:
# squid -z
# squid
Рисуем конфиг сквидгарда:
# cat /etc/squid/squidGuard.conf
| dbhome /var/lib/squidguard/db dest ads { domainlist ads/domains expressionlist ads/expressions urllist ads/urls } dest audio-video { dest drugs { dest porn { dest proxy { dest virusinfected { dest jobsearch { dest stuff { dest filehosting { dest mail { dest webmail { src inet_full { src inet_users { src inet_no-stuff { acl { inet_full { inet_users { inet_no-stuff { default { } |
В будущем придется вручную добавлять в базу разные сайты, после чего необходимо проделать ряд операций. Для этих целей пишем небольшой скрипт и применяем его после внесения изменений:
# cat /etc/squid/squidguard.sh
| #!/bin/sh echo “Processing…..” squidGuard -C all chmod -R 777 /var/lib/squidguard/db squid -k reconfigure echo “Done!” exit |
Создаем файлы inet_users, inet_full, inet_no-stuff. В них нужно будет прописывать наших пользователей. Создаем базу с пользователями:
# touch /etc/squid/passwd
# htpasswd -b /etc/squid/passwd username userpasswd
…
Раскидываем пользователей по группам и делаем:
# squid -k reconfigure
Источник: http://ithouse.spb.ru/?p=297
