Я пытаюсь создать среду, использующую HAProxy, чтобы разрешить доступ к веб-сайтам, размещенным на локальных серверах (имеющих частный IP-адрес), через соединение SSL с использованием HAProxy Server (имеющего общедоступный и локальный частный IP-адреса). Я не хочу, чтобы HAProxy-сервер управлял сертификатом SSL для своих внутренних серверов, вместо этого внутренние серверы (т.е. локальные частные серверы) сами управляют сертификатами, а HAProxy просто использует сертификат внутреннего сервера для создания соединения. Возможно ли это с помощью HAProxy?

1 ответ1

0

Вот решение: с помощью TPROXY мы можем передавать IP-адреса клиентов на конкретный сервер без необходимости пересылки заголовка, и это работает для TCP-соединений.

Требования:

  1. Linux с ядром 2.6.28 и выше

  2. iptables и HAProxy с поддержкой TPROXY

  3. Внутренние серверы должны использовать узел, на котором установлен HAPRoxy, в качестве шлюза по умолчанию

  4. У вас уже есть рабочая конфигурация HAProxy

Процедура:

  1. Запустите команду ниже, чтобы пометить и направить пакеты
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 111
iptables -t mangle -A DIVERT -j ACCEPT
ip rule add fwmark 111 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
  1. Установите узел в режим пересылки:
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 > /proc/sys/net/ipv4/conf/eth0/send_redirects
  1. В разделе конфигурации внутреннего прокси HAProxy добавьте:

источник 0.0.0.0 использует клиентскую консоль

  1. Перезапустите службу HAProxy.

  2. Готово

Я нашел решение для этого, выполнив следующие шаги, приведенные в руководстве, указанном в приведенной ниже ссылке:http://www.loadbalancer.org/blog/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .