- Что такое прокси-сервер и зачем он нужен
- Предварительные требования
- Пошаговая установка Squid на CentOS
- Базовая настройка прокси-сервера
- Проверка работоспособности
- Расширенные настройки безопасности
- FAQ: Частые вопросы по Squid на CentOS
- Как открыть порт прокси в firewalld?
- Почему возникают ошибки ‘ACCESS_DENIED’?
- Как сбросить кэш Squid?
- Можно ли использовать Squid как прозрачный прокси?
- Как обновить Squid до последней версии?
- Оптимизация производительности
Что такое прокси-сервер и зачем он нужен
Прокси-сервер выступает промежуточным звеном между устройствами пользователей и интернетом, обеспечивая кэширование данных, контроль доступа и повышение безопасности. На CentOS 7/8 наиболее популярным решением является Squid — высокопроизводительный инструмент с открытым исходным кодом. Установка прокси на сервере позволяет:
- Экономить интернет-трафик через кэширование
- Ограничивать доступ к определённым ресурсам
- Анонимизировать запросы
- Балансировать нагрузку сети
- Мониторить активность пользователей
Предварительные требования
Перед установкой Squid на CentOS убедитесь, что:
- У вас есть root-доступ или права sudo
- Система обновлена:
sudo yum update -y
- Открыт порт 3128 (стандартный для Squid)
- Доступно минимум 1 ГБ оперативной памяти
- Установлен базовый набор утилит:
sudo yum install net-tools wget -y
Пошаговая установка Squid на CentOS
- Добавление EPEL-репозитория:
sudo yum install epel-release -y
- Установка Squid:
sudo yum install squid -y
- Запуск службы:
sudo systemctl start squid
- Автозагрузка при старте системы:
sudo systemctl enable squid
- Проверка статуса:
sudo systemctl status squid
(должен отображать ‘active (running)’)
Базовая настройка прокси-сервера
Основной конфигурационный файл: /etc/squid/squid.conf
. Ключевые правки:
- Разрешить доступ с локальной сети:
Заменитеlocalhost
на вашу подсеть в секцииhttp_access
:acl localnet src 192.168.1.0/24
http_access allow localnet
- Изменить порт (опционально):
http_port 8080
- Настройка кэша:
Укажите размер и расположение кэша:cache_dir ufs /var/spool/squid 5000 16 256
(5000 МБ)
После изменений перезагрузите Squid: sudo systemctl restart squid
Проверка работоспособности
- На клиентском устройстве укажите в настройках сети:
- IP сервера CentOS
- Порт 3128 (или выбранный вами)
- Проверьте подключение через терминал:
curl --proxy http://ваш_сервер:3128 ifconfig.me
- Просмотрите логи Squid для диагностики:
sudo tail -f /var/log/squid/access.log
Расширенные настройки безопасности
- Аутентификация пользователей:
Добавьте вsquid.conf
:auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
acl auth_users proxy_auth REQUIRED
Создайте пользователя:htpasswd /etc/squid/passwd user1
- Блокировка сайтов:
Добавьте blacklist:acl banned_sites dstdomain .youtube.com .facebook.com
http_access deny banned_sites
- Ограничение по времени:
acl working_hours time MTWHF 09:00-18:00
http_access allow localnet working_hours
FAQ: Частые вопросы по Squid на CentOS
Как открыть порт прокси в firewalld?
Выполните:sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
Почему возникают ошибки ‘ACCESS_DENIED’?
Проверьте:
1) Правильность ACL-правил в squid.conf
2) Соответствие IP в localnet
3) Отсутствие блокировки SELinux: setsebool -P squid_connect_any 1
Как сбросить кэш Squid?
Остановите службу и выполните:sudo squid -k shutdown
sudo rm -rf /var/spool/squid/*
sudo squid -z
sudo systemctl start squid
Можно ли использовать Squid как прозрачный прокси?
Да. Добавьте в squid.conf
:http_port 3128 intercept
https_port 3130 intercept ssl-bump
И настройте перенаправление трафика через iptables.
Как обновить Squid до последней версии?
Выполните:sudo yum clean all
sudo yum update squid
sudo systemctl restart squid
Оптимизация производительности
- Увеличьте
maximum_object_size
в squid.conf для кэширования крупных файлов - Настройке
cache_mem
(рекомендуется 30-40% от ОЗУ) - Используйте SSD для каталога кэша
- Регулярно очищайте лог-файлы через logrotate
Для мониторинга используйте squidclient mgr:info
или специализированные решения типа Cacti. Помните: корректная настройка Squid на CentOS требует тестирования под вашу нагрузку. Всегда создавайте резервные копии конфигурационных файлов перед внесением изменений!