· 18 мин чтения

Squid Proxy: полный контроль офисного интернета и фильтрация трафика

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. 15+ лет я внедряю интернет-контроль в офисах от 20 до 500 рабочих мест. Squid остаётся моим любимым инструментом — бесплатный, железно стабильный, гибкий до предела. Выдерживает офис на 300 человек с HTTPS-инспекцией на скромном сервере. Покажу, как собрать боевую конфигурацию: с доменной аутентификацией, SSL bump, категорийными списками, квотами и автоотчётами.

Когда нужен прокси и что он даёт

У нас на практике офис ставит прокси из-за трёх причин: хочется видеть, кто сколько трафика жжёт на YouTube, нужно блокировать типовые отвлекалочки и требуется доказательная база на случай утечек. Плюсом идёт кэш — он экономит до 15% внешнего трафика, а если провайдер лимитирован, это ощутимо.

Squid умеет: аутентифицировать пользователей через AD, писать детализированные логи, блокировать сайты по категориям и регулярным выражениям, применять квоты по мегабайтам и по времени суток, инспектировать HTTPS с помощью SSL bump.

Архитектура и железо

Размер офисаCPU/RAMДискКанал
до 50 ПК2 vCPU / 4 ГБ80 ГБ SSD100 Мбит/с
50–150 ПК4 vCPU / 8 ГБ200 ГБ SSD200 Мбит/с
150–500 ПК8 vCPU / 16 ГБ500 ГБ SSD500 Мбит/с

Для клиента на 300 мест я недавно разместил Squid на Dell с Xeon Platinum 8280 в дата-центре МТС: виртуалка с 8 vCPU, 16 ГБ RAM, NVMe-диски, 40G Mellanox между гипервизорами — запас по производительности трёхкратный.

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

sudo apt update
sudo apt install squid-openssl squidguard sarg krb5-user

# Генерация CA для SSL bump
sudo mkdir /etc/squid/ssl_cert
cd /etc/squid/ssl_cert
sudo openssl req -new -newkey rsa:4096 -sha256 -days 3650 -nodes -x509 \
  -keyout itfresh-ca.pem -out itfresh-ca.pem \
  -subj "/C=RU/ST=Moscow/O=ITfresh/CN=ITfresh Proxy CA"
sudo /usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
sudo chown -R proxy:proxy /var/lib/squid/ssl_db

Этот CA потом раскатаем по доменным машинам через GPO как Trusted Root — иначе браузеры будут ругаться на подменные сертификаты.

Базовый squid.conf

# /etc/squid/squid.conf (фрагмент)
http_port 3128 ssl-bump cert=/etc/squid/ssl_cert/itfresh-ca.pem \
  generate-host-certificates=on dynamic_cert_mem_cache_size=16MB

# Kerberos auth для AD
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -s HTTP/proxy.corp.local@CORP.LOCAL
auth_param negotiate children 20 startup=5 idle=2
auth_param negotiate keep_alive on

acl AuthUsers proxy_auth REQUIRED
acl localnet src 10.0.0.0/16

# Bump-правила
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB

# Базовая фильтрация
acl blacklist dstdomain "/etc/squid/blacklist.txt"
http_access deny blacklist
http_access allow AuthUsers localnet
http_access deny all

cache_dir ufs /var/spool/squid 10000 16 256
access_log daemon:/var/log/squid/access.log squid

Интеграция с Active Directory

Я всегда делаю Kerberos-авторизацию — она прозрачна для пользователя. Рабочая станция сама отдаёт доменный тикет, никаких всплывающих окон с паролем.

# На контроллере домена
ktpass -princ HTTP/proxy.corp.local@CORP.LOCAL -mapuser squid@corp.local \
  -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass MyStrongPass123 \
  -out squid.keytab

# На прокси
sudo mv squid.keytab /etc/squid/
sudo chown proxy:proxy /etc/squid/squid.keytab
echo 'KRB5_KTNAME=/etc/squid/squid.keytab' | sudo tee -a /etc/default/squid
sudo systemctl restart squid

SquidGuard: категорийная фильтрация

Голый Squid не знает, что такое «соцсети» или «онлайн-кинотеатры». Знает SquidGuard с базой Shalla или URLBlacklist.

sudo wget http://www.shallalist.de/Downloads/shallalist.tar.gz
sudo tar xzf shallalist.tar.gz -C /var/lib/squidguard/db/

# /etc/squidguard/squidGuard.conf
dest social { domainlist BL/socialnet/domains }
dest adult  { domainlist BL/porn/domains }
dest ads    { domainlist BL/adv/domains }

acl {
  default {
    pass !adult !social !ads all
    redirect http://proxy.corp.local/blocked.html?url=%u&user=%s
  }
}

sudo squidGuard -C all
sudo chown -R proxy:proxy /var/lib/squidguard/db

Квоты и расписание

Через delay_pools можно зарезать скорость для определённых ACL, через time-ACL — запретить доступ в обеденное время или только для нерабочих часов:

acl work_hours time MTWHF 09:00-18:00
acl video dstdomain .youtube.com .rutube.ru
http_access deny video work_hours !AdminUsers

delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 2000000/2000000
delay_access 1 allow AuthUsers

Отчёты SARG для руководства

Руководителю нужен не лог, а сводка: кто больше всех сидел на развлекательных ресурсах. SARG делает красивые HTML-отчёты по access.log.

sudo apt install sarg
sudo sed -i 's|# access_log .*|access_log /var/log/squid/access.log|' /etc/sarg/sarg.conf
sudo sed -i 's|# output_dir .*|output_dir /var/www/html/sarg|' /etc/sarg/sarg.conf

# Ежедневная генерация
echo '0 7 * * * root sarg-reports daily' | sudo tee /etc/cron.d/sarg

Отчёт доступен на http://proxy.corp.local/sarg/, защищаем basic-auth.

Мини-кейс: офис логистической компании, 120 ПК

В марте 2025 года к нам обратилась логистическая компания в Мытищах — 120 сотрудников, выделенный канал 200 Мбит/с постоянно в потолке, начальство жалуется, что работники «залипают в видео». За 4 дня развернули Squid+SquidGuard+SARG на виртуалке в дата-центре МТС. Первый отчёт показал: 38% офисного трафика уходило на YouTube и TikTok, один сотрудник скачал 47 ГБ торрентов за неделю. После блокировки категории «video» в рабочие часы и квоты 200 МБ/день на «development» пиковая загрузка канала упала с 190 Мбит/с до 110, жалобы на медленный 1С прекратились. Стоимость работ — 68 000 руб. с годовым сопровождением.

Типичные ошибки при внедрении

Развернём Squid Proxy под ключ

Я лично настраиваю прокси для офисов от 30 РМ: AD-авторизация, SSL bump, категорийные фильтры, квоты, отчёты для руководства. От 55 000 руб. за проект, 10–14 рабочих дней.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы по Squid Proxy

Зачем офису свой прокси-сервер?
Прокси даёт точные логи кто-куда-ходил, экономит трафик за счёт кэша, позволяет блокировать соцсети, рекламу, сайты-категории и применять квоты по пользователям из AD.
Законно ли инспектировать HTTPS через SSL bump?
Законно, если сотрудники подписали уведомление об использовании служебного интернета только для рабочих задач и согласны с контролем трафика.
Сколько ресурсов нужно Squid на 100 пользователей?
2 vCPU, 4 ГБ RAM, 100 ГБ SSD для кэша и логов. Интернет-канал от 100 Мбит/с. Для 300+ — 4 vCPU и 8 ГБ RAM.
Работает ли Squid с Active Directory?
Да, через Kerberos authentication helper или ntlm_auth. Пользователи авторизуются прозрачно через доменную учётку.
Какие альтернативы Squid?
Kerio Control, UserGate, Mikrotik Web Proxy, pfSense + Squid-пакет, Traffic Inspector. Squid — самый гибкий и бесплатный.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.