O Dovecot usa um processo master que cria workers especializados. Isso isola as falhas: uma sessão IMAP com bug não consegue derrubar o daemon de autenticação.
Processos principais:
| Processo | Função |
|---|---|
| dovecot (master) | Cria e supervisiona os processos filhos |
| anvil | Conta as conexões por usuário/IP |
| log | Coletor central de logs |
| config | Fornece a configuração a todos os outros processos |
| stats | Métricas em memória |
| auth | Um único daemon de autenticação para todos os protocolos |
| imap-login / pop3-login | Processos de rede pré-autenticação (poucos privilégios) |
| imap / pop3 | Workers por sessão, após a autenticação |
| lmtp | Entrega local vinda do MTA |
| doveadm | Servidor da CLI de administração |
Separação de privilégios: o imap-login roda como o usuário dovenull, sem shell. Só depois que a autenticação dá certo a sessão passa para o imap, que roda como o dono da caixa de e-mail. É por isso que o Dovecot teve tão poucos CVEs em 20 anos.
Concorrência: por padrão, cada usuário recebe um processo imap por sessão. Com service_count = 0, o Dovecot reutiliza os processos para reduzir o custo de fork() com alta concorrência.
Entre para acompanhar o que você já leu.