SASL-Authentifizierung mit PLAIN/LOGIN anbinden:
kumo.on('smtp_server_auth_plain', function(authz, authc, password, conn_meta)
-- Look up credentials in your DB / file / Vault
local ok = verify_password(authc, password)
if ok then
conn_meta:set_meta('tenant', tenant_for_user(authc))
return true
end
return false
end)
Sie entscheiden, wo die Zugangsdaten liegen: passwd-file, MySQL, Vault, HTTP-API. KumoMTA ruft nur Ihre Funktion auf.
Rate Limit pro Listener, um Brute Force auszubremsen:
kumo.start_esmtp_listener {
listen = '0.0.0.0:587',
max_messages_per_connection = 1000,
max_recipients_per_message = 100,
data_buffer_size = '32MB',
max_message_rate = '50/s', -- per source IP
}
Binden Sie die Tenant-Metadaten bei der AUTH. Alles Nachgelagerte (Throttles, IP-Pool, Queue-Auswahl) liest tenant aus conn_meta. Machen Sie das richtig, und der Rest der Konfiguration ergibt sich fast von selbst.
Melden Sie sich an, um festzuhalten, was Sie gelesen haben.