Установка настройка squid windows

Установка настройка squid windows

Прокси-сервер Squid — самый популярный и хорошо зарекомендовавший себя прокси-сервер. Реализации Squid существуют практически под все платформы UNIX/Linux и в том числе под Windows 2000/XP/2003/Vista/2008 (разумеется, бесплатные).

Поскольку пакет Squid для Windows не имеет собственного инсталлятора и его настройка сопряжена с редактирование текстовых файлов конфигурации, это вызывает определенные трудности.

Шаг 1. Загрузка и распаковка дистрибутива Squid.

Загружаем файл squid-2.7.STABLE4-bin.zip с нашего сервера или другую версию с другого сервера. И распаковываем содержимое архива в c:\squid:

Конфигурационные файлы Squid расположены в папке etc. Заходим туда и создаем собственные файлы конфигурации путем копирования оригинальных файлов конфигурации. Т.е. файл:
— squid.conf.default необходимо скопировать в файл squid.conf
— cachemgr.conf.default необходимо скопировать в файл cachemgr.conf
— mime.conf.default необходимо скопировать в файл mime.conf

Шаг 2. Настройка конфигурационного файла squid.conf

Если вы распаковали файлы в папку, отличную от c:\squid, вам необходимо найти и изменить следующие параметры:
— cache_dir (папка для хранения кэша)
— access_log (путь к лог-файлу, региструющий WEB-запросы клиентов)
— cache_log (путь к лог-файлу, в котором появляется общая информация о работе прокси-сервера)
— cache_store_log (путь к лог-файлу для storage manager’a, отображающий поведение объектов в кэше

Кроме того, возможно, вам потребуется изменить другие параметры, связанные с абсолютными путями. Эти параметры можно легко найти по фразе ‘c:/squid/’ в файле конфигурации.

Настройка ACL (access control list) — обширный вопрос, требующий отдельной статьи. Заметим, что по-умолчанию, оригинальный конфигурационный файл Squid разрешает обслуживание пользователей для приватных сетей (т.е. пользователи 192.168.0.0/16, 172.16.0.0/12 и 10.0.0.8/8 уже имеют возможность пользоваться прокси-сервером).

И наконец, если вы хотите включить режим «прозрачного» кэширования, вам необходимо добавить опцию «transparent» к параметру http_port. В итоге, строка с параметром http_port может выглядить следующим образом:

Шаг 3. Подготовка и запуск службы Squid

Перед первым запуском Squid необходимо создать папки для хранения кэша. Для этого в командной строке необходимо выполнить команду:

Спустя несколько секунд (а может быть и больше — в зависимости от заданного объема кэша) Squid завершит создание собственного кэша. Далее необходимо установить службу Squid из командной строки:

А затем запустить службу Squid:

net start squid

Теперь служба Squid будет работать как сервис Windows (т.е. автоматически запускаться при старте Windows до входа пользователя в систему).

Прокси-сервер Squid готов к обслуживанию запросов на порту 3128 вашего компьютера.

Прокси Squid под Windows

Решил написать мини-обзор по установке и настройке прокси-сервера Squid под Windows. Сразу хочу сказать, что статья рассчитана на начинающих, которые хотят познакомиться со Squid как таковым, поэтому прошу все коменты типа «фи, как это можно юзать под виндой» оставить при себе.

Для ценителей истинного Squid прошу пожаловать в наш специальный обзор на эту тему — Прокси Squid на Linux с авторизацией в Active Directory. А пока разберем более простой вариант. Конечно, версия под Windows не так хороша как под родные unix-like системы, но для первого знакомства подойдет.

Прокси бывает очень полезен, когда нужно несколько разграничить доступ в интернет либо просто выпусить в интернет несколько компов, а скорость подключения оставляет желать лучшего. Прокси обычно устанавливают на отдельный комп, чаще всего на тот, который собственно и «раздает» интернет в локальную сеть, браузеры других компов настраивают на работу с этим прокси-сервером. Далее уже на прокси пишутся правила: кому и когда на какие сайты ходить можно, куда ходить нельзя, что можно скачивать, что нельзя и т.д. Вариантов бесконечное множество.

Итак, Squid — это кэширующий прокси с внушительным набором функций. Распространяется по лицензии GNU GPL (читай бесплатно). Немного о Squid можно почитать в Wiki. Готовые к скачиванию дистрибутивы под винду можно найти на официальном ресурсе здесь. Крайняя стабильная версия Squid — 2.7, разрабатываемая версия — 3.0, при этом под unix-like платформы 3.0 уже идет как резиная версия, а под Windows как Beta из-за некоторых проблем с адаптацией под винду. По этой причине для знакомства мы рекомендуем воспользоваться именно версией 2.7.

Надеюсь, что пока никаких вопросов нет, поэтому давайте скачаем дистрибутив и займемся установкой. После загрузки распаковываем архив в котором будет папка squid. Помещаем эту папку прямо на диск С. Должно получиться так, чтобы в папке C:squid находились все подпапки типа etc, bin, sbin и пр. Кто-то спросит нафига там столько подпапок? Отвечаем: в отличие от Windows, в которой программа чаще всего распологается в одном каталоге, в unix-like системах каждый каталог предусмотрен под какие-то определенные нужды. Один каталог — под файлы настроек для всех установленных программ, второй каталог — под исполняемые файлы всех программ, третий каталог — плагины, четвертый — логи и т.д. Т.е. разные файлы одной программы хранятся сразу в нескольких папках. Пока нам надо усвоить то, что исполняемый файл Squid находится в каталоге sbin, файл настроек в каталоге etc, а все логи будут записываться в каталог varlog.

Читайте также:  Как удалить файл windows old windows 10

Самое главное что нам нужно сделать — это написать конфигурационный файл. В папке etc есть файл squid.conf.default копируем рядом и переименовываем копию в squid.conf. Должно получиться вот так:

После этого аналогичным образом копируем:
mime.conf.default в mime.conf и cachemgr.conf.default в cachemgr.conf.Открываем squid.conf в любом текстовом редакторе, например, в блокноте и стираем всё, чтобы у нас получился пустой файл, сохраняемся. mime.conf и cachermgr.conf трогать не нужно.

Прокси работает следующим образом: в настройках каждого браузера на компах локальной сети устанавливается опция с IP-адресом и портом прокси, например вот так (адрес моего прокси-сервера 192.168.1.2 и порт 3128):

Т.о. весь web-трафик от браузеров идет на указанный адрес, Squid в свою очередь передает эти запросы от своего имени в интернет. Входящий трафик из интернета попадает сначала на прокси и потом переадресовывается в локальную сеть клиентскому браузеру. Эта схема распространена повсеместно, но у нее есть один очевидный недостаток — все браузеры нужно руками настраивать на работу с прокси-сервером, иначе доступа в интернет не будет вообще. У прокси есть второй режим работы, называемый transparent, т.е. прозрачный. В прозрачном режиме в браузерах вообще ничего настраивать не нужно, как будто и нас нет никакого прокси. В этом случае все запросы идут на шлюз по умолчанию, коим должен являться маршрутизатор, раздающий интернет в локальной сети. На маршрутизаторе нужно добавить правило перенаправления, чтобы все web-запросы шли на комп с прокси. Этот вариант более интересный, однако здесь требуется дополнительная настройка маршрутизатора. К тому же Squid по Windows не поддерживает функцию прозрачного проксирования, поэтому мы пока не будем рассматривать этот вариант.
Вернемся к нашему пустому файлу конфигурации. Первым делом нам надо указать на каком IP-адресе и порту будет работать прокси. IP-адрес берется адрес компа в локальной сети (пусть у нас он будет 192.168.1.2), а порт в принципе можно выбрать любой, но обычно придерживаются стандартных значений, коими являются 3128 или 8080. Пишем в файл строку:
http_port 192.168.1.2:3128
Еще Squid любит, чтобы ПК, на котором он установлен как-то назывался. Для этого в конфиурационный файл нужно добавить строку visible_hostname [имя]. Мы напишем так:
visible_hostname myproxy
Решение о том, какой трафик и куда пропускать или запрещать принимается на основании правил, которые в свою очередь строятся из списков доступа.

Сейчас мы определим несколько списоков доступа и сделаем одно правило. В данном случае значение слова «список» нужно понимать несколько иначе: одна строка, которая начинается со слова acl это и есть один список. Две строки — два списка, много строк acl — списки. Общий синтаксис для списков выглядит вот так:
acl [имя_списка] [тип параметра] [параметр 1] [параметр 2] … [параметр n].
Первым идет служебное слово acl, затем имя списка. Имя может быть произвольным за одним исключением, о нем чуть позже. Тип параметра — чаще всего используются значения src (источник) или dst (получатель). Параметры — это кокретные значения, которые относятся к src или dst.
В конфигурационном файле обязательно должен присутствовать как минимум один список доступа, который описывает всех клиентов прокси. Все клиенты обозначаются стандартным словом all. В итоге наша первая команда дорожна выглядеть вот так:
acl all src 0.0.0.0/0.0.0.0
В данном случае 0.0.0.0/0.0.0.0 обозначает любые адреса и маски. Затем определим нашу локальную сеть, список назовем LAN:
acl LAN src 192.168.1.0/255.255.255.0
Следующий список доступа будет описывать у нас тип проходящего трафика. Для начала мы возьмем обычный HTTP-трафик, который передается по 80-му и 443 портам. В следующей строке пишем:
acl HTTP port 80 443
И теперь напишем правило, которое будет разрешать хождения HTTP-трафика со всех компов нашей локальной сети. Правила обозначаются командой
http_access [allow (разрешить) или deny (запретить)] [перечисление имен списков доступа через пробел].

Мы напишем вот такое правило:
http_access allow LAN HTTP
Надо сказать еще одну важную вещь. Когда мы пишем перечисление нескольких параметров через пробел, то нужно знать, что в списках доступа каждый пробел понимается как «ИЛИ», а в правилах доступа как «И». Например, наше написанное правило звучит так: доступ (http_access) разрешить (allow) если пакет с данными можно отнести к списку доступа LAN И в тоже самое время пакет можно отнести к списку доступа HTTP. А вот список доступа HTTP будет звучать так: пакет данных идет на порт 80 ИЛИ на порт 443. Это нужно понимать, чтобы правильно составлять списки доступа и правила. Когда пишем списки доступа, то можно их писать в любом порядке, а вот очередность написания правил играет ключевую роль. Пакет с данными обрабатывает до первого правила, под котрое он подходит по своим параметрам.
Далее я покажу простой пример ограничения доступа в интернет. Например, на компом с адресом 192.168.1.10 у нас сидит работник, которому нужно ограничить доступ. Нет ничего проще. Сначала пишем список доступа:
acl Vasya src 192.168.1.10
После этого нужно создать правило блокировки и поместить его до того правила, которое разршает доступ и интернет всем компам локальной сети. В итоге оба правила должны выглядеть так:
http_access deny Vasya
http_access allow LAN HTTP
Мы прописали самые необходимые вещи, теперь конфигурационный файл можно сохранить. Целиком он должен выглядеть вот так:

Читайте также:  Windows user desktop path variable

http_port 192.168.1.1:3128
visible_hostname myproxy

acl all src 0.0.0.0/0.0.0.0
acl LAN src 192.168.1.0/255.255.255.0
acl HTTP port 80 443
acl Vasya src 192.168.1.10

http_access deny Vasya
http_access allow LAN HTTP

Далее нам нужно сформировать каталоги для хранения кэша. Делается это просто: в командной строке надо набрать
С:squidsbinsquid.exe -z

После этого установим Squid в качестве службы Windows, набрав
С:squidsbinsquid.exe -i

Теперь идем в Панель управления/Администрирование/Службы, ищем там Squid и запускаем его. Остается настроить какой-нибудь браузер на наш прокси-сервер и проверить работоспособность.

По мере сил и возможностей мы периодически дополняем и редактируем этот обзор.

Если вам хочется иметь функциональность Squid, но нет сил/времени/навыков настраивать всё это — обязательно посмотрите другие альтернативы — BlockAdultProxy или 3proxy

Установка и настройка прокси-сервера Squid

Squid – самый популярный HTTP-прокси сервер для кэширования и перенаправления. Он широко используется различными компаниями для кэширования веб-страниц с веб-сервера для повышения скорости работы последнего, снижения времени ответа и ограничения использования пропускной способности сети. В данном руководстве мы рассмотрим установку прокси-сервера squid и его использование в качестве HTTP-прокси сервера.

Установка прокси-сервера Squid

Прежде чем начать, стоит отметить, что сервер Squid не требует значительных ресурсов, но использование оперативной памяти может изменяться в зависимости от количества клиентов, осуществляющих доступ в интернет через прокси-сервер.

Пакет Squid доступен в стандартном репозитории
В Ubuntu/Debian

Запустите его и задайте запуск при загрузке:

После этого можно проверить статус службы:

Важные файлы Squid располагаются в следующих директориях:

Файл конфигурации: /etc/squid/squid.conf
Журнал доступа: /var/log/squid/access.log
Журнал кэша: /var/log/squid/cache.log

Файл конфигурации по умолчанию содержит ряд директив, при помощи которых осуществляется управление работой сервера. Для внесения изменений откройте файл любым текстовым редактором.

В нем довольно много параметров, мы рассмотрим самые важные из них.

http_port порт HTTP-прокси сервера, по умолчанию 3128. Для безопасности рекомендуется сменить его на другой.
visible_hostname Параметр используется для определения имени узла сервера Squid. Можно задать любое имя.

Также можно указать параметр intercept (или transparent для старых версий), например, http_port 3128 intercept. В этом случае ваш сервер будет работать как прозрачный прокси (без необходимости настраивать его использование на стороне клиента).

Для последующего понимания работы прокси, нужно понять следующие параметры

http_access-Данный параметр регулирует доступ к HTTP-прокси серверу. С помощью него можно разрешить или запретить доступ через сервер как к определенным ресурсам в интернете, так и определенным группам пользователей.
В данный момент любой доступ запрещен (deny all). Чтобы начать использование сервера, нужно изменить ее, например, на http_access allow all (разрешить любой доступ). Параметр all можно заменить на имя списка доступа, которые мы рассмотрим чуть ниже.
acl(access control list) — В этом параметре указываются ресурсы в интернете, порты, ip адреса пользователей, локальные сети. В общем это список к которому будут применяться различные правила. Таких списков может быть неограниченное количество.

После внесения изменений нужно перезапустить Squid следующей командой:

Настройка Squid как HTTP-прокси

В данном разделе мы рассмотрим настройку Squid в качестве HTTP-прокси, использующий для аутентификации только IP-адрес клиента.
Общий синтаксис в прокси выглядит следующим образом

При описании контроля доступа можно использовать оператор отрицания «!». Например следующая строка запрещает доступ ко всем портам, кроме описанных в листе Safe_ports

Добавление списков контроля доступа

Рассмотрим создание списков доступа acl подробнее. По умолчанию уже есть преднастроенный acl localnet

Вы можете его отредактировать или удалить. Создадим новый acl

Добавьте правило следующего вида:

Где boss — имя списка контроля доступа, src — параметр, задающий адрес источника (source), а XX.XX.XX.XX — IP-адрес машины клиента (можно также указывать подсети или диапазоны). Новые списки контроля доступа нужно добавлять в начало раздела ACL. Аналогичным образом можно создавать списки доступа с ограничением по адресу места назначения (параметр dst вместо src), а также использовать вместо адресов доменные имена (srcdomain для источника, dstdomain для места назначения).

Очень желательно рядом с ACL указывать комментарий с кратким описанием пользователя этого IP-адреса, например:

После этого нужно разрешить доступ для boss:

Чтобы изменения вступили в силу, нужно перезагрузить Squid.

Открытие портов

По умолчанию в конфигурации Squid разрешено использование только определенных портов.

Если требуется использование дополнительных портов, можно задать их в файле конфигурации:

Где XXX — номер порта, использование которого нужно разрешить. Снова желательно пояснять ACL комментарием.

Не забываем перезапустить Squid для применения настроек

Работа прокси в прозрачном режиме

Как уже было сказано, прозрачный режим предполагает автоматическую работу прокси-сервера без необходимости в явном виде указывать его на клиентских машинах. В общем случае клиент может вообще не знать, что работает через прокси. Это может быть полезным для обеспечения анонимности, ограничения доступа к некоторым сайтам и даже экономии сетевого трафика, так как прокси-сервер может сжимать данные.

Помимо уже рассмотренной выше опции intercept в параметре http_port файла конфигурации, для обеспечения правильной работы прозрачного прокси требуется соответствующим образом настроить маршрутизатор. Чтобы все входящие и исходящие запросы на порт 80 перенаправлялись на порт, используемый прокси-сервером.

Читайте также:  Как разрешить все действия windows

В случае использования iptables нужно добавить следующие правила (в рассматриваемом примере eth1 — внутренний интерфейс, eth0 — внешний, SQUID_IP — IP-адрес прокси-сервера):

Аутентификация клиента

Cоздадим файл passwd для хранения имени пользователя для аутентификации. Сквид работает как пользователь squid, поэтому он должен быть владельцем файла.

Создадим нового пользователя ivan и установим ему пароль.

Для задания базовой HTTP-аутентифркации откройте файл конфигурации Сквид в текстовом редакторе:

И пропишите следующие директивы после ACL портов:

Чтобы применить изменения, сохраните файл и перезапустите Сквид. Теперь при попытке получить доступ в интернет необходимо будет ввести логин с паролем

Настройка параметров кэширования

Одна из важных функций прокси-сервера — кэширование веб-страниц для разгрузки веб-сервера и ускорения доступа. Сквид поддерживает два типа кэша, в оперативной памяти и на жёстком диске.

Кэш в оперативной памяти настраивается следующими параметрами:

cache_mem 1024 MB — выделенный для кэширования объем памяти
maximum_object_size_in_memory 512 KB — максимальный размер объекта в кэше

Параметры кэша на жёстком диске задаются следующей директивой:

Размер указывается в мегабайтах, ур_1 и ур_2 — количество директорий первого и второго уровня, соответственно, например:

Аналогично кэшу в памяти при помощи следующего параметра указывается максимальный размер объекта в кэше на диске:

Ограничение скорости

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

Для реализации ограничения скорости Сквид использует механизм пулов задержки (delay pools). Пулы задержки можно условно представить в виде ёмкости, которая “заполняется” данными, и после этого “выпускает” их только с определенной скоростью. Количество пулов задаётся в файле конфигурации следующим образом:

Каждый пул имеет номер (от 1 до заданного количества), а также класс. Классы реализуют многоступенчатую структуру ограничения:

1 класс — общее ограничение
2 класс — общее ограничение и ограничения для подсетей
3 класс — общее ограничение, ограничения для подсетей и ограничения для отдельных ip-адресов

Классы пулов задаются директивой delay_class, в качестве аргументов которой передаются номер пула и класс.

Параметры пулов задаются директивой delay_parameters и описывают максимальный объем пула и ограничение на каждый уровень (в байтах) в зависимости от класса. Например, параметры для пула 1 класса с номером 1:

Будут означать, что после получения первых 256 Кб запроса на максимальной скорости скорость будет ограничена 64 Кб/с, то есть 512 Кбит/с.

Для 2 класса и выше аналогичным образом задаются ограничения для подсети, отдельного адреса и т.д., например следующая директива ограничивает общую скорость до 8 Мбит/с, а скорость для подсети после первых 256 Кб запроса — до 512 Кбит/с.

Чтобы задать пулы задержки для определенных списков контроля доступа, используется директива delay_access, содержащая номер пула, параметр allow или deny и имя списка, например:

для примера создадим два пула, 1 и 2 класса:

Теперь пользователи из листа office1 будут иметь скорость доступа в интернет в соответствии с delay_parameters 1.
Создаем 2-й класс

Это означает, что пользователи acl office2 ограничены общей скоростью на всю сеть в 512 кбит, но при этом отдельные пользователи в этой сети ограничены после первых 256 Кб, скоростью в 64 кбит
Проверим на сайте speedtest.net, работу ограничений

Как видите скорость загрузки действительно ограничена приблизительно до 256 кбит. Обратите внимание, что сквид ограничивает только скорость отдачи от него, т.е скорость загрузки пользователя. На скорость отдачи от пользователя ограничение не действует.

Блокировка веб-сайтов

Для блокировки доступа к нежелательным веб-сайтам сначала создайте файл с “черным списком”:

Теперь в этот файл нужно добавить сайты, к которым требуется заблокировать доступ. Например заблокируем доступа к одноклассникам и вконтакте:

Точки перед именами указывают Сквид блокировать все ссылки на эти сайты, в том числе www. vk.com, subsite.vk.com и т.д.

Далее нужно открыть файл конфигурации

И добавить список контроля доступа по доменным именам, указанным в файле, а также правило, запрещающее доступ для этого списка:

Обратите внимание на порядок расположения правил, правила доступа выполняются сверху вниз. Поэтому запрещающее правило расположено выше разрешающего
Сохраните файл и перезапустите Squid:

Теперь при попытке получить доступ к сайтам из списка, пользователь получит предупреждение

Блокировка по маске

Можно осуществлять блокировку не только по именам сайтов, но и по маске. Т.е. заблокировать доступ в сайтам, в которых есть определенное сочетание букв. Аналогичным образом создаётся файл со списком запрещенных ключевых слов:

Далее в него добавляются ключевые слова, например:

Откройте файл конфигурации и внесите в него следующие список контроля доступа и правило:

А затем сохраните файл и перезапустите Сквид:

Теперь, все сайты в названии доменов которых встречаются facebook, instagram, gmail будут заблокированы.

Заключение

Squid — очень мощное решение для создания прокси-сервера, обладающее огромными возможностями, значительной гибкостью и применимое практически в любой сети, от небольшого офиса до крупной корпорации. Мы охватили наиболее важные функции и параметры конфигурации Squid. Для получения более подробной информации о его конфигурации можно обратиться к официальной документации.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оцените статью