Własny serwer Red Hat – cz.6: serwer poczty IMAP
Ostatnia aktualizacja: 3 kwietnia 2025, 12:05
W piątej części z cyklu Własny Serwer Red Hat zainstalowaliśmy i skonfigurowaliśmy serwer poczty SMTP w systemie kompatybilnym z Red Hat – Rocky Linux. Można go również zastosować w innych, kompatybilnych systemach, takich jak: CloudLinux, AlmaLinux, EuroLinux, CentOS Stream, MIRACLE Linux, etc.
W tej części zainstalujemy i skonfigurujemy serwer poczty IMAP, który pozwoli na zarządzanie skrzynką pocztową za pomocą klienta pocztowego zainstalowanego na komputerze lokalnym.
Co to jest serwer IMAP?
Serwer IMAP to aplikacja serwerowa, która umożliwia komunikację pomiędzy programem pocztowym a serwerem poczty za pomocą protokołu IMAP.
Do celów tego wpisu użyjemy aplikacji Dovecot.
Porty zapory ogniowej
W pierwszej kolejności otwórz porty, które będą przepuszczały komunikację pomiędzy serwerem IMAP a lokalnym programem pocztowym:
firewall-cmd --permanent --add-service={http,https,smtp-submission,smtps,imap,imaps}
systemctl reload firewalld
Certyfikat TSL/SSL
W 3 części cyklu zainstalowaliśmy aplikację 'cerbot’ służącą do szyfrowania połączenia za pomocą Let’s Encrypt. Użyjemy jej ponownie do zabezpieczenia połączenia z subdomeną pocztową.
Pobierz certyfikat, bez instalacji, dla Apache:
certbot certonly -a apache --agree-tos --no-eff-email --staple-ocsp --email login@linuxiarze.pl -d mail.linuxiarze.pl
i przeładuj Apache2:
systemctl restart httpd
Lub pobierz certyfikat, bez instalacji, dla Nginx:
certbot certonly -a nginx --agree-tos --no-eff-email --staple-ocsp --email login@linuxiarze.pl -d mail.linuxiarze.pl
i przeładuj nginx:
systemctl restart nginx
Konfiguracja Postfix
W poprzedniej części zainstalowaliśmy serwer poczty SMPT, a właściwie aplikację do jej obsługi Postfix.
Aby serwer IMAP działał poprawnie, trzeba zmienić ustawienia do przekazywania poczty do serwera IMAP.
Wyedytuj plik konfiguracyjny Postfix dodając do niego obsługę usługi Submission:
nano /etc/postfix/master.cf
dodając:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_wrappermode=no
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
Usługa będzie działała na porcie 587, dla Microsoft Outlook działa na porcie 465.
Następnie wyedytuj plik main.cf aktywując szyfrowanie TLS:
nano /etc/postfix/main.cf
dodając:
#Aktywuj TLS Encryption dla Postfix
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.linuxiarze.pl/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.linuxiarze.pl/privkey.pem
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1
#Force TLSv1.3 or TLSv1.2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
Przeładuj Postfix:
systemctl restart postfix
Możesz sprawdzić, czy Postfix nasłuchuje na portach 587 i 465:
ss -lnpt | grep master
Instalacja Dovecot
dnf install dovecot
Wyedytuj plik konfiguracyjny dovecot:
nano /etc/dovecot/dovecot.conf
dodając/zmieniając wartości na poniższe:
protocols = imap lmtp
Zmień ustawienia skrzynki mailowej:
nano /etc/dovecot/conf.d/10-mail.conf
na:
mail_location = maildir:~/Maildir
mail_privileged_group = mail
Następnie dodaj dovecot do grupy użytkowników poczty, aby Dovecot mógł czytać skrzynkę odbiorczą:
gpasswd -a dovecot mail
Teraz wyedytuj plik konfiguracyjny 10-master.conf:
nano /etc/dovecot/conf.d/10-master.conf
Zmień definicję usługi lmtp na następującą:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
oraz:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
Ponownie wyedytuj plik konfiguracyjny Postfix:
nano /etc/postfix/main.cf
Dodaj następujące wiersze na końcu pliku. Pierwsza linia mówi Postfixowi, aby dostarczał przychodzące wiadomości e-mail do lokalnego magazynu wiadomości za pośrednictwem serwera Dovecot LMTP. Druga linia wyłącza SMTPUTF8 w Postfixie, ponieważ Dovecot-LMTP nie obsługuje tego rozszerzenia e-mail.
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = no
Konfigurowanie mechanizmu uwierzytelniania użytkownika:
nano /etc/dovecot/conf.d/10-auth.conf
Odkomentuj linię:
disable_plaintext_auth = yes
oraz:
auth_username_format = %n
dodając na koniec linii '%n’.
zmień linię:
auth_mechanisms = plain
na:
auth_mechanisms = plain login
Konfiguracja szyfrowania TSL
nano /etc/dovecot/conf.d/10-ssl.conf
Zmień:
ssl = yes
na:
ssl = required
oraz certyfikat:
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key
na certyfikat od Let’s Encrypt:
ssl_cert = </etc/letsencrypt/live/mail.linuxiarze.pl/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.linuxiarze.pl/privkey.pem
Zmień linię:
#ssl_prefer_server_ciphers = no
na:
ssl_prefer_server_ciphers = yes
odkomentuj linię:
#ssl_dh = </etc/dovecot/dh.pem
oraz zmień:
#ssl_min_protocol = TLSv1
na:
ssl_min_protocol = TLSv1.2
Zapisz plik i wygeneruj parametr Diffie-Hellmana za pomocą:
openssl dhparam -out /etc/dovecot/dh.pem 4096
Zrestartuj Postfix i Dovecot:
systemctl restart postfix dovecot
Dovecot będzie nasłuchiwał na porcie 143 (IMAP) i 993 (IMAPS), co można sprawdzić:
ss -lnpt | grep dovecot
Konfiguracja klienta lokalnego
Otwórz teraz swojego lokalnego klienta poczty e-mail, np. Mozilla Thunderbird.
Przejdź do Edycja -> Ustawienia konta -> Akcje konta -> Dodaj konto pocztowe, aby dodać konto pocztowe:
– W sekcji serwera poczty przychodzącej wybierz protokół IMAP, wpisz mail.twoja-domena.com jako nazwę serwera, wybierz port 143 i STARTTLS. Wybierz normalne hasło jako metodę uwierzytelniania.
– W sekcji wychodzącej wybierz protokół SMTP, wpisz mail.twoja-domena.com jako nazwę serwera, wybierz port 587 i STARTTLS. Wybierz normalne hasło jako metodę uwierzytelniania.
Możesz także użyć portu 993 z szyfrowaniem SSL/TLS dla IMAP i portu 465 z szyfrowaniem SSL/TLS dla SMTP. NIE należy używać portu 25 jako portu SMTP w klientach poczty do przesyłania wychodzących wiadomości e-mail.
Jeśli potrzebujesz więcej wiadomości użyj stron man:
man postfix
man dovecot
man smtp
man imapd
W następnym, siódmym tutorialu, zadbamy o bezpieczeństwo poczty email instalując program antywirusowy i antyspamowy.