Squid как установка и настройка



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

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

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

Пакет Squid распространяется по свободной лицензии GNU General Public License и имеет следующие основные возможности:

  • Контроль доступа к сети Интернет. Ограничение доступа для групп или отдельных пользователей, доступ по расписанию, доступ к ограниченному числу ресурсов или создание “запрещённого списка” сайтов — для регуляции доступа сотрудников к “развлекательным” сайтам в рабочее время и защиты от проникновения во внутреннюю сеть посторонних клиентов;
  • Контроль трафика. Множество вариантов настройки, позволяющие серверу обеспечивать доступ максимальному количеству клиентов без перегрузки возможностей сетевого оборудования, в том числе отдельные конфигурации для разных видов трафика. Организация открытой точки wi-fi без боязни за возможную нестабильность сети. Возможность выдавать отдельным клиентам или группам ограниченного объема трафика для работы;
  • Мониторинг использования сетевых ресурсов. Различные статистические данные, которые собирает Squid, и созданные для него расширения будут незаменимы для оптимизации локальной сети, анализа нагрузки, исследования причин возможных сбоев сети и обнаружения атак на локальную сеть компании;
  • Обратное кэширование. Возможность работы в режиме “обратного прокси” или “ускорителя” — для существенного снижения нагрузки на сервер путем кэширования запросов, к которым идет больше всего обращений от пользователей.

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

Настройка локальной сети

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

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

Приведём его к следующему виду:

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

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

Полученные данные будут иметь примерно следующий вид:

По этим данным ясно, что у сервера имеется два сетевых интерфейса, eth0 и eth1, с IP-адресами 185.22.174.75 для eth0 и 192.168.0.1 для eth1. К адаптеру eth0 подключен кабель интернет-провайдера, а к адаптеру eth1 будут подключены компьютеры локальной сети.

Настройка DHCP

На данном этапе уже есть возможность указать на локальной машине статический IP-адрес из локальной подсети, например 192.168.0.2, наш сервер (192.168.0.1), в качестве шлюза, и DNS-сервер. Компьютер будет подключен к локальной сети.

Но система статических IP-адресов имеет свои недостатки: необходимо настраивать каждую машину для подключения к локальной сети, возможен конфликт одинаковых IP и тому подобное.

Поэтому следующим этапом будет настройка механизма автоматической трансляции IP-адресов через DHCP. В таком случае при подключении к сети нового компьютера все настройки будут переданы ему автоматически.

Для установки сервера DHCP используется команда:

Файл конфигурации по умолчанию находится в /etc/dhcp/dhcpd.conf, откроем файл в редакторе с помощью команды:

В большинстве случаев минимальная настройка производится внесением блока вида:

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

Теперь все клиенты локальной сети будут получать все настройки автоматически при подключении.

Настройка NAT

После организации локальной сети необходимо подключить её к Интернету — для этого реализуется трансляция сетевых адресов (Network Address Translation или NAT). Благодаря NAT несколько компьютеров могут выходить в интернет, используя один IP-адрес.

В Ubuntu механизм NAT реализуется с помощью сетевого фильтра iptables, который одновременно является брандмауэром.

Для автоматической загрузки настроек iptables при старте системы создадим новый пустой конфигурационный файл командой:

И откроем его для изменения:

Варианты конфигурации брандмауэра зависят от политики сетевой безопасности в компании. Минимальный набор настроек выглядит следующим образом:

После сохранения изменений обеспечим для файла права на исполнение:

Далее необходимо поставить созданный файл на автозагрузку при включении сервера. Для этого откроем рассмотренный ранее файл interfaces:

и добавим в самый низ строку:

Перезагрузим сервер для автоматического применения новых настроек:

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

Для инсталляции Squid используется команда:

Когда установка завершится, сервис запустится автоматически.

Перейдём к настройке. Файл конфигурации расположен по адресу /etc/squid3/squid.conf. Для неподготовленного пользователя он может показаться совершенно необъятным — в нём более 7000 строк. Большая часть из них закомментированы и описывают значительную часть всех возможных вариантов работы Squid.

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

При необходимости перед началом настройки можно обратиться к официальной документации проекта.

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

Основной инструмент настройки Squid — это списки контроля доступа или ACL (Access Control List). ACL объявляются директивой, имеющей следующий синтаксис:

acl имя параметр элементы_списка

Параметр даёт серверу понять тип элементов списка. АCL с параметром port содержит номера портов, а с параметром src — ip-адреса, с которых на сервер поступает запрос. Полный список параметров весьма обширен и доступен в официальной документации.

Таким образом, строка

добавляет в список Safe_ports, содержащий элементы типа “порт”, новое значение 80.

Директива http_access, имеющая формат

http_access указание имя_acl

определяет правила работы с элементами указанного acl. Например, строка:

блокирует все порты, не входящие в список Safe_ports.

По умолчанию доступ к Squid разрешен только с самого сервера:

Чтобы открыть доступ клиентам локальной сети создадим для них новый список доступа c параметром src:

И разрешим доступ:

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

Минимальная настройка конфигурационного файла Squid завершена, теперь можно перейти к описанию политики информационной безопасности.

Параметр src позволяет регулировать доступ для клиентов со статичными ip-адресами:

Параметр dst позволяет указать список ip-адресов назначения, к которым клиент желает получить доступ:

Параметр dstdomain даёт возможность указывать домен, к которому выполняется запрос:

Если необходимо указать домен источника, используется параметр srcdomain .

Параметры srcdom_regex и dstdom_regex позволяют использовать в ACL регулярные выражения:

Ключ -i необходим для игнорирования регистра символов в регулярных выражениях:

acl имя [-i] url_regex элементы_списка

С помощью параметра url_regex возможно указать шаблон регулярного выражения для URL:

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

Ограничение пользователей по времени осуществляется с помощью параметра time :

acl имя time дни чч:мм-ЧЧ:ММ

Где день: M — Понедельник, T — Вторник, W — Среда, H — Четверг, F — Пятница, A — Суббота, S — Воскресенье.

Важно отметить что время начала промежутка должно быть всегда меньше времени конца. Например, возможно указать вариант 00:00-23:59, но промежуток 20:00-09:00 придётся разбить на 20:00-23:59 и 00:00-09:00.

Ограничения по времени можно комбинировать и с другими правилами. Есть возможность по расписанию разрешать или запрещать доступ к просмотру определённых сайтов, открывать и закрывать порты, управлять доступностью IP-адресов и отдельных доменов. Например:

Параметр proto позволяет указывать протокол передачи информации:

acl имя_acl proto список

Используя его можно запретить пересылку файлов по протоколу ftp:

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

На сегодняшний день, когда ушли в прошлое каналы с пропускной способностью в 256 кбит/с и менее, можно ошибочно предположить что устанавливать ограничения по скорости соединения в случае небольшого количества клиентов локальной сети бессмысленно. Тем не менее, очень желательно устанавливать хотя бы самые простые правила регулирования скорости соединения для отдельных пользователей, чтобы избежать перегрузки сети и нехватки ресурсов для отдельных пользователей, для которых важна хорошая скорость работы сети. Подводные камни могут скрываться в следующих процессах:

  • автоматическое резервное копирование данных с сервера компании и прочие процессы передачи больших объемов данных, выполняющиеся сервером по расписанию;
  • операции передачи файлов для личных и рабочих нужд, особенно своей способностью использовать все доступные сетевые ресурсы известен протокол BitTorrent;
  • технические неисправности в отдельных компьютерах и программах, а так же действия вредоносных программ;
  • злонамеренные сетевые атаки на отдельные компьютеры локальной сети.
Читайте также:  Фильтровентиляционная установка защитного сооружения

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

Работу пулов регулируют три директивы: delay_class , delay_parameters , delay_access .

Количество пулов устанавливает директива delay_pools:

Создадим несколько пулов:

Пулы могут быть трёх классов:

  • Один кран на всю сеть ограничивает поток воды;
  • Весь поток ограничен одним краном, после которого идут отдельные персональные краны(для каждого IP-адреса сети);
  • Весь поток ограничен одним краном, от которого идут отдельные краны для каждой группы пользователей(подсети), каждый из которых, в свою очередь, делится на персональные краны для каждого клиента(для отдельного IP-адреса).

Класс пула должен быть указан в директиве delay_class :

delay_class номер_пула класс_пула

Укажем класс пула:

Директива delay_parameters устанавливает параметры пула:

delay_parameters номер_пула параметры

Формат записи параметров зависит от выбранного класса пула:

Для пула №1 выбран класс 1, установим для него скорость передачи данных в 512 кбит/с:

Запись параметра производится по следующим правилам: сперва указывается ограничение скорости, затем указывается лимит, после которого это ограничение начинает действовать. Таким образом значение параметра 64000/64000 говорит о том, что после того, как пользователь скачал на максимальной скорости первые 64Кб запроса, на клиента накладывается ограничение скорости в 512 Кбит/с. Удобно устанавливать второе значение параметра несколько больше чем первое, например конфигурация:

позволяет пользователю получить первые 256Кбайт запроса на максимальной скорости и только потом ограничить клиента шириной канала в 512 Кбит/с.

Для снятия ограничений по скорости используйте значение -1, например:

Теперь можно распространять действие пула на отдельных клиентов сети при помощи директивы delay_access , имеющей формат:

delay_access номер_пула действие имя_acl

Параметр “ действие” имеет значения allow (разрешить) и deny (запретить). Пул будет действовать на тех клиентов, которым он разрешен и не будет действовать на тех, кому запрещён.

распространяет действия пула №1 на отдельного пользователя SingleUser, но не затрагивает группу пользователей UserGroup.

Для группы пользователей используем пул №2:

Применим ограничения пула №2:

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

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

В стандартной конфигурации Squid включен только RAM кэш, объем используемой памяти установлен на 256Мб. Увеличим объем кэша и установим максимальный размер кэшированного объекта с помощью соответствующих директив:

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

За использование HDD кэша отвечает директива cache_dir , имеющая формат:

cache_dir тип_хранилища путь_к_хранилищу размер L1 L2

Размер кэша на диске указывается в мегабайтах, в примере выше кэш с максимальным размером 1 Гб будет хранится в папке /var/squid_cache. Тип хранилища ufs стандартный. Параметры 16 и 256 указывают количество директорий первого и второго уровня, эти значения так же прописаны в документации как стандартные.

Максимальный размер объекта в дисковом кэше также можно указать:

Настройка логирования

Squid имеет мощную систему подробного логирования для контроля проходящего через прокси-сервер траффика. Логи делятся на три различных журнала:

  • access.log — содержит записи о запросах клиентов;
  • store.log — содержит записи, относящиеся к действиям с кэшем;
  • cache.log — содержит сообщения об ошибках, возникающих при работе Squid.

Чаще всего используется журнал access.log. Укажем в конфигурации собственный путь для его хранения:

Параметр, имеющий в примере значение “squid” определяет формат лог-файла. Можно задать формат лога “common” для того, чтобы можно было обрабатывать полученный журнал сторонними программами, но в таком случае стоит помнить, что этот формат лога не содержит всей информации, которая есть в логе по умолчанию. Помимо стандартных вариантов имеется возможность создать собственный формат лог-файла, используя директиву logformat. Подробную информацию о работе этой директивы можно найти в документации к продукту.

Директивы cache_log и cache_store_log позволяют указать путь к файлам cache.log и store.log соответственно. Они не требуют указания формата:

Помимо различных видов журналов Squid имеет настройку уровней логирования. За глубину отладки отвечает директива debug_options . У неё два обязательных параметра — секция и глубина отладки:

Значение секции рекомендуется оставлять ALL (либо осторожно выбирать конкретную секцию из списка). Уровень логирования же может менятся в диапазоне от 1 до 9, где с ростом уровня увеличивается подробность логов, и, соответственно, количество записей в журнале. Как правило, уровень выше 5 редко используется в реальной жизни, потому что выводит уже слишком много “избыточной” информации для каждого произошедшего события.

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

Значение 31 означает, что при создании нового файла логов старый получит расширение от 0 до 30 и дальнейшая запись в него вестись не будет. Создание нового файла логов производится с помощью команды:

Таким образом, добавив в cron задачу каждый день создавать новый файл логов, можно иметь упорядоченный отчет обо всём прошедшем через прокси-сервер трафике за прошедший месяц.

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

Оставим без изменений остальные параметры и проверим файл настроек с помощью команды:

Эта команда предназначена для поиска ошибок в конфигурационном файле, если она ничего не выводит — значит ошибок нет.

Теперь осталось применить новые параметры:

После завершения настройки прокси-сервера перенаправим на него весь трафик локальной сети, внеся изменения в файл /etc/nat командой:

Добавим в самый низ файла следующую строку:

После этого перезагрузим сервер для автоматического применения новых настроек:

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

Источник

Как установить и настроить прокси-сервер Squid в Ubuntu 20.04

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

Читайте также:  Установка рельс или рельсов как правильно

В этом руководстве объясняется, как настроить прокси-сервер Squid на Ubuntu 20.04 и настроить веб-браузеры Firefox и Google Chrome для его использования.

Установка Squid на Ubuntu

Пакет squid включен в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующие команды от имени пользователя sudo :

После завершения установки служба Squid запустится автоматически. Чтобы убедиться в этом, проверьте статус сервиса:

Результат будет выглядеть примерно так:

Настройка Squid

Сервис squid можно настроить, отредактировав файл /etc/squid/squid.conf . Файл конфигурации содержит комментарии, описывающие, что делает каждый параметр конфигурации. Вы также можете поместить свои параметры конфигурации в отдельные файлы, которые можно включить в основной файл конфигурации с помощью директивы «include».

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

Чтобы начать настройку вашего экземпляра squid, откройте файл в текстовом редакторе :

По умолчанию squid настроен на прослушивание порта 3128 на всех сетевых интерфейсах сервера.

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

Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.

Squid позволяет вам контролировать, как клиенты могут получать доступ к веб-ресурсам, используя списки контроля доступа (ACL). По умолчанию доступ разрешен только с локального хоста.

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

Вместо добавления IP-адресов в основной файл конфигурации создайте новый выделенный файл, который будет содержать разрешенные IP-адреса:

После этого откройте основной файл конфигурации и создайте новый ACL с именем allowed_ips (первая выделенная строка) и разрешите доступ к этому ACL с помощью директивы http_access (вторая выделенная строка):

Порядок правил http_access важен. Убедитесь, что вы добавили строку перед http_access deny all .

Директива http_access работает аналогично правилам межсетевого экрана. Squid читает правила сверху вниз, и когда правило совпадает, правила ниже не обрабатываются.

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

Squid аутентификация

Если ограничение доступа на основе IP не работает для вашего варианта использования, вы можете настроить squid на использование серверной части для аутентификации пользователей. Squid поддерживает базовую аутентификацию Samba , LDAP и HTTP.

В этом руководстве мы будем использовать базовую аутентификацию. Это простой метод аутентификации, встроенный в протокол HTTP.

Чтобы сгенерировать зашифрованный пароль, используйте инструмент openssl . Следующая команда добавляет пару USERNAME:PASSWORD в файл /etc/squid/htpasswd :

Например, чтобы создать пользователя «josh» с паролем « P@ssvv0rT », вы должны запустить:

Следующим шагом является включение базовой аутентификации HTTP и включение файла, содержащего учетные данные пользователя, в файл конфигурации squid.

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

Первые три выделенные строки создают новый список контроля доступа с именем « authenticated , а последняя выделенная строка разрешает доступ аутентифицированным пользователям.

Перезапустите сервис Squid:

Настройка межсетевого экрана

Чтобы открыть порты Squid, включите профиль UFW 'Squid':

Если Squid работает на другом порту, отличном от порта по умолчанию, например, 8888 вы можете разрешить трафик на этом порту с помощью: sudo ufw allow 8888/tcp .

Настройка вашего браузера для использования прокси

Теперь, когда у вас настроен Squid, последний шаг — настроить предпочитаемый вами браузер для его использования.

Fire Fox

Приведенные ниже шаги одинаковы для Windows, macOS и Linux.

В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:

Щелкните ссылку ⚙ Preferences .

Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings. .

Откроется новое окно.

  • Установите переключатель « Manual proxy configuration ».
  • Введите IP-адрес вашего сервера Squid в поле HTTP Host и 3128 в поле Port .
  • Установите флажок Use this proxy server for all protocols .
  • Нажмите кнопку OK , чтобы сохранить настройки.

На этом этапе ваш Firefox настроен, и вы можете просматривать Интернет через прокси-сервер Squid. Чтобы проверить это, откройте google.com , введите «what is my ip», и вы должны увидеть IP-адрес своего сервера Squid.

Чтобы вернуться к настройкам по умолчанию, перейдите в « Network Settings , установите переключатель « Use system proxy settings » и сохраните настройки.

Есть несколько плагинов, которые также могут помочь вам настроить параметры прокси Firefox, например FoxyProxy .

Гугл Хром

Google Chrome использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить веб-браузер Chrome из командной строки.

Чтобы запустить Chrome с новым профилем и подключиться к серверу Squid, используйте следующую команду:

Linux:

macOS:

Windows:

Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.

Чтобы убедиться, что прокси-сервер работает правильно, откройте google.com и введите «какой у меня IP». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.

Выводы

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

Мы показали вам, как установить и настроить Squid в Ubuntu 20.04 и настроить ваш браузер для его использования.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Источник

Установка и настройка Squid на CentOS

В данной инструкции рассмотрена установка Squid на систему Linux CentOS 7 или 8.

Подготовка CentOS

1. Обновляем систему:

2. Добавляем правило в firewalld:

firewall-cmd —permanent —add-port=3128/tcp

* где 3128 — порт, на котором будет настроен наш прокси-сервер.

и перезапускаем firewalld:

3. Настраиваем время. Для этого сначала задаем корректный часовой пояс:

timedatectl set-timezone Europe/Moscow

После ставим утилиту для синхронизации времени:

yum install chrony

И запускаем ее для работы в качестве сервиса:

systemctl enable chronyd —now

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

Устанавливаем прокси-сервер следующей командой:

yum install squid

И открываем на редактирование конфигурационный файл:

Если сеть клиентских компьютеров отличается от стандартной (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), необходимо ее добавить в acl, например:

acl localnet src 217.66.157.0/24

acl localnet src "/etc/squid/acl_localnet"

* кавычки обязательны
** после необходимо создать файл /etc/squid/acl_localnet и с каждой строчки перечислить разрешенные IP-адреса.

Чтобы разрешить весь трафик, добавляем следующую строчку:

http_access allow all

* важно, чтобы она была выше запрещающей — http_access deny all

Настраиваем директорию для кэша:

cache_dir ufs /var/spool/squid 4096 32 256

* где ufs — файловая система (ufs для SQUID является самой подходящей); /var/spool/squid — директория хранения кэша; 4096 — объем пространства в мегабайтах, которое будет выделено под кэш; 32 — количество каталого первого уровня, которое будет создано для размещение кэша; 256 — количество каталого второго уровня, которое будет создано для размещение кэша.

Теперь создаем структуру папок под кэш следующей командой:

И уже можно запускать squid:

systemctl enable squid —now

Проверка

Заходим в настройки браузера и настраиваем использование прокси-сервера. Например, в Mozilla Firefox настройки нужно выставить такими:

Настройка Firefox для использования прокси-сервера

* где 192.168.163.166 — IP-адрес моего прокси-сервера.

Теперь открываем сайт 2ip.ru. После его загрузки мы увидем внешний IP-адрес — он должен соответствовать той сети, от которой работает настроенный SQUID.

Прозрачный прокси

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

Читайте также:  Выключатель автоматический дифференциального тока установка

Открываем конфигурационный файл:

И приводим ее к следующему виду:

http_port 3128 transparent

И перезагружаем squid:

systemctl restart squid

Squid + HTTPS

Специально настраивать https для squid в CentOS мне не пришлось — все заработало по умолчанию.

Авторизация по логину и паролю

Открываем конфигурационный файл:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/auth_users
auth_param basic children 25
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 3 hours
acl auth_users proxy_auth REQUIRED

* где /usr/lib64/squid/basic_ncsa_auth — расположение ncsa_auth (в зависимости от системы может находиться в другом каталоге); /etc/squid/auth_users — файл с логинами и паролями; children 25 разрешает 25 одновременных подключений; SQUID PROXY — произвольная фраза для приветствия; credentialsttl 3 hours будет держать сессию 3 часа, после потребуется повторный ввод логина и пароля.

http_access deny !Safe_ports

http_access allow auth_users

Создаем файл с пользователями и создаем первую пару логина и пароля:

htpasswd -c /etc/squid/auth_users user1

* если система вернет ошибку «bash: htpasswd: command not found» установим htpasswd командой yum install httpd-tools

Создаем второго пользователя:

htpasswd /etc/squid/auth_users user2

И перезагружаем squid:

systemctl restart squid

Исходящий сетевой интерфейс

На нашем сервере может быть несколько внешний IP-адресов. По умолчанию, все исходящие запросы будут работать через интерфейс со шлюзом по умолчанию. Чтобы иметь возможность работы со squid через разные интерфейсы в настройку вносим:

acl 217_66_157_33 localip 217.66.157.33
tcp_outgoing_address 217.66.157.33 217_66_157_33

acl 217_66_157_34 localip 217.66.157.34
tcp_outgoing_address 217.66.157.34 217_66_157_34

* в данном примере, при подключении к прокси через IP 217.66.157.33, исходящие пакеты будут от IP 217.66.157.33; аналогично для IP 217.66.157.34.

Контроль доступа к сайтам

С помощью прокси-сервера SQUID мы можем разрешать и запрещать доступ к определенным сайтам. Рассмотрим два сценария — запретить определенные сайты или разрешить только конкретные сайты.

Разрешаем все, кроме определенного списка

Открываем конфигурационный файл:

В разделе с acl добавим строку:

acl BLOCKED url_regex -i "/etc/squid/denysite"

* в данном примере мы создаем acl с названием BLOCKED — по сути, список, который будет читаться из файла /etc/squid/denysite.

Выше разрешающих правил добавляем строку:

http_access deny BLOCKED
.
http_access allow localnet
http_access allow localhost

* данная строка указывает прокси-серверу на блокироку acl с названием BLOCKED.

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

web\.whatsapp\.com
facebook\.com
^(www\.)?vk\.com

* в данном примере мы запретили доступ к сайтам web.whatsapp.com, facebook.com и всем их поддоменам, а также к vk.com (поддомены vk.com разрешены).

systemctl reload squid

Запретить все, кроме некоторых сайтов

Теперь рассмотрим обратную ситуацию — мы запретим заходить на все сайты, а разрешим только для нескольких. Для этого открываем конфигурационный файл:

В разделе с acl добавим строку:

acl ALLOWED url_regex -i "/etc/squid/allowsite"

* в данном примере мы создаем acl с названием ALLOWED — список, который будет читаться из файла /etc/squid/allowsite.

Комментируем все разрешающие правила и добавляем строку с ALLOWED:

.
#http_access allow localnet
#http_access allow localhost
http_access allow ALLOWED

* в нашей конфигурации используется только эти разрешающие правила на пользователей, но в вашей конфигурации их может быть больше.

Источник

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

Добрый день всем, кто оказался на данном сайте. Сегодня мы рассмотрим как установить и настроить наш собственный прокси сервер. Но, это будет не просто прокси сервер, а он будет шифроваться с помощью Stunnel. А так же вход будет только по сертификатам которые мы сгенерируем. Меня на эту идею подталкнула другая статья. Прочитав ее, я решил что можно в ней кое что изменить, а именно, добавить шифрование с помощью Stunnel. Что это даст? Наш трафик будет выглядеть как обычный TLS. Что не вызовет подозрений при просмотре нашего подключения. А также изменить некоторые настройки для анонимности. Что собственно мы сегодня и сделаем. И так, переходим в терминал и устанавливаем необходимые пакеты.

Установка и настройка Stunnel

Squid and Stunnel install

Теперь давайте создадим конфигурационный файл. Для этого вводим команду:

В этот файл нам нужно вписать название сервиса, который будет взаимодействовать с Stunnel, в нашем случае это “[squid]”. После чего указываем порт, порт вы моете указать любой, на ваше усмотрение. Я же буду использовать 5555 “accept = 8888”. По умолчание Squid использует порт “3128”, при желание вы можете его изменить в конфиге самого “Squid”. Я же оставлю как есть. Сам же Squid по умолчание запускается на локальном хосте, по этому вписываем локальный хост и порт в наш конфиг “connect = 127.0.0.1:3128”. Далее указываем путь к нашим сертификатам, которые мы сгенерируем чуть позже “cert = /etc/stunnel/stunnel.pem”. Строчка в начале нашего конфига “client = no” не является обязательной. Но, пусть она будет. В итоге наш конфигурационный файл должен выглядеть следующим образом:

Squid and Stunnel install 1

Сохраняем наш файл и идем дальше. Теперь нам нужно сгенерировать сертификаты. Для этого проделываем следующую процедуру, вводим по очереди каждую команду в терминале:

Особое внимание стоит обратить на пункт “Common Name”. В нем мы должны указать ip адрес нашего сервера.

Squid and Stunnel install 2 Squid and Stunnel install 3

После успешного создания сертификатов и перемещение их в нужную нам директорию, пришло время добавить в автозапуск Stunnel. Для этого вводим команду:

И ищем настройку “ENABLED”, нам нужно изменить ее значение с “0” на “1”. После чего сохранием отредактированный файл:

Squid and Stunnel install 4

Теперь перезапустим Stunnel командой:

Squid and Stunnel install 5

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

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

Squid and Stunnel install 6

После установки нужно отредактировать конфигурационный файл Squid. Для этого откроем его в редакторе nano:

Squid and Stunnel install 7

Настроек тут много, но мы углубляться в них не будем. Отредактируем лишь те, которые нужны для наших задач. Параметр “acl localnet src” отвечает за ip адрес клиента. Установим его как 127.0.0.1. Что бы точно не кто не смог подключится не имея сертификатов от Stunnel.

Squid and Stunnel install 8

Теперь укажем настройку которая будет пускать весь трафик через Squid, важно так же указать ее выше строчки “http_access deny all”

Squid and Stunnel install 9

Ну и теперь в конце этого конфига добавляем следующие строчки, что бы сделать его анонимным:

Squid and Stunnel install 9 1 Squid and Stunnel install 10

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

Squid and Stunnel install 11

Установка и настройка Stunnel как клиент

Теперь пришло время установить Stunnel на наш компьютер и настроить его для работы с нашим сервером. Делается это просто, для начала установим Stunnel и сразу перейдем к настройке конфига:

Squid and Stunnel install 12

Давайте быстренько пробежимся по конфигурации. Первая строчка указывает Stunnel что это клиент, в отличии от серверной части, тут она обязательна “client = yes”. Далее идет название сервиса, в нашем случае это “[squid]” и адрес который будет прослушивать Stunnel “accept = 127.0.0.1:8080”. Далее указываем ip адрес нашего сервера и порт, который мы указывали настраивая конфиг на сервере. В моем случае я указывал порт 5555 “connect = 185.219.80.135:5555”. И последняя строчка указывает где лежат сертификаты, которые мы чуть позже скачаем “cert = /etc/stunnel/stunnel.pem”

Squid and Stunnel install 13

Сохраняем наш конфиг и переходим к скачиванию сертификатов. Для этого выполните следующую команду:

Поясню что тут написано, “root” это имя под которым мы заходим по ssh на наш сервер. Далее ip адрес нашего сервера и пути, откуда нужно взять сертификат и куда скопировать. При выполнении это команды вам нужно будет ввести пароль. После чего убедимся, что все выполнилось и сертификаты скопировали при помощи команды и перезапустим Stunnel:

Squid and Stunnel install 14 Squid and Stunnel install 15

Теперь переходим к настройке браузера, я буду показывать на примере браузера Firefox. Указываем наш localhost и порт “127.0.0.1:8080”

Squid and Stunnel install 16

И проверяем подключение к нашему серверу

Squid and Stunnel install 17

Как видите, все работает нормально. При этом, наш трафик шифруется при помощи Stunnel. Не используйте данную инструкцию в корыстных целях. Материал предназначен лишь для ознакомления.

Источник

Adblock
detector