Configurando o servidor stunnel de erros: 'SSL3_GET_CLIENT_HELLO: número da versão incorreta'

9

Estou configurando um servidor stunnel no Windows XP e recebo esse bug quando um cliente tenta acessar:

2013.02.14 00:02:16 LOG7[8848:7664]: Service [https] accepted (FD=320) from 107.20.36.147:56160
2013.02.14 00:02:16 LOG7[8848:7664]: Creating a new thread
2013.02.14 00:02:16 LOG7[8848:7664]: New thread created
2013.02.14 00:02:16 LOG7[8848:9792]: Service [https] started
2013.02.14 00:02:16 LOG5[8848:9792]: Service [https] accepted connection from 107.20.36.147:56160
2013.02.14 00:02:16 LOG7[8848:9792]: SSL state (accept): before/accept initialization
2013.02.14 00:02:16 LOG7[8848:9792]: SSL alert (write): fatal: handshake failure
2013.02.14 00:02:16 LOG3[8848:9792]: SSL_accept: 1408A10B: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
2013.02.14 00:02:16 LOG5[8848:9792]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
2013.02.14 00:02:16 LOG7[8848:9792]: Local socket (FD=320) closed
2013.02.14 00:02:16 LOG7[8848:9792]: Service [https] finished (0 left)

Alguma ideia do que fazer sobre isso? Eu li on-line que isso pode significar que o meu servidor está anunciando que ele pode se comunicar em SSL3, mas na verdade não pode. Se isso for verdade, gostaria de saber como posso consertar isso. Estou editando o arquivo stunnel.conf , mas não tenho ideia do que alterar nele para corrigir isso.

ATUALIZAÇÃO:

A mensagem de erro acima mostra apenas quando o cliente Twilio (por exemplo, o servidor do Twilio) tenta acessar meu servidor. Quando tento acessar meu servidor com um dos meus computadores, a página aparece, mas depois que o conteúdo é exibido, o Chrome mostra a página como "carregando" por cerca de 30 segundos, no final dos quais stunnel envia esta mensagem :

transfer: s_poll_wait: TIMEOUTclose exceeded: closing

ATUALIZAÇÃO:

Aqui está a captura do wireshark: link

Arquivo "cap": link

Observe que o servidor é executado na porta 8088.

ATUALIZAÇÃO:

Aqui está o log do servidor (com debug = 7):

2013.02.17 17:06:52 LOG7[7636:2092]: No limit detected for the number of clients
2013.02.17 17:06:52 LOG5[7636:2092]: stunnel 4.54 on x86-pc-msvc-1500 platform
2013.02.17 17:06:52 LOG5[7636:2092]: Compiled/running with OpenSSL 1.0.1c-fips 10 May 2012
2013.02.17 17:06:52 LOG5[7636:2092]: Threading:WIN32 SSL:+ENGINE+OCSP+FIPS Auth:none Sockets:SELECT+IPv6
2013.02.17 17:06:52 LOG5[7636:2092]: Reading configuration from file stunnel.conf
2013.02.17 17:06:52 LOG5[7636:2092]: FIPS mode is enabled
2013.02.17 17:06:52 LOG7[7636:2092]: Compression not enabled
2013.02.17 17:06:52 LOG7[7636:2092]: Snagged 64 random bytes from C:\Documents and Settings\User/.rnd
2013.02.17 17:06:52 LOG7[7636:2092]: Wrote 1024 new random bytes to C:\Documents and Settings\User/.rnd
2013.02.17 17:06:52 LOG7[7636:2092]: PRNG seeded successfully
2013.02.17 17:06:52 LOG6[7636:2092]: Initializing service [https]
2013.02.17 17:06:52 LOG7[7636:2092]: Certificate: G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Certificate loaded
2013.02.17 17:06:52 LOG7[7636:2092]: Key file: G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Private key loaded
2013.02.17 17:06:52 LOG7[7636:2092]: Could not load DH parameters from G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Using hardcoded DH parameters
2013.02.17 17:06:52 LOG7[7636:2092]: DH initialized with 2048-bit key
2013.02.17 17:06:52 LOG7[7636:2092]: ECDH initialized with curve prime256v1
2013.02.17 17:06:52 LOG7[7636:2092]: SSL options set: 0x03000004
2013.02.17 17:06:52 LOG5[7636:2092]: Configuration successful
2013.02.17 17:06:52 LOG7[7636:2092]: Service [https] (FD=268) bound to 0.0.0.0:8088
2013.02.17 17:07:08 LOG7[7636:2092]: Service [https] accepted (FD=320) from 54.242.25.199:45922
2013.02.17 17:07:08 LOG7[7636:2092]: Creating a new thread
2013.02.17 17:07:08 LOG7[7636:2092]: New thread created
2013.02.17 17:07:08 LOG7[7636:8004]: Service [https] started
2013.02.17 17:07:08 LOG5[7636:8004]: Service [https] accepted connection from 54.242.25.199:45922
2013.02.17 17:07:08 LOG7[7636:8004]: SSL state (accept): before/accept initialization
2013.02.17 17:07:08 LOG7[7636:8004]: SSL alert (write): fatal: handshake failure
2013.02.17 17:07:08 LOG3[7636:8004]: SSL_accept: 1408A10B: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
2013.02.17 17:07:08 LOG5[7636:8004]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
2013.02.17 17:07:08 LOG7[7636:8004]: Local socket (FD=320) closed
2013.02.17 17:07:08 LOG7[7636:8004]: Service [https] finished (0 left)

ATUALIZAÇÃO:

Aqui está o meu arquivo stunnel.conf

    
por Ram Rachum 08.02.2013 / 03:03

2 respostas

3

Você deve fazer uma captura de rede e ver por que ela foi rejeitada. Além disso, verifique os logs em ambos os pontos finais. Aumente o nível debug no conf stunnel.

Você precisa fazer um rastreamento de rede para descobrir qual versão do protocolo SSL o cliente está suportando. Em seguida, verifique se o seu servidor também suporta essa versão.

A client sends a ClientHello message specifying the highest TLS protocol version it supports, a random number, a list of suggested CipherSuites and suggested compression methods.

Fonte

Por favor, note que o protocolo SSL foi alterado há alguns anos devido a um erro de segurança na renegociação. Veja CVE-2009-3555 e esta página sobre Renegociação SSL

O servidor está respondendo com:

Secure Sockets Layer
    SSLv3 Record Layer: Alert (Level: Fatal, Description: Handshake Failure)
        Content Type: Alert (21)
        Version: SSL 3.0 (0x0300)
        Length: 2
        Alert Message
            Level: Fatal (2)
            Description: Handshake Failure (40)

Você precisa verificar os logs no servidor SSL para ver por que ele recusou a conexão. Tente ativar a depuração SSL no stunnel com: debug=7 .

O servidor stunnel tem options = NO_SSLv3 , mas o cliente está tentando se conectar usando SSLv3. Você precisa fazer upgrade do cliente para suportar uma versão mais nova do SSL ou precisa alterar a configuração stunnel para aceitar o SSLv3.

    
por 12.02.2013 / 21:34
0

Pode haver uma incompatibilidade de versão SSL entre o cliente e o servidor. Certifique-se de que o cliente esteja configurado apenas para SSL3, desabilitando versões mais antigas do SSL no cliente.

    
por 10.02.2013 / 03:31