Bug#973654: TLS: start_SSL fails to set SSL_verifycn_name
Brian May
brian at linuxpenguins.xyz
Thu Nov 5 21:48:45 CET 2020
Hello,
I received this bug report against amavisd-new in Debian.
For full details please see http://bugs.debian.org/
Thanks
Martina Ferrari <tina at debian.org> writes:
> Package: amavisd-new
> Version: 1:2.11.0-6.1
> Severity: important
>
> Hi,
>
> As part of a new server setup, I have installed amavisd-new. Since it is
> running in a different host than the MX, I have set up TLS between every part
> of the system, but amavis fails to connect back to the MX, with the following
> error:
>
> (!!)Upgrading socket to TLS failed (in ssl_upgrade): hostname verification failed\n
>
> After some investigation, I found that amavis is not using the IO::Socket::SSL
> library correctly. The default (and reasonable) SSL parameters for the client
> TLS connection are:
>
> %smtp_tls_client_options = (
> SSL_verifycn_scheme => 'smtp',
> );
>
> When the `$tls_security_level_out` variable is set to 'may' or 'encrypt', the
> socket is upgraded to TLS using the `start_SSL` method and the options set by
> the user but without any way for the library to determine the hostname of the
> server, and therefore its identity can't be verified.
>
> The documentation for the `SSL_verifycn_name` option of the `start_SSL` method
> states (https://metacpan.org/pod/IO::Socket::SSL#SSL_verifycn_name):
>
> SSL_verifycn_name
>
> Set the name which is used in verification of hostname. If
> SSL_verifycn_scheme is set and no SSL_verifycn_name is given it will try to
> use SSL_hostname or PeerHost and PeerAddr settings and fail if no name can
> be determined. If SSL_verifycn_scheme is not set it will use a default
> scheme and warn if it cannot determine a hostname, but it will not fail.
>
> Using PeerHost or PeerAddr works only if you create the connection directly
> with IO::Socket::SSL->new, if an IO::Socket::INET object is upgraded with
> start_SSL the name has to be given in SSL_verifycn_name or SSL_hostname.
>
> The solution for this is pretty simple: `SSL_verifycn_name` has to be set by
> the calling function using the same hostname used to connect the TCP socket in
> the first place. A workaround is to pass this option manually in the
> configuration, but that fails to work if there is more than one SSL target (for
> example, different hostnames for `notify_method` and `forward_method`).
>
> -- System Information:
> Debian Release: 10.6
> APT prefers stable-updates
> APT policy: (500, 'stable-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 4.19.0-9-amd64 (SMP w/1 CPU core)
> Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8), LANGUAGE=en_IE:en (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> Versions of packages amavisd-new depends on:
> ii adduser 3.118
> ii debconf [debconf-2.0] 1.5.71
> ii file 1:5.35-4+deb10u1
> ii init-system-helpers 1.56+nmu1
> ii libarchive-zip-perl 1.64-1
> ii libberkeleydb-perl 0.55-2
> ii libconvert-tnef-perl 0.18-1
> ii libconvert-uulib-perl 1:1.5~dfsg-1+b1
> pn libdigest-md5-perl <none>
> ii libio-stringy-perl 2.111-3
> ii libmail-dkim-perl 0.54-1
> ii libmailtools-perl 2.18-1
> pn libmime-base64-perl <none>
> ii libmime-tools-perl 5.509-1
> ii libnet-libidn-perl 0.12.ds-3+b1
> ii libnet-server-perl 2.009-1
> ii libunix-syslog-perl 1.1-3+b1
> ii lsb-base 10.2019051400
> ii pax 1:20190224-1
> ii perl [libtime-hires-perl] 5.28.1-6+deb10u1
> ii perl-modules-5.24 [libarchive-tar-perl] 5.24.1-3+deb9u6
>
> Versions of packages amavisd-new recommends:
> pn altermime <none>
> ii libnet-patricia-perl 1.22-1+b5
> ii ripole 0.2.0+20081101.0215-3
>
> Versions of packages amavisd-new suggests:
> ii apt-listchanges 3.19
> ii arj 3.10.22-18
> ii cabextract 1.9-1
> pn clamav <none>
> ii clamav-daemon 0.102.4+dfsg-0+deb10u1
> ii cpio 2.12+dfsg-9
> pn dspam <none>
> ii lhasa 0.3.1-3
> pn libauthen-sasl-perl <none>
> ii libdbi-perl 1.642-1+deb10u1
> ii libmail-dkim-perl 0.54-1
> pn libnet-ldap-perl <none>
> pn libsnmp-perl <none>
> pn libzeromq-perl <none>
> ii lzop 1.03-4+b1
> ii nomarch 1.4-3+b2
> ii p7zip 16.02+dfsg-6
> pn rpm <none>
> ii spamassassin 3.4.2-1+deb10u2
> ii unrar 1:5.6.6-1
>
> -- Configuration Files:
> /etc/amavis/conf.d/05-node_id changed [not included]
> /etc/amavis/conf.d/15-content_filter_mode changed [not included]
> /etc/amavis/conf.d/50-user changed [not included]
> /etc/init.d/amavis changed [not included]
>
> -- no debconf information
--
Brian May <brian at linuxpenguins.xyz>
https://linuxpenguins.xyz/brian/
More information about the amavis-users
mailing list