poprzednia wersja tego samouczka została napisana przez Justina Ellingwooda
wprowadzenie
Postfix jest popularnym open-source Mail Transfer Agent (MTA), który może być używany do trasy i dostarczania wiadomości e-mail w systemie Linux. Szacuje się, że około 25% publicznych serwerów pocztowych w Internecie uruchamia Postfixa.
w tym poradniku dowiesz się jak zainstalować i skonfigurować Postfixa na serwerze Ubuntu 20.04., Następnie przetestujesz, czy Postfix jest w stanie poprawnie kierować pocztę, instalując s-nail
, agenta użytkownika poczty (Mua), znanego również jako klient poczty e-mail.
zauważ, że celem tego samouczka jest pomoc w szybkim uruchomieniu Postfixa przy użyciu tylko niektórych funkcji poczty e-mail. Do końca tego przewodnika nie będziesz mieć w pełni funkcjonalnego serwera poczty e-mail, ale będziesz mieć niektóre z podstawowych komponentów takiej konfiguracji, które pomogą Ci zacząć.
wymagania wstępne
aby postępować zgodnie z tym przewodnikiem, musisz:
- serwer z systemem Ubuntu 20.,04, aby działać jako serwer poczty Postfix. Ten serwer powinien mieć użytkownika non-root z uprawnieniami
sudo
oraz firewall skonfigurowany z UFW. Możesz postępować zgodnie z naszym Ubuntu 20.04 initial server setup guide, aby to skonfigurować. - w pełni kwalifikowana nazwa domeny wskazywana na Twoim serwerze Ubuntu 20.04. Pomoc w konfigurowaniu nazwy domeny za pomocą DigitalOcean można znaleźć w naszej dokumentacji dotyczącej domen i sieci DNS. Pamiętaj, że jeśli planujesz uzyskać dostęp do poczty z lokalizacji zewnętrznej, musisz upewnić się, że masz rekord MX wskazujący również na twój serwer pocztowy.,
zauważ, że ten samouczek zakłada, że konfigurujesz host, który ma FQDN mail.example.com
. W razie potrzeby należy zmienić example.com
lubmail.example.com
, aby odzwierciedlić własne FQDN.
Krok 1-Instalacja Postfixa
Postfix jest zawarty w domyślnych repozytoriach Ubuntu, więc można go zainstalować za pomocą APT.
aby rozpocząć, zaktualizuj lokalnyapt
pamięć podręczna pakietu:
- sudo apt update
następnie zainstaluj pakietpostfix
za pomocą następującego polecenia., Zauważ, że tutaj przekazujemy zmienną środowiskową DEBIAN_PRIORITY=low
do tego polecenia Instalacji. Spowoduje to, że proces instalacji poprosi Cię o skonfigurowanie dodatkowych opcji:
- sudo DEBIAN_PRIORITY=low apt install postfix
ten proces instalacji otworzy serię interaktywnych monitów. Dla celów tego samouczka, użyj następujących informacji, aby wypełnić swoje monity:
- ogólny typ konfiguracji poczty?: W tym celu wybierz stronę internetową, ponieważ odpowiada ona naszym potrzebom infrastrukturalnym.,
- systemowa nazwa poczty: jest to podstawowa domena używana do konstruowania poprawnego adresu e-mail, gdy podana jest tylko część konta adresu. Na przykład, załóżmy, że nazwa hosta twojego serwera to
mail.example.com
. Prawdopodobnie będziesz chciał ustawić systemową nazwę poczty naexample.com
tak, że biorąc pod uwagę nazwę użytkownikauser1
, Postfix użyje adresu.
- odbiorca poczty Root i postmaster: jest to konto linuksowe, które zostanie przekierowane na adres
root@
Ipostmaster@
., Użyj swojego konta głównego w tym celu. W tym przykładzie, sammy. - Other destinations to accept mail for: określa miejsca docelowe poczty, które ta instancja Postfix będzie akceptować. Jeśli chcesz dodać inne domeny, za które ten serwer będzie odpowiedzialny, dodaj je tutaj. W przeciwnym razie domyślna wartość będzie wystarczająca.
- wymusić synchroniczne aktualizacje w kolejce poczty?: Ponieważ prawdopodobnie używasz systemu plików, Zaakceptuj No tutaj.
- sieci lokalne: jest to lista sieci, dla których serwer pocztowy jest skonfigurowany do przekazywania wiadomości., Wartość domyślna będzie działać w większości scenariuszy. Jeśli jednak zdecydujesz się go zmodyfikować, upewnij się, że jest bardzo restrykcyjny w odniesieniu do zakresu sieci.
- limit rozmiaru skrzynki pocztowej: może być użyty do ograniczenia rozmiaru wiadomości. Ustawienie go na
0
wyłącza dowolne ograniczenie rozmiaru. - Local address extension character: jest to znak, który może być użyty do oddzielenia regularnej części adresu od rozszerzenia (używanego do tworzenia dynamicznych aliasów). Domyślnie,
+
będzie działać dla tego samouczka., - używane protokoły internetowe: Wybierz, czy ograniczyć wersję IP obsługiwaną przez Postfix. Na potrzeby tego samouczka Wybierz wszystko.
aby być wyraźnym, są to ustawienia używane w tym przewodniku:
Uwaga: Jeśli kiedykolwiek będziesz musiał wrócić, aby zmienić te ustawienia, możesz to zrobić, wpisując:
- sudo dpkg-reconfigure postfix
Monity zostaną wstępnie wypełnione wcześniejszymi odpowiedziami.
Po zakończeniu procesu instalacji możesz wprowadzić kilka aktualizacji do konfiguracji Postfixa.,
Krok 2 — zmiana konfiguracji Postfixa
teraz możesz dostosować niektóre ustawienia, o które nie pytał cię proces instalacji pakietu. Wiele ustawień konfiguracyjnych Postfixa jest zdefiniowanych w pliku /etc/postfix/main.cf
. Zamiast edytować ten plik bezpośrednio, możesz użyć polecenia postconf
do zapytania lub ustawienia konfiguracji.
aby rozpocząć, Ustaw lokalizację skrzynki pocztowej użytkownika Ubuntu spoza katalogu root., W tym przewodniku użyjemy formatu Maildir, który dzieli wiadomości na pojedyncze pliki, które są następnie przenoszone między katalogami na podstawie akcji użytkownika. Alternatywną opcją, która nie jest omówiona w tym przewodniku, jest format mbox, który przechowuje wszystkie wiadomości w jednym pliku.
Ustaw zmiennąhome_mailbox
naMaildir/
. Później utworzysz strukturę katalogów pod tą nazwą w katalogu domowym użytkownika., Skonfigurujhome_mailbox
wpisując:
- sudo postconf -e 'home_mailbox= Maildir/'
następnie Ustaw lokalizację tabelivirtual_alias_maps
, która mapuje dowolne konta e-mail na konta systemu Linux. Uruchom następujące polecenie, które mapuje lokalizację tabeli do pliku bazy danych o nazwie /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
teraz, gdy zdefiniowałeś lokalizację pliku MAP wirtualnych w pliku main.cf
, możesz utworzyć sam plik i rozpocząć mapowanie kont e-mail do kont użytkowników na twoim komputerze.system Linux., Utwórz plik za pomocą preferowanego edytora tekstu; w tym przykładzie użyjemy nano
:
- sudo nano /etc/postfix/virtual
wyświetli listę adresów, dla których chcesz zaakceptować e-mail, a następnie spację i użytkownika Linuksa, do którego chcesz dostarczyć tę wiadomość.,
na przykład, jeśli chcesz zaakceptować e-mail pod adresem I
I chcesz, aby te e-maile zostały dostarczone użytkownikowi sammy Linux, możesz skonfigurować swój plik w następujący sposób:
iv id=”976f0c6b3c”
Po zmapowaniu wszystkich adresów na odpowiednie konta serwera Zapisz i zamknij plik. Jeśli użyłeś nano
, zrób to naciskając CTRL + X
, Y
, następnie ENTER
.,
zastosuj mapowanie, wpisując:
- sudo postmap /etc/postfix/virtual
Uruchom ponownie Proces Postfix, aby upewnić się, że wszystkie zmiany zostały zastosowane:
- sudo systemctl restart postfix
zakładając, że postępowałeś zgodnie z instrukcją wstępnej konfiguracji serwera, skonfigurujesz zaporę z UFW. Zapora ta domyślnie blokuje połączenia zewnętrzne z usługami na serwerze, chyba że połączenia te są wyraźnie dozwolone, więc musisz dodać regułę zapory, aby zezwolić na wyjątek dla Postfixa.,
możesz zezwolić na połączenia z usługą, wpisując:
- sudo ufw allow Postfix
dzięki temu Postfix jest skonfigurowany i gotowy do przyjmowania połączeń zewnętrznych. Jednak nie jesteś jeszcze gotowy, aby przetestować go za pomocą klienta pocztowego. Zanim będziesz mógł zainstalować klienta i użyć go do interakcji z pocztą dostarczaną na twój serwer, musisz wprowadzić kilka zmian w konfiguracji serwera Ubuntu.,
Krok 3-Instalacja klienta pocztowego i inicjalizacja struktury Maildir
w celu interakcji z dostarczaną pocztą, ten krok przeprowadzi Cię przez proces instalacji pakietu s-nail
. Jest to bogaty w funkcje wariant klienta BSDxmail
, który może poprawnie obsługiwać format Maildir.
przed zainstalowaniem Klienta Należy jednak upewnić się, że zmienna środowiskowa MAIL
jest ustawiona poprawnie., s-nail
będzie szukał tej zmiennej, aby dowiedzieć się, gdzie znaleźć pocztę dla użytkownika.
aby upewnić się, że zmienna MAIL
jest ustawiona niezależnie od sposobu dostępu do konta — czy to przez ssh
, su
, su -
, czy sudo
, na przykład — musisz ustawić zmienną w pliku /etc/bash.bashrc
I dodać ją do pliku w /etc/profile.d
, aby upewnić się, że jest domyślnie ustawiona dla wszystkich użytkowników.,
aby dodać zmienną do tych plików, wpisz:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
aby odczytać zmienną w bieżącej sesji, Pobierz /etc/profile.d/mail.sh
plik:
- source /etc/profile.d/mail.sh
z tym zakończeniem zainstaluj s-nail
klient poczty e-mail z apt:
- sudo apt install s-nail
przed uruchomieniem klienta należy dostosować kilka ustawień. Otwórz plik /etc/s-nail.rc
w edytorze:
- sudo nano /etc/s-nail.rc
u dołu pliku dodaj następujące opcje:
. . .set emptystartset folder=Maildirset record=+sent
oto co robią te linie:
-
set emptystart
: pozwala klientowi otworzyć nawet z pustą skrzynką odbiorczą -
set folder=Maildir
: ustawiaMaildir
katalog wewnętrznyfolder
zmienna -
set record=+sent
tworzy plik MBOXsent
do przechowywania wysłanych wiadomości w dowolnym katalogu ustawionym jakofolder
zmienna, w tym przypadkuMaildir
Zapisz i zamknij plik po zakończeniu., Jesteś teraz gotowy do zainicjowania struktury Maildir Twojego systemu.
szybkim sposobem utworzenia struktury Maildir w katalogu domowym jest wysłanie wiadomości e-mail za pomocą polecenias-nail
. Ponieważ pliksent
będzie dostępny tylko po utworzeniu Maildir, powinieneś wyłączyć zapisywanie do niego dla tej początkowej wiadomości e-mail. Zrób to, przechodząc do opcji -Snorecord
.
wyślij e-mail wysyłając ciąg znaków na polecenie s-nail
., Dostosuj polecenie, aby oznaczyć użytkownika Linuksa jako odbiorcę:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Uwaga: możesz otrzymać następującą odpowiedź:
OutputCan't canonicalize "/home/sammy/Maildir"
jest to normalne i może pojawić się tylko podczas wysyłania tej pierwszej wiadomości.,
Możesz sprawdzić, czy katalog został utworzony, szukając twojego ~/Maildir
katalogu:
- ls -R ~/Maildir
zobaczysz, że struktura katalogów została utworzona i że nowy plik wiadomości znajduje się w ~/Maildir/new
katalogu:
teraz, gdy struktura katalogów została utworzona, możesz przetestować klienta s-nail
, przeglądając wiadomość init
I wysyłając wiadomość na zewnętrzny adres e-mail.,
Krok 4 — testowanie klienta
aby otworzyć klienta, Uruchom s-nail
polecenie:
- s-nail
w konsoli zobaczysz podstawową skrzynkę odbiorczą z init
wiadomość oczekująca:p
naciśnij ENTER
, aby wyświetlić wiadomość:
możesz wrócić do listy wiadomości, wpisując h
, a następnie ENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
zauważ, że wiadomość ma teraz stan R
, wskazujący, że została odczytana.,
ponieważ ta wiadomość nie jest zbyt przydatna, możesz ją usunąć, naciskając d
, a następnie ENTER
:
- d
aby wrócić do terminala, wpisz q
a następnie ENTER
:
- q
w końcowym teście sprawdź, czy s-nail
jest w stanie poprawnie wysyłać wiadomości e-mail. Aby to zrobić, możesz przesłać zawartość pliku tekstowego do procesu s-nail
, tak jak w przypadku wiadomości init
wysłanej w poprzednim kroku.,
zacznij od napisania wiadomości testowej w edytorze tekstu:
- nano ~/test_message
w środku wpisz tekst, który chcesz wysłać:
Hello,This is a test. Please confirm receipt!
Zapisz i zamknij plik po napisaniu wiadomości.
następnie użyj poleceniacat
, aby przesłać wiadomość do procesus-nail
., Możesz to zrobić za pomocą następującego przykładu, który używa następujących opcji:
-
-s
: definiuje temat wiadomości e-mail -
-r
: opcjonalna zmiana pola „From:” wiadomości e-mail. Domyślnie, użytkownik Linuksa, którego jesteś zalogowany, zostanie użyty do wypełnienia tego pola. Opcja-r
umożliwia nadpisanie tego poprawnego adresu, takiego jak jeden z tych zdefiniowanych w pliku/etc/postfix/virtual
., Aby zilustrować, następujące polecenie używa
należy również zmienić na prawidłowy adres e-mail, do którego masz dostęp:
- cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
następnie przejdź do skrzynki odbiorczej dla adresu e-mail, na który wysłałeś wiadomość. Zobaczysz wiadomość czekającą tam niemal natychmiast.
Uwaga: Jeśli wiadomość nie znajduje się w Twojej skrzynce odbiorczej, mogła zostać dostarczona do folderu Spam.
Możesz przeglądać wysyłane wiadomości w swoims-nail
kliencie., Uruchom ponownie interaktywnego klienta:
- s-nail
w kliencie poczty e-mail wyświetl wysłane wiadomości, wpisując:
- file +sent
zobaczysz wynik w następujący sposób:
Output+sent: 1 message 1 new▸N 1 [email protected] 2020-05-19 15:47 12/297 Test email subject line
możesz zarządzać wysłaną pocztą za pomocą tych samych poleceń, których używasz dla poczty przychodzącej.
podsumowanie
masz teraz skonfigurowany Postfix na serwerze Ubuntu 20.04. Zarządzanie serwerami e-mail może być trudnym zadaniem dla nowych administratorów systemu, ale dzięki tej konfiguracji powinieneś mieć wystarczająco dużo funkcji poczty MTA, aby zacząć.