- Что такое Squid Proxy и зачем он нужен на Ubuntu?
- Установка Squid на Ubuntu: пошаговое руководство
- Базовая настройка прокси-сервера Squid
- Расширенные настройки: кеширование и управление доступом
- Обеспечение безопасности и мониторинг Squid
- Часто задаваемые вопросы о Squid на Ubuntu
- Как проверить работоспособность Squid?
- Как сбросить кэш Squid?
- Как ограничить скорость для пользователей?
- Почему Squid блокирует легитимные сайты?
- Как настроить прозрачный прокси?
Что такое Squid Proxy и зачем он нужен на Ubuntu?
Squid — это высокопроизводительный прокси-сервер с открытым исходным кодом, который кэширует веб-контент для ускорения доступа в интернет и управления сетевым трафиком. На Ubuntu он используется для:
- Экономии интернет-трафика через кэширование
- Контроля доступа пользователей к сайтам
- Повышения безопасности сети
- Балансировки нагрузки
- Мониторинга интернет-активности
Благодаря интеграции с Linux-системами, Squid идеально подходит для корпоративных сетей, образовательных учреждений и домашних серверов на базе Ubuntu.
Установка Squid на Ubuntu: пошаговое руководство
Выполните в терминале следующие команды:
- Обновите пакеты:
sudo apt update && sudo apt upgrade -y - Установите Squid:
sudo apt install squid -y - Запустите службу:
sudo systemctl start squid - Включите автозагрузку:
sudo systemctl enable squid - Проверьте статус:
sudo systemctl status squid
Файл конфигурации расположен в /etc/squid/squid.conf. Для применения изменений перезагрузите сервис: sudo systemctl reload squid.
Базовая настройка прокси-сервера Squid
Основные параметры в squid.conf:
- Порт прокси: По умолчанию 3128. Измените через директиву
http_port - Доступ по IP: Ограничьте подключения вашей подсетью:
acl local_net src 192.168.1.0/24 - Базовые ACL: Разрешите доступ для сети:
http_access allow local_net - Кэширование: Настройте размер кэша:
cache_dir ufs /var/spool/squid 5000 16 256(5000 МБ)
После настройки проверьте синтаксис: squid -k parse.
Расширенные настройки: кеширование и управление доступом
Оптимизация кэширования:
- Настройка TTL:
refresh_pattern . 1440 20% 10080 - Исключение динамического контента:
acl NO_CACHE urlpath_regex cgi-bin
Контроль доступа через ACL:
- Блокировка соцсетей:
acl blocked_sites dstdomain .facebook.com - Ограничение по времени:
acl work_hours time MTWHF 09:00-18:00 - Применение правил:
http_access deny blocked_sites
Аутентификация пользователей:
Используйте встроенный HTTP Basic Auth:
- Установите утилиту:
sudo apt install apache2-utils - Создайте пароль:
sudo htpasswd -c /etc/squid/passwords user1 - Добавьте в конфиг:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwordsacl auth_users proxy_auth REQUIREDhttp_access allow auth_users
Обеспечение безопасности и мониторинг Squid
Защита сервера:
- Настройте брандмауэр:
sudo ufw allow 3128/tcp - Включите HTTPS-прокси:
http_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB - Регулярно обновляйте Squid:
sudo apt upgrade squid
Мониторинг производительности:
- Используйте
squidclientдля проверки кэша - Анализируйте логи:
tail -f /var/log/squid/access.log - Настройте уведомления о сбоях через systemd
Часто задаваемые вопросы о Squid на Ubuntu
Как проверить работоспособность Squid?
Выполните: curl -x http://localhost:3128 example.com. Если получите HTML-код страницы — прокси работает.
Как сбросить кэш Squid?
Остановите службу: sudo systemctl stop squid
Очистите каталог: sudo rm -rf /var/spool/squid/*
Инициализируйте кэш: sudo squid -z
Запустите сервис: sudo systemctl start squid
Как ограничить скорость для пользователей?
Используйте delay pools в конфигурации:delay_pools 1delay_class 1 2delay_parameters 1 1600/1600 (ограничение 1600 КБ/с)
Почему Squid блокирует легитимные сайты?
Проверьте ACL и порядок правил http_access. Убедитесь, что нет конфликтующих deny-правил. Используйте ssl_bump для HTTPS-трафика.
Как настроить прозрачный прокси?
1. Измените порт: http_port 3128 intercept
2. Настройте iptables:sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
3. Включите IP forwarding в /etc/sysctl.conf








