Оглавление

В этом материале разберем установку прокси-сервера Squid, используя контейнер Docker, на VPS с Ubuntu. Прокси-сервер Squid может помочь обойти блокировки обновлений WordPress, что особенно актуально при работе с хостингами в некоторых странах.

Шаг 1. Установка Docker на Ubuntu

По умолчанию, репозиторий Ubuntu не содержит последнюю версию Docker. Поэтому, для установки актуальной версии Docker CE (Community Edition), сначала необходимо добавить официальный репозиторий Docker в APT.

  1. Установите зависимости для работы с безопасными репозиториями и внешними пакетами. Для этого выполните команду:
   sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
  1. После установки зависимостей добавьте GPG-ключ репозитория Docker. Это необходимо для проверки целостности и подлинности пакетов:
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Добавьте репозиторий Docker CE в список APT:
   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
  1. Проверьте, что репозиторий добавлен корректно, и APT видит пакеты Docker:
   apt-cache policy docker-ce

Вы должны увидеть вывод с перечнем версий Docker, доступных для установки.

  1. Установите Docker с помощью команды:
   sudo apt install docker-ce -y
  1. Проверьте состояние службы Docker после установки:
   sudo systemctl status docker

Если все прошло успешно, Docker должен быть активен, что подтверждается строкой: Active: active (running).

  1. Убедитесь, что Docker установлен корректно, проверив его версию:
   docker --version

Шаг 2. Установка Docker Compose

Docker Compose — это инструмент для управления многоконтейнерными приложениями. Для установки выполните:

sudo apt install docker-compose -y

Проверьте версию Docker Compose:

docker-compose --version

Шаг 3. Настройка Squid с помощью Docker Compose

Теперь, когда Docker установлен, мы можем создать контейнер с прокси-сервером Squid. Для этого используем Docker Compose.

  1. Создайте директорию для файлов конфигурации Squid:
   mkdir squid
   cd squid
  1. Создайте файл конфигурации Docker Compose:
   nano docker-compose.yaml

Вставьте в файл следующие строки:

   version: "3"
   services:
     proxy:
       image: ubuntu/squid
       ports:
         - "8080:3128"
       volumes:
         - ./squid.conf:/etc/squid/squid.conf
         - ./passwords:/etc/squid/passwords
       restart: always
  1. Создайте файл конфигурации Squid:
   nano squid.conf

Вставьте следующий конфигурационный файл Squid:

   acl localnet src 10.0.0.0/8
   acl localnet src 172.16.0.0/12
   acl localnet src 192.168.0.0/16
   acl SSL_ports port 443
   acl Safe_ports port 80
   acl Safe_ports port 443
   acl Safe_ports port 21
   acl CONNECT method CONNECT
   auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
   auth_param basic realm my-proxy-name
   acl authenticated proxy_auth REQUIRED
   http_access allow authenticated
   http_port 3128
   cache deny all
   access_log none
   cache_log /dev/null

В этой конфигурации добавлена аутентификация для пользователей через файл паролей passwords.

  1. Создайте файл для хранения паролей пользователей:
   nano passwords

Файл можно будет наполнить, используя утилиту htpasswd.

Шаг 4. Запуск контейнера Squid

После завершения настройки конфигурации, вы можете запустить контейнер с прокси-сервером Squid. Выполните следующую команду:

docker-compose up -d

Если все прошло успешно, контейнер будет запущен в фоновом режиме. Проверьте состояние контейнера:

docker ps

Вы должны увидеть контейнер Squid в состоянии Up.

Шаг 5. Добавление пользователей

Чтобы добавить пользователя с паролем для доступа к прокси, воспользуйтесь утилитой htpasswd. Например, для создания первого пользователя:

sudo htpasswd -c passwords имя_пользователя

Для добавления последующих пользователей:

sudo htpasswd passwords имя_пользователя

Шаг 6. Настройка прокси в WordPress

Чтобы WordPress использовал прокси для обхода блокировок, внесите изменения в файл wp-config.php, добавив следующие строки:

define('WP_PROXY_HOST', 'localhost');
define('WP_PROXY_PORT', '3128');
define('WP_PROXY_USERNAME', 'username');
define('WP_PROXY_PASSWORD', 'password');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com');

Эти настройки позволят WordPress взаимодействовать с прокси-сервером Squid, передавая обновления через авторизованное подключение.

Заключение

Теперь ваш прокси-сервер Squid полностью настроен и запущен в Docker на VPS с Ubuntu. Используя эту схему, вы можете обеспечить беспрепятственный доступ к обновлениям WordPress, а также настроить прокси для других приложений.