<div dir="ltr"><div>Hi there.</div><div><br></div><div>Tom, thanks for your reply. Indeed webmail (roundcube) has its own mechanism for consecutive wrong logins, but I would like to have everything centralized in one place (fail2ban in the container running dovecot).</div><div><br></div><div>Aki, thanks for your reply. Everything is working as expected, webmail (roundcube) is sending the public IP address (8.8.8.8 in this example) to dovecot, which is logging it like:</div><div><br></div><div>```</div><div>Dec 21 13:33:50 mail dovecot: imap-login: Login: user=<<a href="mailto:user1@example.com">user1@example.com</a>>, method=PLAIN, rip=8.8.8.8, lip=10.163.18.3, mpid=17151, TLS, session=<oXIwgvm2fo9fF1Jz></div><div>```</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 21 Dec 2020 at 13:20, Aki Tuomi <<a href="mailto:aki.tuomi@open-xchange.com">aki.tuomi@open-xchange.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dovecot can log client IP instead of connection IP, when webmail passes this information over using IMAP `ID` command, and webmail server has been added to login_trusted_networks.<br>
<br>
The keywords used for this feature are<br>
<br>
x-originating-ip<br>
x-originating-port<br>
x-connected-ip<br>
x-connected-port<br>
x-proxy-ttl (hop count)<br>
<br>
Aki<br>
<br>
> On 21/12/2020 14:12 Tom Hendrikx <<a href="mailto:tom@whyscream.net" target="_blank">tom@whyscream.net</a>> wrote:<br>
> <br>
>  <br>
> Hi,<br>
> <br>
> Ideally the webmail has it's own logfile, where it also emits error <br>
> messages containing the ip-address of the failed login attempt. This <br>
> could be as simple as a HTTP 401 error in the nginx/apache logfile on <br>
> the webmail domain. You can then instruct fail2ban to read that logfile <br>
> and disallow access to the webmail for the ip address.<br>
> <br>
> In the end, the attempts try to access the webmail, and not the IMAP <br>
> server directly. So it's better to block access to the webmail/web server.<br>
> <br>
> Kind regards,<br>
>       Tom<br>
> <br>
> On 21-12-2020 11:16, Javi Legido wrote:<br>
> > Hi there.<br>
> > <br>
> > First of all many thanks to all the people involved in this project for <br>
> > their time, I really appreciate it.<br>
> > <br>
> > Second my use case:<br>
> > <br>
> > a) Container running Webmail (roundcube) with dovecot-ident plugin <br>
> > enabled <br>
> > <<a href="https://github.com/roundcube/roundcubemail/issues/5336#issuecomment-228131074" rel="noreferrer" target="_blank">https://github.com/roundcube/roundcubemail/issues/5336#issuecomment-228131074</a>>.<br>
> > b) Container running Dovecot  2.3.4.1 (docker-mailserver-mysql <br>
> > <<a href="https://github.com/Kedu-SCCL/docker-mailserver-mysql" rel="noreferrer" target="_blank">https://github.com/Kedu-SCCL/docker-mailserver-mysql</a>>) with fail2ban <br>
> > enabled<br>
> > <br>
> > Since I need to add the private IP address of the webmail to <br>
> > "login_trusted_networks" to "...allow to override their IP addresses and <br>
> > ports" I can keep login to webmail even though if the IP is blocked.<br>
> > <br>
> > Question: there's any way to:<br>
> > <br>
> > a) Allow a certain IP range to override it's IP address and ports (as in <br>
> > "login_trusted_networks") but<br>
> > b) Be blocked, as any other incoming connections, by fail2ban?<br>
> > <br>
> > More context. Once the public IP is banned (8.8.8.8 in this example):<br>
> > <br>
> > ```<br>
> > 2020-12-21 10:10:31,371 fail2ban.filter         [309]: INFO    [dovecot] <br>
> > Found 8.8.8.8 - 2020-12-21 10:10:31<br>
> > 2020-12-21 10:10:39,189 fail2ban.filter         [309]: INFO    [dovecot] <br>
> > Found 8.8.8.8 - 2020-12-21 10:10:39<br>
> > 2020-12-21 10:10:51,222 fail2ban.filter         [309]: INFO    [dovecot] <br>
> > Found 8.8.8.8 - 2020-12-21 10:10:51<br>
> > 2020-12-21 10:10:52,008 fail2ban.actions        [309]: NOTICE  [dovecot] <br>
> > Ban 8.8.8.8<br>
> > ```<br>
> > <br>
> > I can't reach dovecot by telnet from this public IP:<br>
> > <br>
> > ```<br>
> > telnet <a href="http://mail.example.com" rel="noreferrer" target="_blank">mail.example.com</a> <<a href="http://mail.example.com" rel="noreferrer" target="_blank">http://mail.example.com</a>> 143<br>
> > Trying 9.9.9...<br>
> > telnet: Unable to connect to remote host: Connection refused<br>
> > ```<br>
> > <br>
> > Unless I removed the ban:<br>
> > <br>
> > ```<br>
> > docker exec mail fail2ban-client set dovecot unbanip 8.8.8.8<br>
> > ```<br>
> > <br>
> > Many thanks.<br>
> > <br>
> > Javier<br>
</blockquote></div>