Squid — мощный прокси сервер, имеющий просто огромнейшие возможности. Перечислять их все можно бесконечно долго. В сети имеется множество мануалов по его конфигам. Человеку не подготовленному, будет крайне тяжело разобраться в нем. Но мы попытаемся…
А попытаемся мы все сделать с помощью веб-интерфейса Webmin. Webmin для Squid не назовешь ягодкой. Он очень суров)) Поверьте. Вызывает только неприязнь.. но свое дело четко делает. Поэтому мы будем учится работать с ним, при этом объясняя, что изменяемые в веб-интерфейсе функции меняют в конфиге. Мы возьмемся за 3-й сквид, в составе Ubuntu Server 12.04 идет squid 3.1 — с ним и подружимся.
Итак приступим… сначала сквид нужно установить.
Через Webmin:
sudo apt-get install squid
Обновляем параметры Webmin и идем в настройки Squid:
Сначала в настройки модуля:
Здесь мы видим исчерпывающую информацию о настройках нашего прокси-сервера. Можете выставить все как у меня:
Чтобы увидеть сам конфиг squid воочию, введите команду:
nano /etc/squid3/squid.conf
Теперь понимаете, почему мы используем веб-интерфейс? :) Так проще осязать и управлять всеми возможностями squid.
Идем в меню — настройки кеша:
Устанавливаем максимальный размер кэша на винте, остальные параметры рекомендую оставить так как у меня, т.е. 16/256:
Далее идем в меню — использование памяти:
Выставляем следующие значения:
Ограничение использования памяти (объем ОП, используемой для хранения обрабатываемых объектов, cache_mem): 1024 мб (выделяйте свободной памяти не менее 50% и не более 75% от общего объема).
Размер кэша FQDN (размер кеша fqdn — полных доменных имен, fqdncache_size): 1024
Верхняя граница использования диска (в %, при достижении данного уровня заполнения кеша — начинается ускоренный процесс удаления старых объектов, cache_swap_high): 95%
Нижняя граница использования диска (процесс удаления старых объектов заканчивается, если достигнут данный уровень, cache_swap_low): 90%
Максимальный размер кэшируемого объекта (максимальный размер кешируемого объекта; увеличение параметра — экономит трафик, уменьшение — странички быстрее грузиться будут, maximum_object_size): 4096 кб
Верхняя граница использования кэша IP (верхний и нижний уровень заполнения IP кеша для алгоритма удаления старых объектов по LRU, ipcache_high): 95%
Нижняя граница использования кэша IP (верхний и нижний уровень заполнения IP кеша для алгоритма удаления старых объектов по LRU, ipcache_low): 90%
Размер кэширования адреса IP (размер кеша для IP адресов, ipcache_size): 1024
Далее, идем в настройки авторизации:
Тут мы можем установить, кому мы разрешаем пользоваться нашим прокси-сервером. Мы рассмотрим 2 простейших варианта авторизации: по IP, и по логину/паролю (basic).
Для авторизации по логину и паролю (создаем там учетку):
Потом заходим в «управление доступом» и добавляем правило:
Обратите внимание, расположение — имеет значение (менять его можно нажимая стрелочки вверх-вниз). Все, теперь доступна авторизация по пользователям.
Для авторизации по IP стоит вместо предыдущих двух пунктов, создать такой ACL:
Я думаю тут все понятно, разрешаем с такого-то по такой-то IP.
Все, теперь к проксе можно подключится только с определенного диапазона IP нашей сети.
Для блокировки сайтов/контента в интернете, создайте новый ACL:
В «ограничениях прокси» нужно создать правило (точно так же, как указано выше) и разместить его выше правила DFN (в нашем случае). Тогда, все указанные сайты в правиле banned будут заблокированы (блокировка будет проводится как по полному имени сайта, так и по ключевым словам. Например, в нашем случае, будут заблокированы все домены в состав которых входит слово «porno» и «sex»).
https
Поскольку протокол SSL какраз создан для того, чтобы соединение было прямое и без посредников — это мешает его блокировать сквидом напрямую. Решается это очень просто, для определенных пользователей, просто нужно заблокировать этот протокол. Создайте правило SSL >>> порт URL >>> запретить. Потом переместите его над DFN и под banned. Для таких пользователей будут недоступны все узлы по протоколу https. Есть, конечно, и множество других хитростей… но об этом вы лучше погуглите отдельно :)
Таким образом можно накручивать эти правила, сколько фантазии хватит. Фильтровать доступ к сайтам по пользователям и группам и прочее.
Краткие итоги
Не забывайте, что прокся у нас — не прозрачная (не transparent). Необходимо указать ее как шлюз для всех пользователей (можно вручную или с помощью DHCP), а потом еще настроить все отдельные программы дополнительно (браузеры, skype и icq). Немного муторно, зато это дает нам полнейший контроль над нашей IT инфраструктурой, давая практически безграничные возможности для администрирования.
Указанного в данной статье — достаточно, для нормальной работы прокси сервера. Если же вы хотите настроить его более тонко — милости прошу вас в Гугл) Там довольно много материала на эту тему, про конфиг сквида — в частности.
Удачной настройки! :)
Приветствую! Твой блог это збс, но серые буквы на черном фоне это вырвиглазная идея. Сделай плиз их хотя бы белыми, так текст читать легче.
День добрый. Ну, вообще то выходит, что серые буквы на сером фоне, и для глаз это очень щадящий режим. Белые буквы на темном фоне — вот это действительно зло, от них даже «рябить» начнет))
А вообще, все выполнено в «ВС стайл».
Наоборот, очень мягко читается. имхо.
Mr.s. прав, читать невозможно
авторизация по ip, это у тебя ведь не она, так? это просто разрешение ходить с таких то ip. а какже статистика посещений и тд.?
Отличная статейка, только вот блокировка https не работает. Вроде всё делаю правильно, по инструкции (всё остальное вроде ок), squid 3
В чём может быть проблема?
Правило создали, как написано? Разместили его в списке «выше» остальных?
Да, по всякому пробовал, и выше и ниже = \
Может получится через iptables закрыть 443й одной командой?