Настройка SQUID для обхода ограничений для западных репозиториев

В этом руководстве будет описано, как настроить прокси-сервер для обработки запросов к URL-адресам репозиториев, которые не доступны из России. Прокси-сервер будет перенаправлять трафик только для этих URL-адресов, что позволит обходить ограничения доступа. Мы используем Squid для настройки прокси-сервера в НАЙС ОС.

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

Установка Squid

Для установки Squid в НАЙС ОС выполните следующие шаги:

  1. Обновите пакеты системы:
  2. sudo tdnf update
  3. Установите Squid:
  4. sudo tdnf install -y squid

Настройка Squid

Для настройки Squid выполните следующие шаги:

  1. Откройте файл конфигурации Squid:
  2. sudo nano /etc/squid/squid.conf
  3. Добавьте или измените следующие строки в файле конфигурации:
  4. 
    acl SSL_ports port 443
    acl Safe_ports port 80  # http
    acl Safe_ports port 443  # https
    acl Safe_ports port 1025-65535  # unregistered ports
    acl CONNECT method CONNECT
    
    # Разрешаем доступ к репозиториям
    acl repo_urls dstdomain .yum.opennms.org .github.com .observium.org .cacti.net
    http_access allow repo_urls
    
    # Запрещаем доступ ко всем остальным URL
    http_access deny all
    
    # Настройка прослушивания на порту 3128
    http_port 3128
    
    # Настройка кеша
    cache_mem 256 MB
    maximum_object_size_in_memory 512 KB
    cache_dir ufs /var/spool/squid 1000 16 256
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log /var/log/squid/store.log
    
    # Настройка DNS
    dns_nameservers 8.8.8.8 8.8.4.4
    
    # Настройка пользователей
    auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd
    auth_param basic children 5
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    acl authenticated proxy_auth REQUIRED
    http_access allow authenticated
    
    # Разрешаем доступ ко всем авторизованным пользователям
    http_access allow localhost manager
    http_access deny manager
    http_access allow localhost
        
  5. Создайте файл с учетными данными пользователей для доступа к прокси-серверу:
  6. sudo htpasswd -c /etc/squid/squid_passwd your_username
    sudo htpasswd /etc/squid/squid_passwd another_username
  7. Перезапустите Squid для применения изменений:
  8. sudo systemctl restart squid
    sudo systemctl enable squid

Настройка клиентов для использования прокси-сервера

Для настройки клиентов, таких как dnf и tdnf, для использования прокси-сервера выполните следующие шаги:

Настройка dnf и tdnf

Добавьте настройки прокси в файл конфигурации dnf и tdnf:

  1. Откройте файл конфигурации dnf:
  2. sudo nano /etc/dnf/dnf.conf
  3. Добавьте следующие строки в файл:
  4. 
    [main]
    proxy=http://your_proxy_server_ip:3128
    proxy_username=your_username
    proxy_password=your_password
        
  5. Откройте файл конфигурации tdnf:
  6. sudo nano /etc/tdnf/tdnf.conf
  7. Добавьте следующие строки в файл:
  8. 
    [main]
    proxy=http://your_proxy_server_ip:3128
    proxy_username=your_username
    proxy_password=your_password
        

Заключение

Мы рассмотрели процесс установки и настройки Squid для работы в качестве прокси-сервера, который обрабатывает запросы только к определенным URL-адресам репозиториев. Это поможет обойти ограничения доступа, установленные для этих ресурсов. Понимание настройки и использования прокси-сервера является важным навыком для сетевых администраторов и DevOps-инженеров. Продолжайте изучать и применять эти знания на практике для создания надежных и безопасных сетевых решений.