/usr/share/perl5/IO/Socket/SSL.pmの368行で指定されたSSL_versionが無効です。

/usr/share/perl5/IO/Socket/SSL.pmの368行で指定されたSSL_versionが無効です。
SMTP SEND CRITICAL - invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 368

Gmailを使用してメールを送信するには、nagiosスクリプト/usr/lib/nagios/plugins/check_smtp_sendを使用しています。

診断を追加すると、次の結果が表示されます。

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

ディストリビューションに標準nagiosが含まれているUbuntu 14.04。

この問題を解決する方法を知っている人はいますか?

ベストアンサー1

check_smtp_sendのコードにバグがあります。間違った文字列を直接指定するか、SSL_versionそうするモジュールを使用することです(非常に古くてメンテナンスされていないモジュールはこのバグとして知られていますNet::SMTP::TLS)。最新バージョンのコードでは修正されている可能性があります。

しかし、実行中のOSが何であるか、このコードがどのパッケージに属しているのかわからないことを考えると、これが既知のバグであれば修正されたので、アップグレードする必要があるかアップグレードする必要があると言う以外には役に立ちません。決定された。後者の場合は助けることができますが、関連コードにアクセスする必要があります。

これらの種類の問題の詳細については、以下にあります。/usr/share/perl5/IO/Socket/SSL.pmの332行で指定されたSSL_versionが無効です。。そこから直接的な原因(間違ったSSL_version)、間接的な原因(最新バージョンのIO :: Socket :: SSLでSSL_versionをより厳密にチェックする)、コードで問題を解決する方法(IO ::で誤ったコードSSL_versionを修正)見つけることができます。 Socket::SSL(この問題を変更しないでください)。

に基づいてhttps://exchange.nagios.org/directory/Plugins/Email-and-Groupware/check_email_delivery/details: - このパッケージは2011年に最後に更新されました。以前のバージョンを使用したときにNet::SMTP::TLS問題が発生しました。

回避策は、誤ったSSL_versionを設定するNet :: SMTP :: TLSセクションを単に削除することです。これは182番目の縮小でなければなりません。https://metacpan.org/source/AWESTHOLM/Net-SMTP-TLS-0.12/lib/Net/SMTP/TLS.pm#L182

今後:

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

後ろに:

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

おすすめ記事