Instalacja Postfix i Dovecot wraz z obsługą SSL, SPF, DKIM, DMARC i dostępem z programu pocztowego

Uwaga: zjedź na sam dół artykułu aby poznać łatwiejszy sposób instalacji

Do edycji plików w poniższym tutorialu wykorzystano edytor Nano. Najczęściej wykorzystywane polecenia w edytorze:

  • Ctrl+Shift+V – wklej
  • Ctrl+X – zamknięcie pliku z pytaniami o nadpisanie (w przypadku zmodyfikowania)
  • Ctrl+W – szukaj w pliku
  • Alt+w – następne wystąpienie wyszukiwanego tekstu w pliku,

Polecamy również linuksowy eksplorator plików Midnight Commander (mc).

Nowy użytkownik systemowy

Tworzymy nowego użytkownika w systemie i przyporządkowujemy go do grupy sudo. Nazwa użytkownika powinna być taka sama, jak użytkownik (przed znakiem @) w adresie mailowym, który chcesz założyć:

sudo adduser listonosz sudo

Tworzenie użytkownika Ubuntu

Przyporządkowujemy naszego użytkownika do grupy sudo:

sudo usermod -aG sudo listonosz

Sprawdzamy czy nasz serwer posiada poprawną nazwę hosta:

hostnamectl

W razie potrzeby ustawiamy nazwę hosta:

sudo hostnamectl sethostname example.com

Dodanie rekordów DNS dla domeny

Upewniamy się w panelu rejestratora naszej domeny (lub w panelu firmy świadczącej usługi pośrednictwa m.in. DNS, typu Cloudflare, jeśli z takowej korzystamy) czy rekordy DNS są poprawne lub ewentualnie je uzupełniamy:

  • rekord typu A o nazwie mail, wskazujący na IP naszego serwera,
  • rekord typu MX o nazwie takiej samej, jak domena www (też jak domena w adresach mailowych), wskazujący na nazwę hosta naszego serwera

Rekordy DNS - Cloudflare

Instalacja Postfix

Instalujemy Postfix:

sudo apt-get install postfix

W kolejnych oknach konfiguracyjnych wybieramy OK.

Konfiguracja postfix

W kolejnym oknie wybieramy domyślną opcję „Internet site”:

Rodzaj serwera dla postfix - wybór

Dalej wpisujemy naszą nazwę hosta:

Postfix - konfiguracja nazwy hosta

Widok pomyślnie zakończonej instalacji Postfix wygląda tak:

Postfix-zakończenie isntalacji

 

Polecenia dotyczące sprawdzenia stanu działania usługi Postfix i restartu:

sudo systemctl status postfix
sudo systemctl restart postfix

Kreator konfiguracji Postfix

Uruchamiamy kreator dalszej konfiguracji Postfix, należy wpisać:

sudo dpkg-reconfigure postfix

Przechodzimy jeszcze raz przez uzupełnione wcześniej ekrany, następnie w oknie Recipient for root and postmaster mail możemy wpisać domyślny adres mailowy (typu [email protected]) lub pozostawić to pole puste:

Konfiguracja postfix - domyślny odbiorca poczty

 

Dalej określamy domyślne destynacje odbierania poczty:

 

Kofiguracja Postfix - destynacje

 

W kolejnym oknie, dotyczącym wymuszenia synchronizacji, wybieramy domyślne „Nie”.

Na kolejnych ekranach potwierdzamy adresy sieci lokalnych, rozmiar skrzynki pocztowej, znak dotyczący adresu lokalnego (zostawiamy „+”), protokoły internetowe („all”). Na tym kończy się kreator konfiguracji ale nie kończy się nasza konfiguracja 😉

Na wszelki wypadek, podajemy inne polecenia mogące przydać się w przyszłości, dotyczące weryfikacji stanu usługi postfix:

Wstępne sprawdzenie poprawności działania Postfix

Sprawdzenie czy usługa działa:

ps -ef | grep postfix

Sprawdzenie portu 25:

sudo netstat -plnt | grep :25

Sprawdzenie logów (ta komenda wyświetli ostatnie linie logu i będzie je aktualizować na bieżąco, co jest przydatne do monitorowania aktywności Postfixa w czasie rzeczywistym):

sudo tail -f /var/log/mail.log

Sprawdzenie poprawności konfiguracji postfix:

postfix check

Wracając jednak do naszego tutoriala, w kolejnym kroku przetestować możemy wysyłanie poczty lokalnie za pomocą konsoli:

telnet gmail-smtp-in.l.google.com 25

Powinniśmy otrzymać poniższy komunikat.

Postfix - test telnet

 

Kończymy połączenie wpisując:

quit

Dalej możemy przetestować pocztę z poziomu konsoli za pomocą wybranego pakietu spośród poniższych. Wystarczy jeden:

  1. mail,
  2. mailx,
  3. mutt
  4. sendmail

Ad. 1. Testowanie za pomocą narzędzia mail. Narzędzie mail jest często preinstalowane na wielu dystrybucjach Linuxa.

sudo apt-get install mailutils
echo "Treść wiadomości" | mail -s "Temat wiadomości" [email protected]

Wysyłanie wiadomości z załącznikiem:

echo "Treść wiadomości" | mail -s "Temat wiadomości" -A /ścieżka/do/załącznika [email protected]
 

Jeśli mail nie dotarł do adresata (sprawdzamy koniecznie też foldery ze spamem), może to oznaczać, że nasz system nadawcy nie ma skonfigurowanego żadnego alternatywnego MTA (Mail Transfer Agent) w systemie update-alternatives. Sprawdzamy czy rzeczywiście tak jest poleceniem:

sudo update-alternatives --config mta

Jeśli otrzymujemy poniższą zwrotkę:

 

Test MTA

…oznacza to, że musimy zarejestrować Postfix jako domyślny MTA:

sudo update-alternatives --install /usr/sbin/mta mta /usr/sbin/postfix 100

Prawidłowa zwrotka:

Konfiguracja MTA

Próba wysłania maila testowego w powyższy sposób na adres gmail zakończy się niepowodzeniem, ponieważ Gmail wymaga SPF lub DKIM (opis wdrożenia przedstawiony później w tym poradniku):

 

Gmail require DKIM or SPF

Wydzielenie folderów pocztowych na dysku

Edytujemy plik konfiguracyjny Postfix:

sudo nano /etc/postfix/main.cf

Dodajemy na jego końcu linię:

home_mailbox = Maildir/

Zamiast dopisywania w/w linijki, możemy odpalić polecenie:

sudo postconf -e 'home_mailbox = Maildir/'

Instalacja Dovecot

Aby wdrożyć możliwość odczytu poczty przez imap/pop3 instalujemy Dovecot:

  • dovecot-core: Podstawowy pakiet Dovecot.
  • dovecot-imapd: Obsługuje protokół IMAP.
  • dovecot-pop3d: Obsługuje protokół POP3.
sudo apt-get update
sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d

Po pomyślnej instalacji restartujemy usługę:

sudo systemctl restart dovecot

Konfiguracja Dovecot

Konfigurujemy Dovecot poprzez edycję plików konfiguracyjnych:

sudo nano /etc/dovecot/dovecot.conf

Dopisujemy/edytujemy linię (litery „s” oznaczają obsługę połączeń SSL):

protocols = pop3 pop3s imap imaps

Możemy zweryfikować lokalnie działanie pop3 oraz pop3s komendami odpowiednio:

telnet localhost 110
openssl s_client -connect localhost:995

lub też sprawdzić działanie z zewnątrz, przy użyciu strony https://www.wormly.com/test-pop3-mail-server

W formularzu wpisujemy tam login i hasło konta utworzonego na początku poradnika oraz port 995 (testujemy pop3s – połączenie przez SSL). Powinniśmy otrzymać wynik:

Test pop3s

Dodatkowe rekordy DNS: DMARC, SPF oraz DKIM

Aby nasza poczta nie trafiała do spamu, konfigurujemy dodatkowe rekordy DNS.
Rekordy SPF oraz DMARC ustawiamy na sztywno (zamieniając „nazwa_hosta_pocztowego” oraz „ip_serwera_pocztowego” na odpowiednie wartości:

Rekord SPF

Typ rekordu (Type): TXT
Name: nazwa_hosta_pocztowego
Wartość: v=spf1 ip4:ip_serwera_pocztowego a mx ~all
lub
Wartość: v=spf1 mx include:_spf.google.com ip4:ip_serwera_pocztowego ~all

Rekord DMARC

Typ rekordu (Type): TXT
Name: _dmarc
Wartość: v=DMARC1;p=quarantine;aspf=r;sp=none

Instalacja pakietu DKIM na serwerze i dodanie rekordu DKIM w DNS

Zawartość rekordu DKIM musi być skopiowana z informacji wygenerowanej przez pakiet instalowany na serwerze.

sudo apt install opendkim opendkim-tools

Dodajemy opendkim do usług uruchamianych wraz ze startem systemu:

sudo systemctl start opendkim
sudo systemctl enable opendkim

Tworzymy katalog i generujemy klucz (zamieniając „nazwa_hosta_pocztowego” na odpowiednią wartość):

mkdir /etc/opendkim
opendkim-genkey -D /etc/opendkim/keys/--domain nazwa_hosta_pocztowego --selector mail

We wskazanym folderze powinny pojawić się dwa pliki:

 

Opendkim wygenerowane pliki

 

Kopiujemy część zawartości pliku .txt do rekordu DKIM w strefie DNS (usuwając też ze środka ” ” (apostrof spacja apostrof – screen przed usunięciem)).

DKIM rekord

Nadajemy uprawnienia do katalogu opendkim:

sudo chown -R opendkim:opendkim /etc/opendkim

Modyfikujemy plik konfiguracyjny opendkim.

sudo nano /etc/opendkim.conf

Należy dodać/odkomentować/zmodyfikować poniższe linie:

Autorestart yes
AutorestartRate 10/1h
LogWhy yes
UMask 002
#Socket local:/run/opendkim/opendkim
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
SignatureAlgorithm rsa-sha256

Sprawdzamy poprawność działania DKIM na stronie https://dmarcian.com/dkim-inspector/

Na końcu ponownie sprawdzamy czy wysyłanie poczty działa:

/usr/bin/sendmail [email protected]
From: [email protected]
Subject: Test
Testowa wiadomość

Do testowania przesyłki maili możemy także wykorzystać serwis https://www.mail-tester.com/

Naciskamy Ctrl+D i sprawdzamy czy poczta dotarła.

Bibilografia:

  1. https://www.youtube.com/watch?v=00JuYb0NpuA
  2. https://jan.wildeboer.net/2022/08/Email-1-Postfix-2022/

Aktualizacja:

Zdecydowanie prostszą i polecaną przeze mnie formą instalacji serwera mailowego jest Docker Mailserver

case studies

Bezpłatna konsultacja

Testimoniale

Opinie i rekomendacje otrzymane od innych specjalistów:

PORTFOLIO:

Realizowałem skuteczne działania e-marketingowe dla kilkudziesięciu marek. Niżej wybrane spośród nich:

Formularz kontaktowy / bezpłatnej konsultacji:

Możesz także napisać na [email protected] lub zadzwonić 607-387-142:

    Wprowadź imię i nazwisko i nazwę firmy

    Wprowadź swój adres e-mail

    Załącznik

    Opcjonalnie załącz plik zawierający więcej informacji o projekcie

    Wpisz wiadomość. Jakiego typu usługi Cię interesują? Możesz też podać szacunkowy budżet.

    Copyright 2022 © „ION” Michał Sławiński, NIP: 732-198-98-86, Regon: 100706412 | Logotypy wykorzystane jedynie w celach informacyjnych

    ion301
    Przegląd prywatności

    Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.