Ik gebruik Dovecot als Mail server op mijn Debian installatie en dat werkt altijd erg goed en betrouwbaar. Om je verbinding met je ‘Incoming IMAP Server’ nog veiliger te maken kun je het beste TLS gebruiken. Je kunt hiervoor eenvoudig gebruik maken van je Let’s Encrypt certificaat.

Om TLS in te stellen voor je Dovecot IMAP server hoef je maar een paar stappen uit te voeren die ik hieronder uitleg:

Dovecot

Genereer een ‘dh.pem’ file met het volgende commando (gebruik makende van het ‘openssl’ package). Dit kan lang duren (meer dan 5 minuten). Zet deze ‘dh.pem’ file in de ‘/etc/dovecot’ directory.

openssl dhparam 4096 > dh.pem

Edit de file ‘/etc/dovecot/conf.d/10-ssl.conf’ en vul hier in:

ssl_cert = </etc/letsencrypt/live/jouw_host/fullchain.pem
ssl_key = </etc/letsencrypt/live/jouw_host/privkey.pem

ssl_dh = </etc/dovecot/dh.pem

ssl_min_protocol = TLSv1.2

Herstart hierna Dovecot met het commando:

service dovecot restart

Vergeet niet om in je router de port-forward voor poort 993 toe te voegen.

Instellen clients

Als laatste stap moet je nu alleen nog je email clients instellen dat ze gebruik maken van TLS. Dit is per client verschillend. Hieronder een aantal voorbeelden.

Windows 10

Ga naar ‘Control Panel’ en kies hier ‘Mail (Microsoft Outlook)’. Kies vervolgens ‘Email Accounts’ en in de /Email\ tab dubbelklik je jouw IMAP server. Ga vervolgens naar ‘More Settings’ en kies daar het /Advanced\ tab. Stel hier nu voor je ‘Incoming server (IMAP)’ de optie STARTLS in.



iPhone/iPad

Ga naar ‘Instellingen > Mail > Account > ‘account’ > Account > Geadvanceerd’ en zet bij ‘Inkomende Instellingen’ de setting ‘Gebruik SSL’ aan:



Microsoft Outlook (Windows)

Ga naar ‘File’ > ‘Account Settings’ > ‘Server Settings’



Microsoft Outlook (Apple)

Ga naar ‘Outlook’ > ‘Voorkeuren’ > ‘Accounts’



Macbook Mail Settings

Ga naar ‘Mail’ > ‘Voorkeuren’ > (account) > ‘Server Instellingen’



Roundcube

Pas de configuratie in de file ‘/opt/roundcube/config/config.inc.php’ aan en verander de volgende instellingen:

$config['default_host'] = 'tls://jouw_host';

$config['imap_conn_options'] = array(
    'ssl' => array(
      'verify_peer'       => true,
      'allow_self_signed' => false,
      'ssl_cert'          => '/etc/letsencrypt/live/jouw_host/fullchain.pem',
      'ssl_key'           => '/etc/letsencrypt/live/jouw_host/privkey.pem',
      'ciphers'           => 'TLSv1+HIGH:!aNull:@STRENGTH',
      'peer_name'         => 'jouw_host',
    ),
);