Как создать прокси-сервер на CentOS: Подробное руководство с 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

  1. Добавление EPEL-репозитория:
    sudo yum install epel-release -y
  2. Установка Squid:
    sudo yum install squid -y
  3. Запуск службы:
    sudo systemctl start squid
  4. Автозагрузка при старте системы:
    sudo systemctl enable squid
  5. Проверка статуса:
    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

Проверка работоспособности

  1. На клиентском устройстве укажите в настройках сети:
    • IP сервера CentOS
    • Порт 3128 (или выбранный вами)
  2. Проверьте подключение через терминал:
    curl --proxy http://ваш_сервер:3128 ifconfig.me
  3. Просмотрите логи 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 требует тестирования под вашу нагрузку. Всегда создавайте резервные копии конфигурационных файлов перед внесением изменений!

Proxy Ninja
Добавить комментарий