HAProxy в качестве HTTP CONNECT прокси
Данное руководство описывает настройку HAProxy в режиме TCP-прокси для работы в качестве HTTP CONNECT forward-proxy.
Важно
HAProxy не расшифровывает TLS, он лишь устанавливает TCP-туннель после успешного HTTP CONNECT.
Спецификация метода CONNECT: MDN — HTTP CONNECT
Архитектура решения
text
- Agent отправляет HTTP CONNECT запрос
- HAProxy принимает TCP-соединение
- Lua-скрипт анализирует HTTP-заголовок
- Проверяется разрешённый target
- При успехе HAProxy отвечает HTTP/1.1 200 OK
- TCP-соединение переводится в режим туннеля
Листинг проекта
text
docker-compose.yaml
haproxy.cfg
http-connect.lua
Запуск
Сохраните файлы согласно структуре проекта.
Для self-hosted решения:
- замените
console.exploitdog.ru:443 - замените
server ed 178.216.96.182:443
bash
После запуска HAProxy будет слушать порт 3128.
Проверка работы
bash
При успешной настройке соединение будет установлено.
Настройка агента
{ipaddress} — IP-адрес сервера с HAProxy
Windows
Соберите MSI-пакет агента через центр обновления и укажите proxy:
text
Linux
При установке через Ansible:
yaml
macOS (Darwin)
Настройте proxy через GUI:
Proxy Укажите:
text