< E-mail szerver

Dovecot

Szerző: Sallai András

Copyright © Sallai András, 2011, 2018, 2020

Licenc: GNU Free Documentation License 1.3

Web: https://szit.hu

Bevezetés

A Dovecot azt jelenti galambdúc vagy galambház. Kiejtve: [ˈdʌvkɒt]. Esetünkben ez persze egy leveleket olvasásra kiszolgáló szerver program, amely nyílt forráskódú. A leveleket POP3 és IMAP protokollon keresztül szolgája ki. Ismeri az mbox és a Maildir formátumokat.

Telepítés

Feltételezzük, hogy egy levezőszerver már telepítve van. Például postfix.

apt install dovecot-pop3d dovecot-imapd

Legújabb verzió: https://dovecot.org

Beállítás

A beállítások a következő helyen találhatók:

nano /etc/dovecot/dovecot.conf

Teszt

ps ax | grep dovecot

ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 *:143 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 *:25 *:*
LISTEN 0 100 :::143 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 :::25 :::*

apt install telnet

telnet localhost 143

SSL

A rendszer tanúsítványai

A titkosított kapcsolathoz tanúsítványra van szükség.

Hozzuk létre a tanúsítványt, ha még nem létezne:

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-out /etc/ssl/certs/mailcert.pem \
-keyout /etc/ssl/private/mail.key

Néhány kérdésre kell válaszolnunk:

Country Name (2 letter code) [AU]:HU
State or Province Name (full name) [Some-State]:Hungarian
Locality Name (eg, city) []:Budapest
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Oragnizational Unit Name (eg, section) []: Informatika
Common Name (e.g. server FQDN or YOUR name) []:zold.and
Email Address []:info@zold.and

Be kell állítani a PEM kódolású X.509 SSL/TLS tanúsítványt és privát kulcsot. Ehhez szerkesszük a következő állományt:

nano /etc/dovecot/conf.d/10-ssl.conf

ssl = required
ssl_cert = </etc/ssl/certs/mailcert.pem
ssl_key = </etc/ssl/private/mail.key

Ha a kulcsfájl jelszóval védett, akkor add meg a jelszót:

ssl_key_password = titok

systemctl restart dovecot

Az openssl req alparancsairól több inforáció:

$ openssl req -help

A fent használt openssl req kapcsolók:

-x509 x509 nyilvános kulcsú tanúsítvány

-nodes kimeneti kulcsot ne titkosítsa

-days +int a tanúsítvány érvényessége

-newkey val a típus:bitek számának megadása

-out kimeneti fájl

-keyout a titkos kulcsfájl hova kerüljön

Tanúsítványlétrehozó scripttel

Letöltés:

curl http://dovecot.org/doc/mkcert.sh > mkcert.sh

A tanúsítvány /etc/ssl/certs/dovecot.pem helyen, a privát kulcs pedig a /etc/ssl/private/dovecot.pem helye jön létre. A tanusítáványok alapértelmezetten 356 nap alatt járnak le.

Ellenőrzés

POP3

openssl s_client -showcerts -connect localhost:995

IMAP

openssl s_client -showcerts -connect localhost:993

vagy így, IMAP:

openssl s_client -connect localhost:995
stunnel -c -r localhost:995

Virtuális felhasználók

A Dovecot program következő beállításai szükségesek:

mail_location = maildir:/home/vmail/%d/%n

Keressük meg az „auth default” részt, majd javítsuk a mechanisms értékét az alábbi módon:

auth default { mechanisms = plain cram-md5 passdb passwd-file { args = /etc/dovecot/passwd } userdb passwd-file { args = /etc/dovecot/users } }

A mechanisms változó után vegyünk fel két bejegyzést, passdb és userdb.

Felhasználók felvétele:

echo "info@zold.and::5000:5000::/home/vmail/zold.and/:/bin/false" >> /etc/dovecot/users

Jelszót adunk neki:

echo "info@zold.and" >> /etc/dovecot/passwd sed -i /info@zold.and/s/$/:`dovecotpw` /etc/dovecot/passwd

E-mail mbox/Maildir formátumban

Az mbox és a Maildir formátum a következő fájlban változtatható:

nano /etc/dovecot/conf.d/10-mail.conf

Itt keressük a mail_location értéket. Ezzel szabályozhatjuk formátumot.

Két lehetséges érték:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

mail_location = maildir:~/Maildir:INBOX=~/Maildir/.INBOX

A Maildir alapértelmezetten be van állítva (Debian 8.x)

IMAP/POP3 plaintext

Távoli gépekről alapértelmezetten nincs engedélyezve a plaintext kommunikáció. Ez az alapértelmezés, de biztonsági okokból ez nagyon is jó így.

Ha mégis szeretnénk engedélyezni, szerkesszük a dovecot.conf állományt:

nano /etc/dovecot/dovecot.conf

Keressük meg a login_trusted_networks változót, majd állítsuk be az aktuális hálózatot, például:

login_trusted_networks = 192.168.10.0/24

Szóközzel tagolva több gép vagy hálózat is felvehető.

Irodalom

http://www.cyberciti.biz/faq/unix-dovecot-ssl-tls-server-configuration/ (2011)

https://scaron.info/blog/debian-mail-postfix-dovecot.html (2018)

https://tools.ietf.org/html/rfc1421 (2018 - PEM-ről)

https://tools.ietf.org/html/rfc1424 (2018 - PEM-ről)