[[oktatas:linux:e-mail szerver|< E-mail szerver]]
====== Dovecot ======
* **Szerző:** Sallai András
* Copyright (c) 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].
A linuxos rendszeren levelek kiszolgálására használható 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 =
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)