CentOS: Squid закручиваем гайки
В продолжении заметки о настройке squid, мы немного закрутим гайки нашим пользователям.
Мы уже настроили наш proxy-сервер, он работает, выпускает пользователей в интенет, но пока, они могут делать всё что захотят, что не есть хорошо. Соответственно сегодня мы закроем им доступ на «злокачественные» сайты, запретим скачивание файлов и порежем баннеры. Хочу отдельно упомянуть социальные сети. Лично у меня нет какого то предрассудка на тему того что они должны быть закрыты, так же как таких мыслей нет и у моего руководства (ну кроме ситуаций, когда пользователь злоупотребляет ими). Тем более что исследования говорят о том что человек работает на 10-15% лучше, если его не ограничивать в доступе к социальным сетям (к сожалению, не могу найти пруф линк :(). Соответственно схема работы с соц.сетями у меня такая: доступ к ним открыт во внерабочее время, т.е. с 19-00 до 10-00 и в обеденный перерыв с 13-00 до 14-00. Я считаю что этого вполне достаточно что бы все были счастливы.
И так, переходим к настройке. Править мы будем всё тот же конфигурационный файл squid`а
korp # nano /etc/squid/squid.conf
всё в той же секции # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS добавляем правила:
acl full-access src 10.211.55.10 acl work_time time 09:00-13:00 14:10-19:00 acl bad_url url_regex "/etc/squid/acl/bad_url" acl social url_regex "/etc/squid/acl/social" acl upload url_regex "/etc/squid/acl/upload" acl filetypes urlpath_regex -i "/etc/squid/acl/filetypes" acl baners urlpath_regex -i "/etc/squid/acl/baners"
думаю work_time уже не вызывает вопросов, а вот bad_url, social, upload, filetypes, banners это файлы, куда мы будем добавлять нежелательные сайты, расширения файлов и т.д. дабы это дело не копилось у нас в конфигурационном файле. full-access это компьютеры, которым разрешён полный доступ (если по простому — начальство, которому ничего не запрещено).
Создаём директорию, в которой данные файлы у нас будут храниться
korp # mkdir /etc/squid/acl
Содержимое файлов примерно такое:
/etc/squid/acl/bad_url
.prostitutki.ru
/etc/squid/acl/social
.vkontakte.ru .odnoklassniki.ru .odnoklasniki.ru
/etc/squid/acl/upload
.depositfiles.com .mediafire.com
/etc/squid/acl/filetypes
\.(exe)$ \.(zip)$ \.(rar)$ \.(mp3)$ \.(avi)$ \.(wav)$ \.(mpg)$ \.(mpeg)$ \.(torrent)$
/etc/squid/acl/baners
88x31.*gif 100x80.*gif 100x100.*gif 120x60.*gif 179x69.*gif 193x72.*gif 468x60.*gif
Возвращаемся к конфигу squid`а и добавляем
http_access deny bad_url !full-access http_access deny social work_time !full-access http_access deny upload !full-access http_access deny filetypes !full-access http_access allow our_networks http_access allow full-access
Первые 4 правила запрещают доступ к нашим «неугодным» сайтам и файлам, для всех, кроме группы full-access, последние 2 правила разрешают доступ ко всему остальному, что не перечислено нами в качестве запрета.
Сохраняем, делаем
korp # service squid reload
и проверяем как всё работает — проблем возникнуть не должно. Это лишь достаточно обобщённый пример настройки. Вполне возможно что вам понадобиться более гибкая настройка правил, но я не могу учесть всех возможных вариантов и считаю что данный how-to + man помогут решить вашу задачу в полном объёме.
привет)
у меня авторизация ntlm идет…
Вот часть squid.conf
acl squid_users_group external NT_global_group squid_proxy
http_reply_access allow all
acl work_time time 08:00-13:00 14:00-20:00
acl bad_url url_regex «c:/squid/acl/bad_url.txt»
acl social url_regex «c:/squid/acl/social.txt»
acl upload url_regex «c:/squid/acl/upload.txt»
acl filetypes urlpath_regex -i «c:/squid/acl/filetypes.txt»
acl baners urlpath_regex -i «c:/squid/acl/baners.txt»
http_access deny social work_time squid_users_group
http_access deny bad_url squid_users_group
http_access deny upload squid_users_group
http_access deny filetypes squid_users_group
http_access allow squid_users_group
проблема в том,что ,если пользователь пытается зайти на сайт , находящийся в запрете (social), то выходит окно с просьбой авторизоавться…. как сделать,чтобы без этого окна, сразу окно — «доступ закрыт» выходило?
спасибо
Скорее всего не верно настроен ntlm. Возможно в windows есть свои заморочки — не знаю — не пробовал и не собираюсь 🙂 Смотрите что он пишет в лог, попробуйте отключить basic аутентификацию.
нет) htlm норм работает)
просто до этого без правил было… пускал всех на все сайты… авторизовывал автоматом, не запрашивая логин-пароль.
сейчас так же только на те сайты, на которые разрешено ходить…
а на запрещенные выдает окно с логин-паролем… (((
Возможно дело в windows, как я уже сказал. С linux я таких проблем не встречал, если deny, значит deny.
Но я бы всё-таки проверил Ntlm — html_auth —username=user, после ввода пароля смотреть что он скажет.