Issue with LMTP proxying and port number
Stephan Bosch
stephan at rename-it.nl
Sun Jan 6 20:35:03 EET 2019
Op 06/01/2019 om 17:02 schreef Steven Craig:
> Thanks, its a weird one.
>
> On 1/6/2019 8:00 AM, Stephan Bosch wrote:
>>
>> Op 06/01/2019 om 11:50 schreef Stephan Bosch:
>>>
>>> Op 31/12/2018 om 23:59 schreef Steven Craig:
>>>> Hello there,
>>>>
>>>> Everything was working fine on Dovecot 2.2.10 (on CentOS 7), but
>>>> after updating to version 2.2.36, our director servers are not able
>>>> to proxy LMTP.
>>>>
>>>> We are sending mail from exim to the local Dovecot LMTP socket,
>>>> which then used to send it to our internal mail servers on port 24.
>>>>
>>>> Besides the update, nothing has changed in the config files. The
>>>> configuration has been working great for months … Then we had a
>>>> great idea of doing holiday maintenance.
>>>>
>>>> (Currently, we are working around this issue by having exim send
>>>> mail to the IP and port, instead of the socket.)
>>>>
>>>> Doing a tcpdump capture shows no TCP traffic either. The logs seem
>>>> to say that it is trying to go to port 0, so my guess is that it’s
>>>> not getting the port directive from either static or sql — since
>>>> the docs state that if these settings aren't specified, it will
>>>> always use the same connection type for the proxy that it received
>>>> the connection on.
>>>>
>>>> Any thoughts? I can share config if necessary.
>>>
>>> Yes, output from `dovecot -n` could be helpful.
>>>
>>> Also a literal dump of those errors in the log could help.
>>
>> Never mind, I can reproduce it here, even with master.
>>
>> We'll get back to you.
Actually, this is equally problematic for Dovecot v2.2.10. I could
reproduce this there too by my method (after some considerable
difficulty to get that compiled on a modern system). So, first of all, I
am wondering why this worked at your end in the first place and why it
finally failed upon upgrade.
The problem is that services like imap, pop3, managesieve, and
submission define a literal default port for proxying, while lmtp really
doesn't. Instead, LMTP uses the local port of the server as the default
for the outgoing proxy connection. With unix services, there is no local
port and hence no default, which instead results in using an (erroneous)
port 0.
Arguably, it would be useful to define a lmtp_proxy_port setting to have
a default for situations when none other can be obtained. LMTP has no
properly registered standard port, so hard-coding the default to 24
could be a bad idea.
Regards,
Stephan.
More information about the dovecot
mailing list