autor wybrał Fundusz Free and Open Source, aby otrzymać darowiznę w ramach programu Write for DOnations.

wprowadzenie

Postfix To mail transfer agent (MTA), aplikacja służąca do wysyłania i odbierania wiadomości e-mail. Może być tak skonfigurowany, że może być używany do wysyłania wiadomości e-mail tylko przez aplikację lokalną., Jest to przydatne w sytuacjach, gdy musisz regularnie wysyłać powiadomienia e-mail z aplikacji lub po prostu mieć duży ruch wychodzący, na który nie zezwala zewnętrzny dostawca usług e-mail. Jest to również lżejsza alternatywa dla uruchomienia pełnowartościowego serwera SMTP, zachowując jednocześnie wymaganą funkcjonalność.

w tym samouczku zainstalujesz i skonfigurujesz Postfixa jako serwer SMTP tylko do wysyłania. Poprosisz również o bezpłatne certyfikaty TLS z Let ' s Encrypt dla Twojej domeny i zaszyfruj przy użyciu nich wychodzące wiadomości e-mail.

  • One Ubuntu 18.,04 konfiguracja serwera z początkową konfiguracją serwera z Ubuntu 18.04, w tym utworzenie użytkownika sudo non-root.
  • w pełni zarejestrowana nazwa domeny. Ten samouczek będzie używał your_domain przez cały czas. Możesz kupić nazwę domeny na Namecheap, dostać ją za darmo na Freenom lub skorzystać z wybranego rejestratora domen.
  • rekord DNS z your_domain wskazujący publiczny adres IP serwera. Zapoznaj się z tym wprowadzeniem do DNS DigitalOcean, aby dowiedzieć się, jak je dodać.,

Uwaga: Nazwa hosta twojego serwera i nazwa Dropleta muszą być zgodne your_domain, ponieważ DigitalOcean automatycznie ustawia rekordy PTR dla adresu IP Dropleta zgodnie z jego nazwą.

możesz zweryfikować nazwę hosta serwera, wpisując hostname w wierszu polecenia. Wynik powinien pasować do nazwy podanej kropli podczas jej tworzenia.

Krok 1 — Instalacja Postfixa

w tym kroku zainstalujesz Postfixa., Najszybszym sposobem jest zainstalowanie pakietumailutils, który łączy Postfixa z kilkoma dodatkowymi programami, których będziesz używać do testowania wysyłania wiadomości e-mail.

najpierw zaktualizuj bazę pakietów:

  • sudo apt update

następnie zainstaluj Postfixa, uruchamiając następujące polecenie:

  • sudo apt install mailutils

pod koniec procesu instalacji pojawi się okno konfiguracji Postfixa:

domyślną opcją jest Internet Site., Jest to zalecana opcja dla Twojego przypadku użycia, więc naciśnij TAB, a następnie ENTER. Jeśli widzisz tylko tekst opisu, naciśnij TAB, aby wybrać OK, a następnie ENTER.,

Jeśli nie wyświetla się automatycznie, uruchom następujące polecenie, aby go uruchomić:

  • sudo dpkg-reconfigure postfix

następnie otrzymasz kolejny monit konfiguracyjny dotyczący nazwy poczty systemowej:

Nazwa poczty systemowej musi być taka sama jak nazwa przypisana do serwera podczas jego tworzenia. Po zakończeniu naciśnij TAB, a następnie ENTER.

zainstalowałeś już Postfixa i jesteś gotowy do rozpoczęcia jego konfiguracji.,

Krok 2-Konfiguracja Postfixa

w tym kroku skonfigurujesz Postfixa tak, aby wysyłał i odbierał wiadomości e—mail tylko z serwera, na którym jest uruchomiony-czyli z localhost.

aby tak się stało, Postfix musi być skonfigurowany tak, aby nasłuchiwał tylko w interfejsie loopback, wirtualnym interfejsie sieciowym, którego serwer używa do wewnętrznej komunikacji. Aby wprowadzić zmiany, musisz edytować główny plik konfiguracyjny Postfixa o nazwie main.cf, przechowywany w etc/postfix.,

Otwórz go do edycji za pomocą ulubionego edytora tekstu:

  • sudo nano /etc/postfix/main.cf

Znajdź następujące linie:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

ustaw wartość inet_interfaces ustawienie na loopback-only:

/etc/postfix/main.CF
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

inną dyrektywą, którą musisz zmodyfikować, jest mydestination, która jest używana do określenia listy domen, które są dostarczane przez local_transport transport przesyłek pocztowych., Domyślnie wartości są podobne do tych:

/etc/postfix/main.CF
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .

Zmień linię, aby wyglądała tak:

/etc/postfix/main.CF
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .

Jeśli Twoja domena jest rzeczywiście subdomeną, i chcesz, aby wiadomości e-mail wyglądały tak, jakby były wysyłane z domeny głównej, możesz dodać następującą linię na końcu main.cf:

/etc/postfix/main.,cf
...masquerade_domains = your_main_domain

opcjonalne masquerade_domains ustawienie określa, dla których domen część subdomeny zostanie usunięta w adresie e-mail.

Po zakończeniu zapisz i zamknij plik.

Uwaga: Jeśli hostujesz wiele domen na jednym serwerze, Pozostałe domeny mogą być również przekazywane do Postfixa za pomocą dyrektywymydestination.

następnie uruchom ponownie Postfixa, uruchamiając następujące polecenie:

  • sudo systemctl restart postfix

skonfigurowałeś Postfixa tak, aby wysyłał tylko wiadomości e-mail z twojego serwera., Teraz przetestujesz go, wysyłając przykładową wiadomość na adres e-mail.

Krok 3 — testowanie serwera SMTP

w tym kroku sprawdzisz, czy Postfix może wysyłać wiadomości e-mail na zewnętrzne konto e-mail za pomocą poleceniamail, które jest częścią pakietumailutils zainstalowanego w pierwszym kroku.

aby wysłać testową wiadomość e-mail, uruchom następujące polecenie:

  • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

możesz zmienić treść i temat wiadomości e-mail do swoich potrzeb., Pamiętaj, aby zastąpić your_email_address prawidłowym adresem e-mail, do którego możesz uzyskać dostęp.

teraz sprawdź adres e-mail, na który wysłałeś tę wiadomość. Powinieneś zobaczyć wiadomość w swojej skrzynce odbiorczej. Jeśli go tam nie ma, sprawdź folder ze spamem. W tym momencie wszystkie wysyłane wiadomości e-mail są niezaszyfrowane, co sprawia, że dostawcy usług uważają, że prawdopodobnie jest to spam. Szyfrowanie skonfigurujesz później, w kroku 5.,

Jeśli otrzymasz błąd z poleceniamail lub nie otrzymałeś wiadomości po dłuższym czasie, sprawdź, czy edytowana konfiguracja Postfixa jest prawidłowa i czy nazwa serwera i nazwa hosta są ustawione na Twoją domenę.

zauważ, że w tej konfiguracji adres w polu From dla wysyłanych testowych wiadomości e-mail będzie miał postać your_user_name@your_domain, gdzieyour_user_name jest nazwą użytkownika serwera, jako którego uruchomiłeś polecenie.,

wysłałeś e-mail ze swojego serwera i potwierdziłeś, że został pomyślnie odebrany. W następnym kroku skonfigurujesz przekazywanie wiadomości e-mail dla root.

Krok 4 — przekazywanie poczty systemowej

w tym kroku skonfigurujesz przekazywanie wiadomości e-mail dla użytkownikaroot, aby wygenerowane przez system wiadomości wysyłane do niego na twoim serwerze były przekazywane na zewnętrzny adres e-mail.

plik/etc/aliases zawiera listę alternatywnych nazw odbiorców wiadomości e-mail., Otwórz go do edycji:

  • sudo nano /etc/aliases

w domyślnym stanie wygląda to tak:

/etc/aliases
# See man 5 aliases for formatpostmaster: root

jedyna obecna dyrektywa określa, że wygenerowane przez system wiadomości e-mail są wysyłane do root.

Dodaj następujący wiersz na końcu pliku:

/etc/aliases
...root: your_email_address

w tym wierszu określasz, że wiadomości wysłane na adres root będą przekazywane na adres e-mail. Pamiętaj, aby zastąpić your_email_address swoim osobistym adresem e-mail., Po zakończeniu zapisz i zamknij plik.

aby zmiana weszła w życie, uruchom następujące polecenie:

  • sudo newaliases

uruchamiającnewaliasesutworzy bazę aliasów, których używamail, pobranych z pliku konfiguracyjnego, który właśnie edytowałeś.

sprawdź, czy wysyłanie e-maili do root działa poprzez uruchomienie:

  • echo "This is the body of the email" | mail -s "This is the subject line" root

powinieneś otrzymać e-mail na swój adres e-mail. Jeśli go tam nie ma, sprawdź folder ze spamem.,

w tym kroku skonfigurowano przekazywanie generowanych przez system wiadomości na twój adres e-mail. Teraz włączysz szyfrowanie wiadomości, dzięki czemu wszystkie wiadomości e-mail wysyłane przez serwer będą odporne na manipulacje podczas przesyłania i będą postrzegane jako bardziej legalne.

Krok 5 — Włączanie szyfrowania SMTP

teraz włączysz szyfrowanie SMTP, żądając bezpłatnego certyfikatu TLS od Let ' s Encrypt dla Twojej domeny (używając Certbot) i konfigurując Postfixa, aby używał go podczas wysyłania wiadomości.

Ubuntu zawiera Certbot w domyślnym repozytorium pakietów, ale może się zdarzyć, że jest nieaktualny., Zamiast tego dodasz oficjalne repozytorium, uruchamiając następujące polecenie:

  • sudo add-apt-repository ppa:certbot/certbot

naciśnij ENTER po wyświetleniu monitu o akceptację. Następnie zaktualizuj pamięć podręczną menedżera pakietów serwera:

  • sudo apt update

na koniec zainstaluj najnowszą wersję programu Certbot:

  • sudo apt install certbot -y

w ramach wstępnej konfiguracji serwera w warunkach wstępnych zainstalowano ufw, nieskomplikowaną zaporę sieciową. Musisz skonfigurować go tak, aby zezwalał na port HTTP 80, aby można było zakończyć weryfikację domeny., Uruchom następujące polecenie, aby go włączyć:

  • sudo ufw allow 80

wyjście będzie wyglądało tak:

Output
Rule addedRule added (v6)

teraz, gdy port jest otwarty, Uruchom Certbot, aby uzyskać certyfikat:

  • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

To polecenie nakazuje Certbot aby wydać certyfikaty z kluczem RSA o rozmiarze 4096 bitów, uruchomić tymczasowy samodzielny serwer WWW (--standalone) do weryfikacji i sprawdzić przez port 80 (--preferred-challenges http)., Pamiętaj, aby zastąpić your_domain swoją domeną przed uruchomieniem polecenia i wprowadź swój adres e-mail po wyświetleniu monitu.

wynik będzie podobny do tego:

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

zgodnie z zapisem w notatkach, Twój plik certyfikatu i klucza prywatnego został zapisany pod/etc/letsencrypt/live/your_domain.

teraz, gdy masz swój certyfikat, otwórz main.cf do edycji:

  • sudo nano /etc/postfix/main.cf

Znajdź następującą sekcję:

/etc/postfix / main.,cf

zmodyfikuj go tak, aby wyglądał tak, zastępującyour_domain w razie potrzeby domeną, która zaktualizuje ustawienia TLS dla Postfixa:

/etc/postfix/main.CF

Po zakończeniu zapisz i zamknij plik.

Zastosuj zmiany, uruchamiając ponownie Postfix:

  • sudo systemctl restart postfix

teraz spróbuj ponownie wysłać wiadomość e-mail:

  • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

następnie sprawdź podany adres e-mail. Możliwe, że wiadomość pojawi się natychmiast w skrzynce odbiorczej, ponieważ dostawcy poczty e-mail są znacznie bardziej skłonni oznaczać niezaszyfrowane wiadomości jako spam.,

Możesz sprawdzić informacje techniczne dotyczące wiadomości e-mail w swoim kliencie, aby zobaczyć, że wiadomość jest rzeczywiście zaszyfrowana.

podsumowanie

masz teraz serwer poczty tylko do wysyłania, powered by Postfix. Szyfrowanie wszystkich wiadomości wychodzących jest dobrym pierwszym krokiem, aby dostawcy poczty e-mail nie oznaczali wiadomości jako spam. Jeśli robisz to w scenariuszu rozwoju, środek ten powinien wystarczyć.,

jednak, jeśli używasz do wysyłania wiadomości e-mail do potencjalnych użytkowników witryny (takich jak e-maile z potwierdzeniem rejestracji na forum dyskusyjnym), powinieneś rozważyć skonfigurowanie rekordów SPF, aby wiadomości e-mail serwera były jeszcze bardziej prawdopodobne, aby były postrzegane jako uzasadnione.

Articles

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *