- Что такое 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/passwords
acl auth_users proxy_auth REQUIRED
http_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 1
delay_class 1 2
delay_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