Как защитить почтовый сервер (Postfix + Dovecot + Roundcube)

Отключаем небезопасные порты Dovecot:

nano /etc/dovecot/dovecot.conf
service imap-login {
inet_listener imap {
port = 0
}
}service pop3-login {
inet_listener pop3 {
port = 0
}
}

Оставляем только:IMAPS (993) POP3S (995)


systemctl restart dovecot

Только TLS для отправки почты

В Postfix:

nano /etc/postfix/main.cf

Проверяем:

smtpd_tls_auth_only = yes

Ограничиваем brute-force Dovecot (IMAP)

mail_max_userip_connections = 5

Postfix (SMTP)

smtpd_client_connection_count_limit = 10
smtpd_client_connection_rate_limit = 20
smtpd_hard_error_limit = 20
smtpd_soft_error_limit = 10

Fail2Ban — базовая защита

nano /etc/fail2ban/jail.d/dovecot.local
[dovecot]
enabled = true
filter = dovecot.iredmail
logpath = /var/log/dovecot/*.log
maxretry = 5
findtime = 600
bantime = 3600

nano /etc/fail2ban/jail.d/postfix.local
[postfix]
enabled = true
filter = postfix.iredmail
logpath = /var/log/mail.log
maxretry = 5
findtime = 600
bantime = 3600

Recidive — “вечный бан” для повторных атак

nano /etc/fail2ban/jail.d/recidive.local
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
bantime = 604800
findtime = 86400
maxretry = 5

Webmail (Roundcube)

$config['default_host'] = 'ssl://127.0.0.1:993';
$config['smtp_host'] = 'tls://127.0.0.1:587';

Мониторинг атак Проверка банов:

fail2ban-client status dovecot

Топ атакующих IP:

grep Ban /var/log/fail2ban.log | awk '{print $NF}' | sort | uniq -c | sort -nr | head

#iredmailserver #mailserver #почтовыйсервер #защитапочтовогосервера