Force TCP socket disconnect on imap login failure?
Jan Hugo Prins
jhp at jhprins.org
Tue May 24 07:36:29 UTC 2022
Just a few comments.
- The below commands drops ALL future connections to the IMAP ports and
not just the one from that specific IP address.
- It all depends on the ordering of the rest of your iptables rules. A
lot of iptables setups have an accept related / established in the top
of the INPUT chain and then indeed the traffic will continue as long as
the connection is established. If you put a correct drop rule in the top
of your iptables INPUT chain it will block all traffic including any
related/established.
Fail2Ban is able to insert such a drop rule in the top of the INPUT
chain and thereby block all further tries.
This is exactly how I have setup my fail2ban and it works.
The first few lines of my iptables input chain look like this:
29M 2249M f2b-dovecot tcp -- * * 0.0.0.0/0
0.0.0.0/0 multiport dports 110,143,993,995
9969K 2545M f2b-sasl tcp -- * * 0.0.0.0/0
0.0.0.0/0 multiport dports 25,465
9691K 2788M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
134M 257G ACCEPT all -- * * 0.0.0.0/0
0.0.0.0/0 state RELATED,ESTABLISHED
Jan Hugo Prins
On 5/23/22 23:16, Hippo Man wrote:
> OOPS! I incorrectly copied and pasted the iptables command in my
> previous message. Here is the correct iptables command:
>
> iptables -I INPUT -p tcp -m multiport --destination-port 143,993 -d
> aaa.bbb.ccc.ddd -j DROP
>
> This command successfully blocks *future* connections to ports 143 and
> 993 from that IP address, but as I mentioned, it doesn't kill the
> currently open connection.
>
> --
> hippoman at gmail.com
> Take a hippopotamus to lunch today.
>
>
> On Mon, May 23, 2022 at 4:54 PM Hippo Man <hippoman at gmail.com> wrote:
>
> Thank you, but fail2ban doesn't do what I need. Here is why ...
>
> I have used fail2ban and also my own homegrown log monitor program
> for this purpose. In both cases, I can detect the failed imap
> logins and then cause the following command to be run ...
>
> iptables -I INPUT -p tcp --destination-port aaa.bbb.ccc.ddd -j DROP
>
> However, this does not drop connections that are existing and
> already open. It will only drop *future* connections from that IP
> address to port 143.
>
> This is why I want to kill the existing connection. Even after
> that "iptables" command is issued, the entity which is connected
> to the imap port can continue to send more and more imap commands.
>
> If I can drop the TCP connection as soon as an imap login fails
> and also issue that kind of "iptables" command, then the client
> would have to reconnect in order to retry other login attempts.
> Those future connections would then be successfully blocked by
> that iptables rule.
>
> And even if I issue a "tcpdrop" command instead of just the
> "iptables" command, it doesn't kill the already-open connection.
> It just force-blocks future connections.
>
> I'm thinking of patching the dovecot source code to create a
> personal version which immediately disconnects from the socket
> after login failure. Of course, I would prefer not to do that, if
> there is another way to accomplish this.
>
> --
> hippoman at gmail.com
> Take a hippopotamus to lunch today.
>
>
> On Mon, May 23, 2022 at 4:24 PM Jan Hugo Prins <jhp at jhprins.org>
> wrote:
>
> Look at fail2ban.
> Should be able to do that for you.
>
> Jan Hugo
>
>
> On 5/23/22 21:11, Lloyd Zusman wrote:
>> I'm running dovecot 2.2.13 under Debian 8.
>>
>> I'd like to force an immediate TCP socket disconnect after
>> any imap login attempt that fails.
>>
>> Right now, if invalid credentials are supplied during an imap
>> login, the client can keep retrying logins with different
>> credentials. However, I want to prevent that from occurring
>> by causing the socket connection to be closed as soon as
>> there is any failed login attempt.
>>
>> I haven't been able to find any |dovecot| configuration
>> setting which could control this behavior, but I'm hoping
>> that I just missed something.
>>
>> Thank you very much for any suggestions.
>>
>> --
>> hippoman at gmail.com
>> Take a hippopotamus to lunch today.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20220524/01af8f13/attachment-0001.htm>
More information about the dovecot
mailing list