Настройка Proxy Server на RHEL: Полное Руководство по Squid и HAProxy

Что такое прокси-сервер и зачем он нужен в RHEL?

Proxy server (прокси-сервер) в RHEL (Red Hat Enterprise Linux) выступает промежуточным звеном между пользовательскими устройствами и интернетом. Он кэширует данные, фильтрует трафик, обеспечивает анонимность и повышает безопасность корпоративных сетей. В RHEL прокси особенно важен для:

  • Оптимизации скорости доступа через кэширование контента
  • Контроля доступа сотрудников к веб-ресурсам
  • Балансировки нагрузки между серверами
  • Соблюдения требований GDPR и корпоративных политик

Популярные прокси-серверы для RHEL

В экосистеме RHEL наиболее востребованы:

  1. Squid — HTTP/HTTPS-прокси с кэшированием, идеален для веб-фильтрации.
  2. HAProxy — high-performance прокси для TCP/HTTP балансировки нагрузки.
  3. Nginx — обратный прокси с поддержкой TLS и сжатия.

Установка и настройка Squid на RHEL

Шаг 1: Установка

sudo dnf install squid -y
sudo systemctl enable --now squid

Шаг 2: Базовая конфигурация
Отредактируйте /etc/squid/squid.conf:

http_port 3128
acl local_net src 192.168.1.0/24
http_access allow local_net
cache_dir ufs /var/spool/squid 5000 16 256

Шаг 3: Запуск и проверка

sudo firewall-cmd --add-port=3128/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl restart squid
curl --proxy http://localhost:3128 example.com

Настройка HAProxy для балансировки нагрузки

Для распределения трафика между серверами:

  1. Установите HAProxy: sudo dnf install haproxy
  2. Настройте /etc/haproxy/haproxy.cfg:
    frontend http_front
       bind *:80
       default_backend http_back
    
    backend http_back
       balance roundrobin
       server server1 192.168.1.10:80 check
       server server2 192.168.1.11:80 check
  3. Включите в firewalld порт 80 и запустите сервис.

Обеспечение безопасности прокси-сервера на RHEL

  • FirewallD: Ограничьте доступ только к нужным портам:
    sudo firewall-cmd --zone=public --add-port=3128/tcp
  • SELinux: Убедитесь в корректности контекста:
    semanage port -a -t http_cache_port_t -p tcp 3128
  • Аутентификация: Для Squid добавьте в squid.conf:
    auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
    acl auth_users proxy_auth REQUIRED
    http_access allow auth_users

Мониторинг и управление прокси-сервером

Используйте встроенные инструменты RHEL:

  • Journalctl: journalctl -u squid -f для просмотра логов.
  • Squid: squidclient mgr:info — статистика кэша.
  • HAProxy: Включите stats в конфиге для веб-интерфейса мониторинга.
  • Prometheus+Grafana: Для визуализации метрик нагрузки.

Часто задаваемые вопросы (FAQ)

Q: Как проверить работоспособность Squid на RHEL?
A: Выполните: systemctl status squid и curl -x http://localhost:3128 ya.ru

Q: Можно ли настроить прозрачный прокси в RHEL?
A: Да, через iptables/nftables редирект трафика на порт Squid с опцией intercept в squid.conf.

Q: Как обновить сертификаты TLS для HTTPS-прокси?
A: Для HAProxy замените файл в директиве bind ... ssl crt /path/to/cert.pem и выполните systemctl reload haproxy.

Q: Какие альтернативы Squid для кэширования?
A: Varnish Cache или Nginx в качестве reverse proxy с кэшированием.

Q: Как ограничить скорость загрузки через прокси?
A: В Squid используйте delay_pools, в HAProxy — limit-rate.

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