Como configurar o HAproxy com SSTP e HTTPS

1

Estou usando um roteador MikroTik com SSTP e tenho um servidor Fedora executando o httpd com HTTP e HTTPS, mas eu só tenho um único endereço IPv4 do meu ISP.

Atualmente, tenho o SSTP trabalhando na porta 444, mas preciso movê-lo para a porta 443 para ignorar o Great Firewall (recentemente, o governo chinês começou a bloquear o PPTP, portanto, quero me esconder completamente na porta 443).

Encontrei documentos sobre o balanceamento de carga SNI para o HAproxy, mas ainda não consegui por exemplo. link

Aqui está minha configuração (editada em 5 de julho de 2018 22:20 CET)

frontend  main 192.168.0.3:443 ssl ca-cert /etc/pki/tls/certs/sstp.crt
    use_backend sstp if { ssl_fc_sni sstp.mydoamin.com }
    use_backend websites if { ssl_fc_sni www.mydomain.com }
    default_backend             websites

backend websites
    mode        tcp
    balance     roundrobin
    server      www 127.0.0.1:443 check
backend sstp
    mode        tcp
    balance     roundrobin
    server      router 192.168.0.1:444 ca-cert /etc/pki/tls/certs/sstp.crt

Depois de editar o back-end para incluir o ca-cert, posso fazer com que o sstp se conecte quando eu alterar o default_backend para sstp

O haproxy -d não me fornece muitas informações de depuração. Eu não estou familiarizado o suficiente com a sintaxe para fazer o SNI funcionar, mas estou progredindo ...

Apenas tentei a sintaxe exata do exemplo e isso também não funciona

frontend  main 192.168.0.3:443 ssl ca-cert /etc/pki/tls/certs/sstp.crt
    use_backend sstp if { ssl_fc_sni sstp.example.com }
    acl application_1 req_ssl_sni -i sstp.example.com
    use_backend sstp if application_1
    default_backend             websites
    
por banjo67xxx 01.07.2018 / 22:33

1 resposta

0

Finalmente quebrou. Esta é a solução:

frontend  main 192.168.0.3:443 ssl
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }
    use_backend websites if { req_ssl_sni -m found }
    default_backend             sstp

O único problema aqui é que usar o IP público não funciona.

Editado em 6 de julho de 2018 às 13:00 CET para alterar o req_ssl_sni de combinar meus nomes de domínio para verificar simplesmente a presença de SNI

A documentação da lógica (também conhecida como lista de controle de acesso) é encontrada aqui link

    
por 05.07.2018 / 23:59