Настройки описанные в данной статье не претендуют на абсолютно верные.
Данные настройки созданы после прочтения кучи факов и ман.
Данная настройка работает на ASPLinux 11.2.
Пакеты, используемые в данной конфигурации, не пересобирались, использовались пакеты, идущие на дистрибутиве.
Использована сеть с адресным полем 10.12.0.0/255.255.255.0
В данной статье подразумевается что у вас уже должным образом настроены samba и winbind
В данной конфигурации заблокирована почти вся графика для экономии трафика.
Если данная функция не нужна, отключите соответствующие настройки в конфиге.
Рекомендую так же удалить стандартные HTML-файлы, отображающие ошибки, и сделать свои для корректного отображения у пользователей.
Итак,
Squid - прокси-сервер. Основная конфигурация настраивается с помощью файла squid.conf, который в данном случае находится в каталоге /etc/squid/
В принципе, может работать и при дефолтном конфиге, но лучше настроить все руками.
Конфиг, используемый мною:
cache_mgr admin@domain.ru visible_hostname my_proxy log_mime_hdrs on ignore_unknown_nameservers on connect_timeout 120 seconds half_closed_clients on forwarded_for off error_directory /etc/squid/error hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin ? no_cache deny QUERY http_port 10.12.0.10:3128 https_port 10.12.0.10:3128 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp acl all src 0.0.0.0/0.0.0.0 acl localnet src 10.12.0.0/255.255.255.0 acl nobanners src 0/0 acl banners url_regex "/etc/squid/conf/banners.acl" acl My_SNMP snmp_community squidmrtg snmp_port 3401 acl ICQ_port port 5190 acl ICQ_server dstdomain login.icq.com login.oscar.aol.com ibucp-vip-d.blue.aol.com ibucp-vip-m.blue.aol.com bucp2-vip-m.blue.aol.com bucp-m08.blue.aol.com 205.188.153.98 205.188.153.97 64.12.161.153 http_access allow ICQ_port localnet http_access allow ICQ_server localnet acl Jabber_port port 5222 http_access allow Jabber_port localnet acl CONNECT method CONNECT acl goodusers proxy_auth "/etc/squid/conf/good" http_access deny goodusers banners http_access allow goodusers acl free_image proxy_auth "/etc/squid/conf/free_image" acl aolaccess dst "/etc/squid/conf/host.acl" acl banusers proxy_auth "/etc/squid/conf/user-deny" acl nu proxy_auth "/etc/squid/conf/naglyi_user" http_access allow aolaccess banusers localnet http_access deny banusers localnet acl squid_block_badlang url_regex -i "/etc/squid/squidblock/badlang.block.txt" acl squid_unblock_badlang url_regex -i "/etc/squid/squidblock/badlang.unblock.txt" acl squid_block_entertain url_regex -i "/etc/squid/squidblock/entertain.block.txt" acl squid_unblock_entertain url_regex -i "/etc/squid/squidblock/entertain.unblock.txt" acl squid_block_games url_regex -i "/etc/squid/squidblock/games.block.txt" acl squid_unblock_games url_regex -i "/etc/squid/squidblock/games.unblock.txt" acl squid_block_pirate url_regex -i "/etc/squid/squidblock/pirate.block.txt" acl squid_block_mp3 url_regex -i "/etc/squid/squidblock/mp3.block.txt" acl squid_unblock_pirate url_regex -i "/etc/squid/squidblock/pirate.unblock.txt" acl squid_block_porn url_regex -i "/etc/squid/squidblock/porn.block.txt" acl squid_unblock_porn url_regex -i "/etc/squid/squidblock/porn.unblock.txt" acl squid_block_video url_regex -i "/etc/squid/squidblock/video.block.txt" acl squid_block_reklama url_regex -i "/etc/squid/squidblock/reklama.block.txt" acl squid_unblock url_regex -i "/etc/squid/squidblock/unblock.txt" acl squid_block url_regex -i "/etc/squid/squidblock/block.txt" acl squid_nu_block url_regex -i "/etc/squid/squidblock/nu_block" http_access deny nu squid_nu_block all http_access deny squid_block all http_access allow squid_unblock all http_access deny squid_block_badlang all http_access deny squid_block_entertain all http_access deny squid_block_games all http_access deny squid_block_mp3 all http_access deny squid_block_pirate all http_access deny squid_block_porn all http_access deny squid_block_video all http_access deny squid_block_reklama all http_access allow squid_unblock_badlang localnet http_access allow squid_unblock_games localnet http_access allow squid_unblock_pirate localnet acl bigfiles url_regex -i "/etc/squid/conf/bigfile.txt" acl image url_regex -i "/etc/squid/conf/image.txt" acl free_image_site url_regex -i "/etc/squid/conf/free_image_site" http_access allow image free_image localnet http_access allow image free_image_site localnet http_access deny bigfiles all http_access deny nobanners banners acl myusers proxy_auth REQUIRED http_access allow myusers refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 snmp_access allow localhost snmp_access deny all acl SSL_ports port 443 563 acl Safe_ports port 80 acl Safe_ports port 21 20 acl Safe_ports port 443 563 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny to_localhost http_access allow localnet http_access allow localhost http_reply_access allow all icp_access allow all coredump_dir /var/spool/squid http_access deny all maximum_object_size 10 MB cache_mem 20 MB
Рассмотрим некоторые параметры.
visible_hostname my_proxy - видимое имя нашего прокси
Настройки для повышения секворности:
log_mime_hdrs on - в логах будут видны все заголовки пользователей.
ignore_unknown_nameservers on - игнорирование неизвестных ДНС-серверов
connect_timeout 120 seconds - время ожидания ответа
half_closed_clients on - сброс сессий
forwarded_for off - скрыть внутренние IP
error_directory /etc/squid/error - каталог с HTML файлами которые будут высвечиваться в случае ошибок
cache_mgr admin@domai.ru - емаил администратора, который будет высвечиваться на окне ошибки у пользователя.
Порт и адрес, на которых будет работать squid для http и https соответственно:
http_port 10.12.0.12:3128
https_port 10.12.0.12:3128
Аутефикация юзеров в AD контроллера:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
Сети описываются для большей безопасности:
acl all src 0.0.0.0/0.0.0.0
acl localnet src 10.12.0.0/255.255.255.0 - ваша локалка
Задается блокирование баннеров:
acl nobanners src 0/0
acl banners url_regex "/etc/squid/conf/banners.acl"
в файле banners.acl содержиться распространненые адреса баннеров.
Для аськи нужны следующие правила:
acl ICQ_port port 5190
http_access allow ICQ_port localnet
По аналогии можно составить правила для любого клиента:
acl Jabber_port port 5222
http_access allow Jabber_port localnet
Этот правило описывает метод соединения клиентов к серверам аськи и других месенжеров:
acl CONNECT method CONNECT
Ниже идут правила (acl), которыми описываються доступы.
Данные для этих правил беруться из обычных текстовых файлов вида:
для списков пользователей :
user_name
user_name2
user_name2
Для списков сайтов:
host1
host.ru
host.domain.com
187.25.45.15
Пользователи, имеющие доступ ко всем ресурсам инета:
acl goodusers proxy_auth "/etc/squid/conf/good"
http_access deny goodusers banners
http_access allow goodusers
acl free_image proxy_auth "/etc/squid/conf/free_image" - если надо каким то юзерам открыть картинки в веб, нужно указать их логины в free_image
acl aolaccess dst "/etc/squid/conf/host.acl" в файле host.acl содержиться адреса сайтов, к которым нужен доступ даже заблокированим юзерам
acl banusers proxy_auth "/etc/squid/conf/user-deny" - здесь содержиться юзерыв которые превысили месячный трафик.
acl nu proxy_auth "/etc/squid/conf/naglyi_user" - здесь пользователи, которые окончательно потеряли совесть, им открыт доступ только к сайтам, описаным в host.acl
Бан юзеров и предыдущих правил:
http_access allow aolaccess banusers localnet
http_access deny banusers localnet
Блокирование сайтов, которые юзеры будут смотреть только дома:
acl squid_block_badlang url_regex -i "/etc/squid/squidblock/badlang.block.txt"
acl squid_unblock_badlang url_regex -i "/etc/squid/squidblock/badlang.unblock.txt"
acl squid_block_entertain url_regex -i "/etc/squid/squidblock/entertain.block.txt"
acl squid_unblock_entertain url_regex -i "/etc/squid/squidblock/entertain.unblock.txt"
acl squid_block_games url_regex -i "/etc/squid/squidblock/games.block.txt"
acl squid_unblock_games url_regex -i "/etc/squid/squidblock/games.unblock.txt"
acl squid_block_pirate url_regex -i "/etc/squid/squidblock/pirate.block.txt"
acl squid_block_mp3 url_regex -i "/etc/squid/squidblock/mp3.block.txt"
acl squid_unblock_pirate url_regex -i "/etc/squid/squidblock/pirate.unblock.txt"
acl squid_block_porn url_regex -i "/etc/squid/squidblock/porn.block.txt"
acl squid_unblock_porn url_regex -i "/etc/squid/squidblock/porn.unblock.txt"
acl squid_block_video url_regex -i "/etc/squid/squidblock/video.block.txt"
acl squid_block_reklama url_regex -i "/etc/squid/squidblock/reklama.block.txt"
acl squid_unblock url_regex -i "/etc/squid/squidblock/unblock.txt"
acl squid_block url_regex -i "/etc/squid/squidblock/block.txt"
acl squid_nu_block url_regex -i "/etc/squid/squidblock/nu_block"
http_access deny nu squid_nu_block all
http_access deny squid_block all
http_access allow squid_unblock all
http_access deny squid_block_badlang all
http_access deny squid_block_entertain all
http_access deny squid_block_games all
http_access deny squid_block_mp3 all
http_access deny squid_block_pirate all
http_access deny squid_block_porn all
http_access deny squid_block_video all
http_access deny squid_block_reklama all
http_access allow squid_unblock_badlang localnet
http_access allow squid_unblock_games localnet
http_access allow squid_unblock_pirate localnet
Файлы с адресами у меня создались автоматически при установке squid, только файлы block.txt и unblock.txt надо создать руками, в них блокированые и разблокированые сайты соответственно, имеют приоритет в данном конфиге над другими правилами.
acl bigfiles url_regex -i "/etc/squid/conf/bigfile.txt" - здесь описывается, какие файлы нужно блокировать по расширениям.
acl image url_regex -i "/etc/squid/conf/image.txt" - то же, но для картинок
acl free_image_site url_regex -i "/etc/squid/conf/free_image_site" - блокирование графики на сайтах
http_access allow image free_image localnet - разрешение графики для пользователей
http_access allow image free_image_site localnet - и разрешение сайтов где графика нужна
http_access deny nobanners banners - блокировка банеров, описаных выше
Заключающие правила, разрешающие всему оставшемуся пройти к пользователю:
acl myusers proxy_auth REQUIRED
;http_access allow myusers
Открытые порты, взяты из дефолта:
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21 20
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
Разрешения соединений на них:
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
http_access allow localnet
http_access allow localhost
http_reply_access allow all
Директория, где находиться ядро squid:
coredump_dir /var/spool/squid
Блокирование всего, что не прошло по правилам:
http_access deny all
Задание максимального объема обектов в кеше:
maximum_object_size 10 MB
Общий обем кеша:
cache_mem 25 MB
На этом кофигурация squid закончена, можно стартовать службу squid командой:
/etc/rc.d/init.d/squid start
Если осуществляется какое-либо изменение в файлах конфигурации или правил, то чтобы не перезагружать squid, используйте команду:
squid -k reconfigure
На этом статью заканчиваю, всем спасибо за внимание
Комментарии
Re: squid-авторизация в AD с контролем доступа к сайтам
https_port 10.12.0.12:3128 - в таком виде работать не будет! Не обманывай народ!
Re: squid-авторизация в AD с ...
В новых версиях будет
# TAG: http_port
# Usage: port
# hostname:port
# 1.2.3.4:port
Re: squid-авторизация в AD с ...
Исправил и дополнил статью, в своём блоге. fedoraway.blogspot.com
Re: Squid-авторизация в AD с контролем доступа к сайтам
Хорошая статья, вот тут я тоже написал статью http://www.artcom-ufa.ru/posts/2012/07/28/nastroika-squid по настройке squid на Debian lenny