Use o Fail2ban para bloquear tentativas de senha dovecot com proxy

1

Pesquisei muito sobre isso, mas não consigo encontrar uma solução.

A maneira mais fácil de explicar isso é que eu costumava ter apenas 1 servidor de e-mail, agora tenho 2. O primeiro servidor de e-mail aceita apenas conexões SSL e encaminha não-SSL (ou seja, 110, 143 etc) para o segundo servidor (isso ocorre porque os clientes têm seus e-mails configurados e trabalham com a entrada de DNS que aponta para o primeiro servidor de e-mail).

Eu quero usar o Fail2ban no segundo servidor para bloquear logins com falha, mas não consigo descobrir como, como o Dovecot apenas "vê" o endereço IP do primeiro servidor.

Eu posso ativar o registro no iptables no servidor 1, mas não consigo ver como "relacionar" a conexão com a tentativa de senha com falha no servidor2.

    
por Fraser 30.11.2014 / 04:54

2 respostas

1

Algumas soluções possíveis:

  1. Defina o Dovecot no server1 e configure-o para usar referências de login para enviar os clientes para server2. Se seus clientes suportarem referências de login, essa pode ser a solução mais simples. Ele introduziria um pequeno atraso a cada novo login, pois o cliente se conectava ao server1 e depois era enviado para o server2.

  2. Levante o Dovecot no server1 e configure-o para proxy a conexão para server2. O wiki do Dovecot lista dois métodos de proxy:

    • Encaminhe a senha para o server2. Eu acho que isso pode funcionar contanto que você possa configurar o Dovecot no servidor2 para registrar o endereço IP do cliente a partir da conexão com proxy, para que o Fail2ban possa usá-lo.

    • Execute a autenticação no servidor1. Em seguida, você pode configurar o Fail2ban no server1. A desvantagem é que, em seguida, você precisa efetuar login no server2 com uma senha mestra.

por 30.11.2014 / 10:18
1

Talvez uma solução mais fácil seja ter tudo em execução no server1 e apenas pop / pops de túnel e imap / imaps para server2 (o autossh é uma solução simples, mas provavelmente há algumas maneiras melhores).

Se você executar autossh para manter uma conexão ssh do server2 para o server1:

autossh -M 3319 -4 -R 993:localhost:993 -R 995:localhost:995 -NC server1 -f

Você pode lançar essa linha em /etc/rc.local para o modo rápido e sujo.

  • -M 3319 deve apontar uma porta disponível (também usará 3320). o autossh usa o controle do túnel. (veja manpage do autossh)
  • -4 é limitar a ipv4 (veja também a página do manual)

Se você iniciar a conexão de server1 para server2, então -R se tornará -L ( L ocal em vez de R emote).

    
por 01.12.2014 / 01:31