Прокси для частных локаций

Материал из Документация Ключ-АСТРОМ
Версия от 16:20, 3 сентября 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Прокси для частных локаций = В развертывание Ключ-АСТРОМ можно включать прокси-серверы, балансировщики нагрузки и обратные прокси-серверы. В частности, конфигурация АктивногоШлюза позволяет определить один или несколько прокси-серверов для исходящ...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Прокси для частных локаций

В развертывание Ключ-АСТРОМ можно включать прокси-серверы, балансировщики нагрузки и обратные прокси-серверы. В частности, конфигурация АктивногоШлюза позволяет определить один или несколько прокси-серверов для исходящих соединений.

Для настройки прокси-сервера для связи с тестируемым ресурсом отредактируйте файл custom.properties и задайте свойства в соответствующем разделе [synthetic].

Чтобы настроить прокси-сервер только для внутренней связи с кластером Ключ-АСТРОМ, см. раздел «Настройки для связи только с кластером Ключ-АСТРОМ».

Чтобы настроить один и тот же прокси-сервер как для тестируемого ресурса, так и для кластера Ключ-АСТРОМ, задайте свойства в соответствующем разделе [http.client].

Свойства конфигурации прокси

При настройке прокси для АктивногоШлюза с поддержкой синтетических алгоритмов можно использовать следующие свойства:

Свойство Описание
proxy-server Адрес сервера (имя хоста или IP-адрес)
proxy-port Порт (необязательный). Если оставить поле пустым, будет использоваться порт по умолчанию 8080.
proxy-scheme Схема (необязательный). Если поле оставить пустым, используется схема по умолчанию http. Применяется наиболее распространённая конфигурация, при которой соединение с прокси-сервером инициируется с использованием HTTP и автоматически преобразуется в защищённое. Вся дальнейшая связь АктивногоШлюза через прокси-сервер защищена протоколом SSL/TLS. Этот параметр необходимо установить в https для прокси-серверов, которые вообще не поддерживают HTTP.
proxy-user Имя пользователя (необязательный)
proxy-domain Домен пользователя в случае аутентификации NTLM
proxy-password Пароль (необязательный). После перезапуска АктивногоШлюза пароль, указанный в свойстве proxy-password, шифруется, и зашифрованный пароль сохраняется в свойстве proxy-password-encr. Если запятая (,) является частью значения, перед ней необходимо добавить экранирующую обратную косую черту (\). Например, proxy-password = foo\,bar.
proxy-off Если установить это значение true, прокси-сервер будет отключён для данного типа связи.
proxy-non-proxy-hosts . В качестве символа-заменителя можно также использовать звёздочку (*). Допускается только один символ-заменитель, либо в начале, либо в конце имени хоста. Например, proxy-non-proxy-hosts=*.foo.com|localhost означает, что доступ ко всем хостам в домене foo.com и localhost должен осуществляться напрямую, даже если указан прокси-сервер. Полное описание допустимого синтаксиса см. в разделе «Свойства сети» http.nonProxyHosts для соответствующего параметра.
proxy-authentication-schemes АктивныйШлюз версии 1.271+. Список схем аутентификации через прокси-сервер (необязательный). Это приоритетный список схем аутентификации через прокси-сервер, которые АктивныйШлюз должен использовать при аутентификации с прокси-сервером. Начиная с первой схемы в списке, АктивныйШлюз попытается выполнить аутентификацию и, в случае неудачи, перейдёт к следующей схеме в списке. Если это свойство не определено, АктивныйШлюз попытается выполнить аутентификацию, используя все доступные схемы. Поддерживаемые значения: NTLM, BASIC.

Сценарии подключения через прокси-сервер

Это возможные сценарии для вашей конфигурации прокси. Доступ к тестируемому ресурсу через прокси поддерживается только для браузерных мониторов и HTTP-мониторов.

Подключитесь к кластеру Ключ-АСТРОМ

[http.client]
proxy-server=<proxy>
proxy-port=8080
proxy-user=username
proxy-password=password

[synthetic]
proxy-off=true

Подключитесь одновременно к кластеру Ключ-АСТРОМ и к тестируемому ресурсу

[http.client]
proxy-server=<proxy>
proxy-port=8080
proxy-user=username
proxy-password=password

Подключитесь к кластеру Ключ-АСТРОМ и протестированным ресурсам через различные прокси-серверы

Подключитесь к кластеру Ключ-АСТРОМ:

[http.client]
proxy-server=<proxy>
proxy-port=8080
proxy-user=username
proxy-password=password

Подключитесь к проверяемому ресурсу:

[synthetic] proxy-server=<прокси между AG и проверяемым ресурсом> proxy-port=9090 proxy-user=username_two proxy-password=password_two

Подключитесь к проверяемому ресурсу и/или Amazon S3

Для работы АктивногоШлюза с поддержкой синтетического анализа требуется доступ к сервису Amazon S3 для загрузки и просмотра снимков экрана браузера в закрытых помещениях.

[synthetic]
proxy-server=<прокси между AG и проверяемым ресурсом>
proxy-port=8080
proxy-user=username
proxy-password=password

Для получения дополнительной информации см. файлы автоматической настройки прокси-сервера (PAC).

Настройте синтетический мониторинг с прямым подключением к другим ресурсам

[synthetic]
proxy-server=<прокси между AG и проверяемым ресурсом>
proxy-port=8080
proxy-user=username
proxy-password=password
proxy-non-proxy-hosts=my.corp.org|*.gdansk.astromkey.com

Файлы автоматической настройки прокси-сервера (PAC)

Для настройки сложных параметров прокси-сервера для мониторинга браузера в приватном режиме можно использовать файлы автоматической настройки прокси (PAC).

Что такое PAC-файл?

Файл автоматической настройки прокси (PAC) — это функция JavaScript, которая определяет, будут ли запросы веб-браузера (HTTP, HTTPS и FTP) направляться непосредственно к месту назначения или перенаправляться на веб-прокси-сервер (подробнее см. файл автоматической настройки прокси (PAC) на developer.mozilla.org).

Предоставьте PAC-файл мониторам вашего браузера

  1. Перейдите в раздел Синтетический мониторинг.
  2. (Необязательно) Чтобы отфильтровать таблицу по мониторам браузеров, выберите Браузер в разделе Параметры фильтра слева.
  3. Из списка мониторов браузера выберите тот монитор, для которого вы хотите предоставить PAC-файл. После этого справа отобразится панель предварительного просмотра.
  4. В правом верхнем углу панели предварительного просмотра выберите Редактировать.
  5. С этого момента вы будете перенаправлены на предыдущую страницу Ключ-АСТРОМ, где сможете указать URL-адрес PAC-файла.
  6. Переключитесь в режим сценария.
    • Для создания clickpatch выберите Записанный clickpatch > Скрипт.
    • Для мониторинга по одному URL-адресу выберите Скрипт монитора.
  7. Добавьте следующее в объект configuration JSON-файла:
"proxy": {
  "pacUrl": "https://www.example.com/test.pac"
}
  1. pacUrl указывает на ваш размещённый PAC-файл.

Совместимость конфигурации файла PAC

  • Конфигурация PAC-файла применяется только к частным синтетическим локациям, а не к общедоступным.
  • Конфигурация PAC-файла применяется только к настроенному вами монитору — для каждого отдельного монитора PAC-файл должен быть настроен в его скрипте; нет глобальной настройки для всех мониторов, позволяющей использовать PAC-файл для прокси-сервисов.
  • Если вы настраиваете прокси-файл PAC для одного скрипта синтетического мониторинга, он применяется только к этому монитору.
  • Если указан PAC-файл, он переопределяет настройки прокси-сервера, заданные на уровне АктивногоШлюза для связи с тестируемым ресурсом. В частности, он переопределяет свойства в соответствующем разделе [synthetic].
  • Файл PAC должен передаваться по протоколу HTTP/S.

Настройка прокси-сервера для режима FIPS

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

В этом примере мы используем прокси-сервер Squid, подключённый к встроенной библиотеке OpenSSL, но вы можете использовать другое прокси-программное обеспечение, если его криптографическая библиотека сертифицирована по стандарту FIPS.

Установите прокси-сервер на том же хосте, что и синтетический движок:

Red Hat

sudo dnf install squid

Ubuntu Pro

sudo apt install squid-openssl

Предоставьте сертификат центра сертификации для повторной подписи перехваченных запросов:

Red Hat

sudo mkdir /etc/squid/ssl_cert
sudo mv ~/prepared_ca_cert.pem /etc/squid/ssl_cert/squid.pem
sudo chown --recursive squid:squid /etc/squid/ssl_cert
sudo chmod 700 /etc/squid/ssl_cert
sudo chmod 600 /etc/squid/ssl_cert/squid.pem

Ubuntu Pro

sudo mkdir /etc/squid/ssl_cert
sudo mv ~/prepared_ca_cert.pem /etc/squid/ssl_cert/squid.pem
sudo chown --recursive proxy:proxy /etc/squid/ssl_cert
sudo chmod 700 /etc/squid/ssl_cert
sudo chmod 600 /etc/squid/ssl_cert/squid.pem

Если включена функция SELinux, может потребоваться корректировка меток файлов. Подробности см. в документации Red Hat для Red Hat Enterprise Linux 8 или Red Hat Enterprise Linux 9.

Создать временный кэш сертификатов:

Red Hat

sudo /usr/lib64/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
sudo chown --recursive squid:squid /var/spool/squid/ssl_db

Ubuntu Pro

sudo /usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
sudo chown --recursive proxy:proxy /var/spool/squid/ssl_db

Настройте прокси-сервер для перехвата SSL-сообщений (по умолчанию /etc/squid/squid.conf):

acl SSL_ports port 443 acl Safe_ports port 80 443 1025-65535 acl CONNECT method CONNECT

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/squid.pem

acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump bump all cache deny all

Для вступления изменений в силу перезапустите прокси-сервер:

sudo systemctl enable squid sudo systemctl restart squid

Убедитесь, что прокси-сервер работает корректно:

curl --proxy localhost:3128 https://example.com

(Необязательно) Если вы выбрали другой порт прокси, вам необходимо настроить синтетическую конфигурацию (по умолчанию /var/lib/astromkey/synthetic/config/user.properties):

com.vuc.fips.proxy.port=3128

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

Если в вашей организации требуется использование корпоративного прокси-сервера, вам необходимо настроить второй локальный экземпляр Squid из-за ограничений Squid:

Если вы используете другое прокси-программное обеспечение, это может быть к вам неактуально.

  1. Настройте прокси-сервер для FIPS, как описано в предыдущем разделе.
  2. Требуется определённая версия Squid 5+, поэтому версии Red Hat 8 и Ubuntu 20 не поддерживаются.
  3. На том же хосте создайте второе определение службы Squid:

Red Hat

/usr/lib/systemd/system/squid2.service

[Unit]
Description: Squid with upstream proxy.
After=network.target network-online.target nss-lookup.target

[Service]
Type=notify
LimitNOFILE=16384
PIDFile=/run/squid2.pid
ExecStart=/usr/sbin/squid --foreground -n squid2 -f "/etc/squid/squid2.conf"
ExecReload=/usr/bin/kill -HUP $MAINPID
KillMode=mixed
NotifyAccess=all

[Install]
WantedBy=multi-user.target

Ubuntu Pro

/lib/systemd/system/squid2.service

[Unit]
Description: Squid with upstream proxy.
After=network.target network-online.target nss-lookup.target

[Service]
Type=notify
PIDFile=/run/squid2.pid
Group=proxy
RuntimeDirectory=squid2
RuntimeDirectoryMode=0775
ExecStart=/usr/sbin/squid --foreground -sYC -n squid2 -f "/etc/squid/squid2.conf"
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
NotifyAccess=all

[Install]
WantedBy=multi-user.target

Создайте вторую конфигурацию прокси-сервера (/etc/squid/squid2.conf) и укажите хост, порт и аутентификацию вашего корпоративного прокси-сервера:

acl SSL_ports port 443 acl Safe_ports port 80 443 1025-65535 acl CONNECT method CONNECT

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all http_port 3129

access_log daemon:/var/log/squid/access2.log squid cache_log /var/log/squid/cache2.log pid_filename /run/squid2.pid

cache_peer upstream-proxy.example.com parent 443 0 default no-digest proxy-only login=proxyuser:proxypass tls tls-min-version=1.2 tls-options=NO_SSLv3 never_direct allow all visible_hostname squid2 cache deny all

Обновите конфигурацию первого прокси-сервера (/etc/squid/squid.conf), чтобы использовать второй прокси-сервер в качестве родительского, добавив следующие строки:

cache_peer localhost parent 3129 0 default no-digest proxy-only never_direct allow all visible_hostname squid1

Перезапустите обе службы Squid:

sudo systemctl daemon-reload sudo systemctl enable squid2 sudo systemctl start squid2 sudo systemctl restart squid

Убедитесь, что цепочка прокси-серверов работает корректно:

curl --proxy localhost:3128 https://example.com

Вопросы распределения ресурсов

  • Каждому сервису Squid требуется дополнительно 500 МиБ оперативной памяти, что необходимо учитывать при выборе размера экземпляра для конкретной рабочей нагрузки.
  • Запросы, проходящие через несколько прокси-серверов, будут выполняться дольше, поэтому показатели производительности будут хуже, чем у запросов от экземпляра, не соответствующего стандарту FIPS.