Własny Serwer

Własny serwer – cz.5: serwer poczty SMTP

Ostatnia aktualizacja: 16 września 2023, 15:18



 
W czterech poprzednich częściach cyklu postawiliśmy serwer www, ftp i zaszyfrowaliśmy połączenie za pomocą Let’s Encrypt.

W kolejnej, obecnej, piątej części cyklu zainstalujemy własny serwer pocztowy SMTP. Z uwagi na złożoność konfiguracji, instalację serwera IMAP przeprowadzimy w osobnej, szóstej części.

Co to jest SMTP?
Z Wikipedii:

SMTP (ang. Simple Mail Transfer Protocol) – protokół komunikacyjny opisujący sposób przekazywania poczty elektronicznej w Internecie… …SMTP to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości.

Co to jest serwer SMTP?
Mail Transport Agent (MTA), czyli serwer SMTP służy dwóm celom:
– Wychodzące wiadomości e-mail: odpowiada za przesyłanie wiadomości e-mail z klienta poczty/agenta użytkownika poczty (MUA), takiego jak Mozilla Thunderbird i Microsoft Outlook, do zdalnego serwera SMTP.
– Przychodzące wiadomości e-mail: służy również do przyjmowania wiadomości e-mail z innych serwerów SMTP.

Do obsługi serwera SMTP mogą być użyte programy, takie jak: Exim, Sendmail, Postfix, Msmtp, Masqmail, Qmail, etc.
Do naszych celów użyję programu Postfix.

Co to jest Postfix?
Postfix autorstwa Witese’a Venemy jest serwerem pocztowym, który funkcjonuje jako alternatywa dla popularnego Sendmaila. Postfix celuje w byciu szybkim, łatwym w administracji oraz bezpiecznym i jednocześnie kompatybilnym z Sendmailem na tyle, żeby nie zdenerwować użytkowników. Pomimo, że z zewnątrz wygląda jak Sendmail, w środku jest zupełnie inny.

Konfiguracja hostname dla serwera pocztowego
W pierwszej części cyku skonfigurowaliśmy hostname zgodny z nazwą naszej domeny (tutaj: linuxiarze.pl).
Aby Twój serwer był rozpoznawany w sieci jako serwer pocztowy, nazwa domeny musi posiadać w nazwie np. „mail”, a więc pełna nazwa domeny serwera pocztowego powinna być, np. mail.linuxiarze.pl

W tym celu należy przekonfigurować hostname, tak jak to zrobiliśmy w części pierwszej, wskazując na nową (sub)-domenę:
hostnamectl set-hostname mail.linuxiarze.pl
Zmień również pliki:
/etc/hostname
zmieniając nazwę hosta na nową oraz:
/etc/hosts
zmieniając:
127.0.0.1 linuxiarze.pl
lna:
127.0.0.1 mail.linuxiarze.pl

Zmiana rekordów MX i A
Podczas rejestracji/parkowania domeny u Twojego dostawcy usługi serwerowej, upewnij się że posiadasz lub dodaj, jeśli nie, rekord MX Twojej domeny pocztowej, który powinien przykładowo wyglądać:
Record Type Name Mail Server Priority
MX @ mail.linuxiarze.pl 0

Dodaj również nowy rekord A, który przykładowo wygląda:
Record Type Name value
A mail

Instalacja Postfix
apt update
apt install postfix

Podczas instalacji będzie wymagana podstawowa konfiguracja Postfix:
1. General type of mail configuration: Internet Site
2. System mail name (bez suffixu „mail”, tutaj): linuxiarze.pl
Konfiguracja domeny w punkcie 2 zapisze Twój adres mailowy nick@linuxiarze.pl , gdzie
nick zostanie użyty taki, jakiego usera (oprócz root) założyłeś w poprzedniej części 3 Serwer FTP (tutaj: lolek), więc skonfigurowany adres mailowy to: lolek@linuxiarze.pl

Narzędzie 'ss’ (Socket Statistics) powie nam czy Postfix master proces nasłuchuje TCP na porcie 25:
sudo ss -lnpt | grep master

Konfiguracja zapory ogniowej
Nakładkę na filtr pakietów UFW zainstalowaliśmy w pierwszej części cyklu, więc teraz dodamy reguły umożliwiające odbieranie poczty z innych serwerów SMTP:
ufw allow 25/tcp

Test portu 25
Aby sprawdzić czy Postfix wysyła wiadomości użyjemy programy Telnet:
apt install telnet
Wykonaj test, np. do serwera pocztowego Gmail:
telnet gmail-smtp-in.l.google.com 25

Wiadomość zwrotna typu:
telnet: Unable to connect to remote host: Connection timed out
oznacza, że port 25 jest wciąż zamknięty. W takim wypadku skontaktuj się z dostawcą usługi serwerowej o otwarcie tego portu.

W innym przypadku port jest otwarty i serwer SMTP jest gotowy do pracy.

Test działania poczty
Aby wykonać testową wysyłkę maila, można posłużyć się zainstalowanym programem Postfix lub innym, np. Mailutils.

a. Postfix zawiera w swoim składzie plik Sendmail, więc wysyłka będzie wykonana z konta użytkownika systemu, na jakim teraz pracujesz (root).

Aby wysłać maila z konta zwykłego użytkownika, np. tego, który już posiadasz (tutaj: lolek), przeloguj się na jego konto:
su - lolek

Teraz wyślij maila za pomocą Postfix:
echo "mail testowy" | sendmail twoje-konto@serwer.com

b. Aby wysłać maila przy pomocy Mailutils, zainstaluj ten pakiet:
apt install mailutils
a następnie wyślij maila:
echo "mail testowy" | mail -s "Mój pierwszy mail testowy" twoje-konto@serwer.com

gdzie:
– twoje-konto@serwer.com to aktywne konto pocztowe na innym serwerze

Aby opuścić konto zwykłego usera i wrócić na konto root-a:
exit

Jeśli Twój email nie dotrze do skrzynki zewnętrznej, sprawdź log:
tail -n 20 /var/log/mail.log
lub:
nano /var/log/mail.log

Czytanie odebranych maili
Do tego celu posłuży nam program Mailutils – jeśli go nie zainstalowałeś, zrób to teraz.

Co to jest Mailutils?
GNU Mailutils to bogata i potężna, niezależna od protokołu struktura poczty. Zawiera szereg przydatnych bibliotek pocztowych, klientów i serwerów.

Wysyłanie poczty za pomocą Mailutils (polecenie mail) właśnie przerobiliśmy.
Aby przeczytać odebraną pocztę użyj tej samej komendy, czyli:
mail

Pamiętaj, iż powyższe polecenie przeczyta odebrane wiadomości pocztowe użytkownika, na którego koncie jesteś zalogowany.

Ustawienie hostname dla Postfix
Domyślnie serwer Postfix SMTP używa nazwy hosta systemu operacyjnego. Jednak nazwa hosta systemu operacyjnego może się zmienić, więc dobrą praktyką jest ustawienie nazwy hosta bezpośrednio w pliku konfiguracyjnym Postfix.

Otwórz główny plik konfiguracyjny Postfix za pomocą edytora tekstu:
nano /etc/postfix/main.cf

i zmień linię:
myhostname = linuxiarze.pl

na:
myhostname = mail.linuxiarze.pl

Po zapisaniu zmian zrestartuj Postfix:
systemctl restart postfix

Utworzenie aliasu mailowego
Istnieją pewne wymagane aliasy, które należy skonfigurować podczas obsługi serwera poczty. Możesz dodać alias e-mail w pliku /etc/aliases, który jest specjalnym plikiem tabeli wyszukiwania Postfix, używającym formatu zgodnego z Sendmail.
nano /etc/aliases

Domyślnie istnieje tam konfiguracja:
postmaster: root

dzięki której e-maile dla postmaster@linuxiarze.pl będą dostarczane do root@linuxiarze.pl

Zwykle nie używamy adresu e-mail root. Zamiast tego postmaster może używać normalnej nazwy logowania, aby uzyskać dostęp do wiadomości e-mail. Możesz więc dodać następującą linię, zastępując nazwę użytkownika swoją prawdziwą nazwą użytkownika.
root: lolek

(zamiast lolek wpisz swoją nazwę użytkownika systemu)

Dzięki temu e-maile dla postmaster@linuxiarze.pl i root@linuxiarze.pl będą dostarczane do lolek@linuxiarze.pl

Aktywuj nowe aliasy:
newaliases

Pamiętaj również, aby w przyszłości, w trakcie aktualizacji pakietu Postfix, podczas konfiguracji wybrać opcję 'No Configuration’ (Bez konfiguracji), aby zachować aktualne ustawienia serwera SMTP.

W przypadku pytań odsyłam do stron man-a:
man postfix
man mailutils
man sendmail
man telnet

Podsumowując dzisiejszy tutorial, możemy teraz odbierać pocztę z innych serwerów pocztowych, czytać ją i wysyłać własną za pomocą programu w konsoli tekstowej.

W następnej części cyklu Własny serwer rozwinę temat poczty email i zainstalujemy serwer IMAP, który umożliwi nam obsługę poczty przychodzącej i wychodzącej za pomocą klienta pocztowego (Thunderbird, Evolution, Claws-Mail, Geary, etc.) na komputerze domowym.

Click to rate this post!
[Total: 5 Average: 5]

2 komentarze do “Własny serwer – cz.5: serwer poczty SMTP

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.