SCROLL

Статьи в категории «Squid»

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

У одного из читателей блога наблюдалась проблема в произвольной перезагрузке Squid при работе в режиме перехвата HTTPS трафика с использованием «bump all».

В работе имеется прокси-сервер Squid 4.9, работающий с HTTPS поддержкой. Столкнулся с проблемой в работе мессанджера Whatsapp (Web, Desktop версии) на конечных системах.

Рассмотрим как реализовать перехват пользовательских HTTPS-запросов в сеть интернет для дальнейшего анализа и учета их. Все ниже описанные действия производятся на Debian 9 Stretch с установленным прокси-сервером Squid 4.9.

Разберем как настроить связь Squid 4.9 c Active Directory через Kerberos аутентификацию и Basic LDAP авторизацию, для предоставления доступа в интернет по доменным учетным записям и разграничение прав согласно заданным группам безопасности Active Directory.

Рассмотрим как установить из исходников актуальную (на момент написания статьи) версию кеширующего прокси-сервера Squid 4.6 на Debian 9 Stretch.

[stextbox id=’info’]ИНФОРМАЦИЯ. Хочу сообщить что ниже описанное руководство, так же применимо к установке версии Squid 4.9.[/stextbox]

 

Подготовка системы

Обновляем систему до актуального состояния:

apt-get update && apt-get upgrade

Устанавливаем необходимые пакеты для сборки и работы squid:

apt-get install autoconf automake autopoint autotools-dev binutils build-essential cdbs comerr-dev cpp cpp-6 debhelper dh-autoreconf dh-strip-nondeterminism dpkg-dev g++ g++-6 gcc gcc-6 gettext icu-devtools intltool-debian krb5-multidev libarchive-zip-perl libasan3 libatomic1 libc-dev-bin libc6-dev libcap-dev libcc1-0 libcilkrts5 libcppunit-1.13-0v5 libcppunit-dev libcroco3 libdb-dev libdb5.3-dev libdpkg-perl libecap3 libecap3-dev libexpat1-dev libfile-stripnondeterminism-perl libgcc-6-dev libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libssl-dev libgnutls28-dev libgnutlsxx28 libgomp1 libgssrpc4 libicu-dev libidn11-dev libisl15 libitm1 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libkrb5-dev libldap2-dev liblsan0 libltdl-dev libltdl7 libmpc3 libmpfr4 libmpx2 libnetfilter-conntrack-dev libnfnetlink-dev libp11-kit-dev libpam0g-dev libquadmath0 libsasl2-dev libsigsegv2 libstdc++-6-dev libtasn1-6-dev libtimedate-perl libtool libtsan0 libubsan0 libunbound2 libxml2-dev linux-libc-dev m4 make nettle-dev patch pkg-config po-debconf zlib1g-dev

 

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

Скачиваем исходник «squid», распаковываем его:

cd /opt/
wget http://www.squid-cache.org/Versions/v4/squid-4.6.tar.gz
tar -zxvf squid-4.6.tar.gz 
cd squid-4.6

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

Рано или поздно все сталкиваются с задачей ограничения скорости доступа в интернет для пользователей. Рассмотрим решение данной задачи при помощи прокси-сервера Squid (установить его можно по этой статье)

 

За ограничение скорости в Squid отвечает параметр delay_pools. Принцип работы delay_pools каждый запрашиваемый объект сначала попадает в пул, а затем передается клиенту. Каждый пул определяется двумя параметрами: скоростью его заполнения и размером буфера. Прим. размер пула 8000 и размер буфера 8000, означает что скорость заполнения буфера будет 64 кБ/с. Неограниченный размер буфера и скорости задается как -1/-1. Размер буфера и скорость задается в байта.

 

Скорость заполнения пула зависит от класса delay_class. Варианты доступных классов:

  1. Общие ограничения скорости загрузки для всех.
  2. Общие ограничения скорости загрузки и скорость каждого хоста.
  3. Общие ограничения скорости загрузки, скорость сети и скорость каждого хоста.
  4. Все ограничения класса 3 + ограничения на уровне отдельно взятых пользователей (требуется аутентификация пользователей в правилах http_access).
  5. Запросы группируются по тэгам определяемым в external_acl

 

Вид записей delay_parameters, в зависимости от выбранного класса:

  1. delay_parameters <номер пула> <общие ограничения для всех>
  2. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для хоста>
  3. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для подсети> <ограничения для хоста>
  4. delay_parameters <номер пула> <общие ограничения для всех> <ограничения для подсети> <ограничения для хоста> <ограничения для пользователя>
  5. delay_parameters <номер пула> <тегированные ограничения>

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

NCSA-авторизация — это метод аутентификации в прокси-сервере Squid, основанный на использовании связки логин и пароль. Он позволяет ограничить доступ к сервису за счёт применения учётных данных, закодированных в base64 и хранящихся в текстовом файле.

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

Разберем как настроить связь Squid 3.5 c Active Directory через kerberos авторизацию, чтобы доступ в интернет предоставлялся только по доменным учетным записям, а так же возможность использования Active Directory групп для разграничения прав доступа в интернет.

 

 

Исходные данные:

  • Установленный на Ubuntu 14.04 Trusty Tahr (srv-squid-s) Squid 3.5
  • Домен контроллер SRV-DC1 (testzone.local) на базе Windows Server 2008 R2

 

Подготовка системы Ubuntu 14.04 Trusty Tahr (srv-squid-s)

Укажем корректное имя системы для работы с Active Directory. В файле (/etc/hostname) дописываем к имени системы название вашего домена (в моем случае я дописываю .testzone.local):

srv-squid-s.testzone.local

В файле (/etc/hosts) под записью «127.0.0.1 localhost» прописываем данные нашей системы:

192.168.1.5 srv-squid-s.testzone.local srv-squid-s

Для применения изменений перезагрузим систему:

sudo reboot

Появилась необходимость на работе анализировать трафик интернета, с возможностью выставлять всякого рода запреты на пользование интернета сотрудникам и посещении сайтов как по HTTP протоколу, так и по HTTPS. Использовать будем для всех этих дел Squid 3.5.19 и развернут он будет на Ubuntu 14.04.5 LTS.

Первым делом обновляем систему до актуального состояния

sudo apt-get update
sudo apt-get upgrade

Устанавливаем необходимые для сборки пакетов инструменты

sudo apt-get -y install devscripts build-essential fakeroot debhelper dh-autoreconf cdbs

Устанавливаем зависимости для libecap и squid

sudo apt-get -y build-dep libecap
sudo apt-get -y build-dep squid3