Estou tentando impedir um ataque e fazer login SASL LOGIN authentication failed
no meu servidor de e-mail. No entanto, estou tentando há um dia e ainda não consigo. Os logs continuam gerando o ataque com o mesmo IP.
Máquina
Linux server 5.4.0-109-generic #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Login de e-mail/var/log/mail.log
Apr 28 20:45:23 server postfix/smtpd[112579]: connect from unknown[5.34.207.81]
Apr 28 20:45:24 server postfix/smtpd[112409]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:25 server postfix/smtpd[112409]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
Apr 28 20:45:30 server postfix/smtpd[112599]: connect from unknown[5.34.207.81]
Apr 28 20:45:31 server postfix/smtpd[112579]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:32 server postfix/smtpd[112579]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
Apr 28 20:45:36 server postfix/smtpd[112409]: connect from unknown[5.34.207.81]
Apr 28 20:45:38 server postfix/smtpd[112599]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:38 server postfix/smtpd[112599]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
Fail2Ban com IPtables
/etc/fail2ban/jail.local
[postfix-sasl]
enabled = true
port = smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s
bantime = 10m
filter = postfix-sasl
#action = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 15
Eu fiz sudo service fail2ban restart
e o problema é que não vi nenhuma corrente com f2b-postfix
.
Então fiz um grep a partir de fail2ban
logs e aqui está o resultado:
Fail2Ban faz login/var/log/fail2ban.log
2022-04-27 16:27:10,133 fail2ban.actions [567]: NOTICE [postfix-sasl] Unban 5.34.207.81
2022-04-27 16:27:45,391 fail2ban.actions [567]: NOTICE [postfix-sasl] Ban 5.34.207.81
2022-04-27 16:32:17,801 fail2ban.actions [567]: NOTICE [postfix-sasl] Unban 212.70.149.72
2022-04-27 22:37:46,299 fail2ban.actions [567]: NOTICE [postfix-sasl] Unban 5.34.207.81
Fail2Ban com UFW
Na minha pesquisa, entendi que o Fail2Ban pode funcionar com o UFW, então fiz algumas pesquisas e aqui está minha configuração:
/etc/fail2ban/jail.local
[postfix-sasl]
enabled = true
journalmatch =
backend = polling
bantime = -1 // Permanent ban? Maybe
filter = postfix-sasl
logpath = /var/log/mail.log
maxretry = 15
banaction = ufw
findtime = 120
Vale a pena mencionar que eu inseri manualmente, sudo ufw insert 1 deny from 5.34.207.81 to any
mas sudo ufw reload
infelizmente ainda consigo ver o ataque do mesmo IP nos logs de e-mail/var/log/mail.log
Responder1
Atualizações
Por fim, meu Fail2Ban
trabalho está dentro do esperado e vou marcar isso como a resposta!
A solução é definir action
igual para iptables-multiport
banir múltiplas portas! Porém, não costumo UFW
restringir o invasor porque percebo que UFW
ele sempre não está habilitado durante a inicialização devido a conflitos com o firewalld
.
Soluções
Adicione esta linha ao seu/etc/fail2ban/jail.local
action = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s"]
Deveria ser algo assim:
[postfix-sasl]
enabled = true
filter = postfix-sasl
action = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s"]
logpath = /var/log/mail.log
maxretry = 15
bantime = 12h
Anteriormente eu configurei maxretry
para 3
fins de teste. Você pode querer alterá-lo para um valor mais alto. Caso contrário, seu usuário poderá rapidamente ter problemas.
Verifique o status do Fail2Ban
Vale a pena conferir sua prisão:
sudo fail2ban-server status postfix-sasl
Saída:
Status for the jail: postfix-sasl
|- Filter
| |- Currently failed: 2
| |- Total failed: 49
| `- File list: /var/log/mail.log
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 5.34.207.81
Responder2
Vale a pena notar que dependendo do número de usuários que você tem, você pode querer diminuir o limite e, com base no número de ataques, talvez aumentar o tempo de banimento.
Eu não uso o Postfix, mas sim o Exim. No entanto, os desafios de bloquear invasores são os mesmos. Aqui você pode ver o status da minha prisão Fail2ban para ter uma ideia dos tamanhos de botnets disponíveis:
XXXX@XXXX:~# status do cliente fail2ban exim
Status da prisão: exim
|- Filtro
| |- Atualmente falhou: 0
| |- Total de falhas: 10380
| - File list: /var/log/exim4/mainlog
- Ações
|- Atualmente banidas:1763
|- Total banidos: 5644
`- Lista de IP banidos: XXXXXXXXXXXX