Установка Squid на Ubuntu/Debian: настройка прокси-сервера 2024 | AdminWiki

Установка и настройка Squid на Ubuntu: полное руководство для DevOps

28 декабря 2025 7 мин. чтения #debian #devops #linux #squid #ubuntu #настройка squid #прокси сервер

Представь, что тебе нужно развернуть прокси-сервер для контроля трафика, кэширования веб-контента или обеспечения безопасности сети. Squid — это мощное решение, которое справится с этими задачами. Давай разберем, как выполнить установку и настройку squid на ubuntu (и других Debian-системах) от начала до конца.

Что такое Squid и зачем он нужен?

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

  • Кэширование веб-контента для ускорения загрузки страниц
  • Контроль доступа к интернет-ресурсам (ACL)
  • Анонимизация трафика
  • Балансировка нагрузки между несколькими серверами
  • Мониторинг и логирование сетевой активности
Хотя в заголовке указана установка squid на ubuntu, все шаги идентичны для Debian и других производных дистрибутивов.

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

Перед началом установки убедись, что система обновлена:

bash
sudo apt update
sudo apt upgrade -y

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

Установка выполняется одной командой через пакетный менеджер apt:

bash
sudo apt install squid -y

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

bash
sudo systemctl status squid
По умолчанию Squid запускается автоматически. Если служба не активна, выполни: sudo systemctl enable --now squid

Базовая настройка Squid

Основной конфигурационный файл находится по пути /etc/squid/squid.conf. Создай резервную копию перед редактированием:

bash
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup

Настройка портов и интерфейсов

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

bash
sudo nano /etc/squid/squid.conf

Найди и измени следующие параметры:

config
# Порт, на котором будет работать Squid
http_port 3128

# Если нужно слушать на конкретном IP
# http_port 192.168.1.100:3128

# Видимое имя сервера
visible_hostname squid-proxy

# Размер кэша в MB (рекомендуется 10-20% от диска)
cache_dir ufs /var/spool/squid 10000 16 256

Настройка списков доступа (ACL)

ACL (Access Control Lists) — основа безопасности Squid. Пример базовой конфигурации:

config
# Определяем локальную сеть
acl local_net src 192.168.1.0/24
acl local_net src 10.0.0.0/8

# Определяем безопасные порты
acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # нестандартные порты
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http

# Блокируем доступ к небезопасным портам
http_access deny !Safe_ports

# Разрешаем доступ только из локальной сети
http_access allow local_net

# Запрещаем все остальное
http_access deny all

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

Настройка аутентификации

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

bash
sudo apt install apache2-utils -y

Создай файл с паролями:

bash
sudo htpasswd -c /etc/squid/passwords username

Добавь в конфиг squid.conf:

config
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

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

Оптимизируй кэширование для повышения производительности:

config
# Максимальный размер объекта в кэше (в MB)
maximum_object_size 256 MB

# Минимальный размер объекта для кэширования
minimum_object_size 0 KB

# Время жизни кэшированных объектов
refresh_pattern ^ftp:       1440    20%     10080
refresh_pattern ^gopher:    1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%      0
refresh_pattern .           0       20%     4320

Запуск и проверка работы

После внесения изменений в конфигурацию:

bash
# Проверка синтаксиса конфига
sudo squid -k parse

# Перезапуск службы
sudo systemctl restart squid

# Просмотр логов в реальном времени
sudo tail -f /var/log/squid/access.log

Настройка клиентов для работы с Squid

Настройка в браузере

Для Firefox или Chrome:

  • Зайди в настройки сети
  • Выбери "Ручная настройка прокси"
  • Укажи IP-адрес сервера Squid и порт 3128

Настройка через переменные окружения

bash
export http_proxy=http://squid-server:3128
export https_proxy=http://squid-server:3128
export ftp_proxy=http://squid-server:3128

Мониторинг и управление

Команда Описание Пример
squid -k check Проверка состояния sudo squid -k check
squid -k reconfigure Перезагрузка конфига sudo squid -k reconfigure
squid -k rotate Ротация логов sudo squid -k rotate
squidclient Мониторинг кэша squidclient mgr:info

Частые проблемы и решения

Проблема: Клиенты не могут подключиться к прокси
Решение: Проверь firewall: sudo ufw allow 3128
Проблема: Ошибка "Access Denied"
Решение: Проверь ACL в конфиге и убедись, что IP клиента входит в разрешенные сети
Проблема: Медленная работа прокси
Решение: Увеличь размер кэша и оптимизируй refresh_pattern

FAQ: ответы на частые вопросы

Чем отличается установка squid на debian от ubuntu?

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

Как настроить прозрачный прокси?

Добавь в конфиг:

config
http_port 3128 transparent

И настрой перенаправление трафика через iptables.

Как ограничить скорость для определенных пользователей?

Используй delay pools в конфигурации:

config
delay_pools 1
delay_class 1 2
delay_access 1 allow local_net
delay_parameters 1 64000/64000 8000/8000

Как заблокировать доступ к соцсетям?

Создай ACL с доменами:

config
acl social_net dstdomain .facebook.com .twitter.com .instagram.com
http_access deny social_net

Как настроить Squid в режиме reverse proxy?

Используй директиву cache_peer:

config
http_port 80 accel defaultsite=yourdomain.com
cache_peer backend-server parent 80 0 originserver

Заключение

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

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

Дальнейшие шаги для углубления знаний:

  • Изучи интеграцию Squid с LDAP/Active Directory
  • Настрой SSL interception для анализа HTTPS трафика
  • Реализуй кластеризацию Squid для отказоустойчивости
  • Настрой мониторинг через Prometheus + Grafana
Поделиться:
Сохранить гайд? В закладки браузера