SSL_version inválida especificada em /usr/share/perl5/IO/Socket/SSL.pm linha 368

0
SMTP SEND CRITICAL - invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 368

Estou usando um script nagios / usr / lib / nagios / plugins / check_smtp_send que envia um e-mail usando o gmail.

Quando adiciono um diagnóstico, obtenho isto:

SMTP SEND CRITICAL - invalid SSL_version specified(SSLv3 TLSv1) at /usr/share/perl5/IO/Socket/SSL.pm line 368

Ubuntu 14.04 com nagios padrão da distro.

Alguém tem alguma idéia de como corrigir isso?

    
por k-h 15.12.2015 / 05:33

1 resposta

1

O código em check_smtp_send é buggy. Ele especifica diretamente uma string inválida para SSL_version ou usa um módulo que faz isso (o módulo Net::SMTP::TLS , muito antigo e não mantido, é conhecido por esse bug). Pode ser que seja corrigido em versões mais recentes do código.

Mas, dado que não tenho ideia de qual sistema operacional você está executando, a que pacote este código pertence e se este é um bug conhecido ou não, não posso realmente ajudar dizendo que ele já está corrigido e você deve atualizar ou para ser consertado. No último caso, posso ajudar, mas precisaria ter acesso ao código em questão.

Mais informações sobre esse tipo de problema podem ser encontradas em SSL_version inválida especificada em /usr/share/perl5/IO/Socket/SSL.pm linha 332 . Lá você encontra a causa direta (bad SSL_version), a causa indireta (verificações mais rigorosas de SSL_version em versões mais recentes do IO :: Socket :: SSL) e como corrigi-lo no código (corrija SSL_version no código buggy, não contornar alterando IO :: Socket :: SSL).

Com base no link : - o pacote foi atualizado pela última vez em 2011 - usa o antigo Net::SMTP::TLS que causa o problema

A solução alternativa é simplesmente remover a parte que define uma SSL_version errada de Net :: SMTP :: TLS. Esta deve ser a linha 182, consulte link .

Antes:

    if(not IO::Socket::SSL::socket_to_SSL($me->{sock},
            SSL_version     =>   "SSLv3 TLSv1")){
                    croak "Couldn't start TLS: ".IO::Socket::SSL::errstr."\n";
     }

Depois:

    if(not IO::Socket::SSL::socket_to_SSL($me->{sock})){
                    croak "Couldn't start TLS: ".IO::Socket::SSL::errstr."\n";
    }
    
por 15.12.2015 / 06:15