Wyszukiwanie w witrynie

Konfigurowanie usług e-mail (SMTP, Imap i Imaps) oraz ograniczanie dostępu do SMTP – część 7


LFCE (Certyfikowany inżynier Linux Foundation) to wyszkolony profesjonalista, który posiada umiejętności instalowania usług sieciowych w systemach Linux, zarządzania nimi i rozwiązywania problemów z nimi, a także jest odpowiedzialny za projektowanie, wdrażanie i bieżące utrzymanie architektury systemu oraz administracja użytkownikami.

Przedstawiamy program certyfikacyjny Linux Foundation.

W poprzednim samouczku omówiliśmy, jak zainstalować niezbędne komponenty usługi pocztowej. Jeśli nie zainstalowałeś jeszcze Postfixa i Dovecota, przed kontynuowaniem zapoznaj się z częścią 1 tej serii, aby uzyskać instrukcje, jak to zrobić.

Wymóg

  1. Zainstaluj serwer pocztowy Postfix i Dovecot – część 1

W tym poście pokażę Ci, jak skonfigurować serwer pocztowy i jak wykonać następujące zadania:

  1. Skonfiguruj aliasy e-mail
  2. Skonfiguruj usługę IMAP i IMAPS
  3. Skonfiguruj usługę smtp
  4. Ogranicz dostęp do serwera smtp

Uwaga: nasza konfiguracja obejmie tylko serwer pocztowy w sieci lokalnej, w której komputery należą do tej samej domeny. Wysyłanie wiadomości e-mail do innych domen wymaga bardziej złożonej konfiguracji, w tym możliwości rozpoznawania nazw domen, co wykracza poza zakres certyfikacji LFCE.

Ale najpierw zacznijmy od kilku definicji.

Składniki procesu wysyłania, transportu i dostawy poczty

Poniższy obraz ilustruje proces transportu wiadomości e-mail począwszy od nadawcy, aż wiadomość dotrze do skrzynki odbiorczej odbiorcy:

Aby było to możliwe, za kulisami dzieje się kilka rzeczy. Aby wiadomość e-mail została dostarczona z aplikacji klienckiej (takiej jak Thunderbird, Outlook lub usługi poczty internetowej, takie jak Gmail lub Yahoo! Mail) na jego serwer pocztowy, a stamtąd na serwer docelowy i ostatecznie do zamierzonego odbiorcy , na każdym serwerze musi być dostępna usługa SMTP (Simple Mail Transfer Protocol).

Mówiąc o usługach e-mailowych, bardzo często pojawiają się następujące terminy:

Agent transportu wiadomości – MTA

MTA (skrót od Mail lub Message Transport Agent), czyli przekaźnik poczty, to oprogramowanie odpowiedzialne za przesyłanie wiadomości e-mail z serwera do klienta (i odwrotnie). W tej serii Postfix pełni rolę naszego MTA.

Agent użytkownika poczty – MUA

MUA, czyli Mail User Agent, to program komputerowy używany do uzyskiwania dostępu do skrzynek odbiorczych użytkowników i zarządzania nimi. Przykłady MUA obejmują między innymi Thunderbirda, Outlooka i interfejsy poczty internetowej, takie jak Gmail, Outlook.com, żeby wymienić tylko kilka. W tej serii w naszych przykładach będziemy używać Thunderbirda.

Agent dostarczający pocztę

MDA (skrót od Message lub Mail Delivery Agent) to część oprogramowania, która faktycznie dostarcza wiadomości e-mail do skrzynek odbiorczych użytkowników. W tym samouczku użyjemy Dovecot jako naszego MDA. Dovecot zajmie się także uwierzytelnianiem użytkowników.

Prosty protokół przesyłania poczty – SMTP

Aby te komponenty mogły „rozmawiać” ze sobą, muszą „mówić” tym samym „językiem” (lub protokołem ), a mianowicie SMTP (Simple Mail Transfer Protocol) zgodnie z definicją w dokumencie RFC 2821. Najprawdopodobniej będziesz musiał odwołać się do tego dokumentu RFC podczas konfigurowania środowiska serwera poczty.

Inne protokoły, które musimy wziąć pod uwagę to IMAP4 (Internet Message Access Protocol), który pozwala zarządzać wiadomościami e-mail bezpośrednio na serwerze bez konieczności pobierania ich na dysk naszego klienta oraz POP3 (Protokół pocztowy), który umożliwia pobieranie wiadomości i folderów na komputer użytkownika.

Nasze środowisko testowe

Nasze środowisko testowe wygląda następująco:

Konfiguracja serwera pocztowego
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Konfiguracja komputera klienta
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

Na naszym kliencie ustawiliśmy podstawowe rozpoznawanie DNS, dodając następujący wiersz do pliku /etc/hosts.

192.168.0.15 example.com.ar mailserver

Dodawanie aliasów e-mail

Domyślnie wiadomość wysłana do konkretnego użytkownika powinna zostać dostarczona tylko temu użytkownikowi. Jeśli jednak chcesz dostarczyć go także do grupy użytkowników lub do innego użytkownika, możesz utworzyć alias pocztowy lub użyć jednego z istniejących w /etc/postfix/aliases , zgodnie z następującą składnią:

user1: user1, user2

W ten sposób e-maile wysłane do użytkownika1 zostaną również dostarczone do użytkownika2. Pamiętaj, że jeśli pominiesz słowo użytkownik1 po dwukropku, np

user1: user2

wiadomości wysłane do użytkownika1 zostaną wysłane tylko do użytkownika2, a nie do użytkownika1.

W powyższym przykładzie użytkownik1 i użytkownik2 powinny już istnieć w systemie. Jeśli chcesz odświeżyć pamięć przed dodaniem nowych użytkowników, możesz zapoznać się z Częścią 8 serii LFCS.

  1. Jak dodawać użytkowników/grupy i zarządzać nimi w systemie Linux
  2. 15 poleceń do dodawania użytkowników w systemie Linux

W naszym konkretnym przypadku użyjemy następującego aliasu, jak wyjaśniono wcześniej (dodaj następujący wiersz w /etc/aliases).

sysadmin: gacanepa, jdoe

I uruchom następujące polecenie, aby utworzyć lub odświeżyć tabelę wyszukiwania aliasów.

postalias /etc/postfix/aliases

Dzięki temu wiadomości wysłane na adres [email  zostaną dostarczone do skrzynek odbiorczych użytkowników wymienionych powyżej.

Konfiguracja Postfixa – usługi SMTP

Główny plik konfiguracyjny Postfix to /etc/postfix/main.cf. Aby móc korzystać z usługi pocztowej, wystarczy skonfigurować kilka parametrów. Należy jednak zapoznać się z pełnymi parametrami konfiguracyjnymi (które można wyświetlić w man 5 postconf), aby skonfigurować bezpieczny i w pełni dostosowany serwer pocztowy.

Uwaga: ten samouczek ma jedynie pomóc Ci w rozpoczęciu tego procesu i nie stanowi kompleksowego przewodnika po usługach e-mail w systemie Linux.

Otwórz plik /etc/postfix/main.cf w wybranym przez siebie edytorze i wprowadź następujące zmiany zgodnie z objaśnieniami.

vi /etc/postfix/main.cf

1. myorigin określa domenę, która pojawia się w wiadomościach wysyłanych z serwera. Możesz zobaczyć plik /etc/mailname używany z tym parametrem. W razie potrzeby możesz go edytować.

myorigin = /etc/mailname

Jeśli zostanie użyta powyższa wartość, e-maile będą wysyłane jako [email , gdzie użytkownik jest użytkownikiem wysyłającym wiadomość.

2. mydestination zawiera listę domen, które to urządzenie będzie dostarczać wiadomości e-mail lokalnie, zamiast przekazywać dalej do innego komputera (działającego jako system przekaźnikowy). W naszym przypadku wystarczą ustawienia domyślne (pamiętaj o edycji pliku tak, aby odpowiadał Twojemu środowisku).

Gdzie plik /etc/postfix/transport definiuje relację pomiędzy domenami a kolejnym serwerem, do którego wiadomości pocztowe mają być przekazywane. W naszym przypadku, ponieważ będziemy dostarczać wiadomości tylko do naszej sieci lokalnej (pomijając w ten sposób wszelkie zewnętrzne rozpoznawanie DNS), wystarczy poniższa konfiguracja.

example.com.ar    local:
.example.com.ar    local:

Następnie musimy przekonwertować ten zwykły plik tekstowy do formatu .db, co utworzy tabelę przeglądową, której Postfix będzie faktycznie używał, aby wiedzieć, co zrobić z pocztą przychodzącą i wychodzącą.

postmap /etc/postfix/transport

Będziesz musiał pamiętać o odtworzeniu tej tabeli, jeśli dodasz więcej wpisów do odpowiedniego pliku tekstowego.

3. mynetworks definiuje autoryzowane sieci, z których Postfix będzie przesyłał wiadomości. Wartość domyślna podsieć mówi Postfixowi, aby przekazywał pocztę od klientów SMTP w tych samych podsieciach IP, co komputer lokalny.

mynetworks = subnet

4. relay_domains określa miejsca docelowe, do których powinny być wysyłane e-maile. Pozostawimy wartość domyślną nietkniętą, która wskazuje na mydestination. Pamiętaj, że konfigurujemy serwer pocztowy dla naszej sieci LAN.

relay_domains = $mydestination

Pamiętaj, że możesz użyć $mydestination zamiast podawać rzeczywistą zawartość.

5. inet_interfaces określa, na jakich interfejsach sieciowych powinna nasłuchiwać usługa pocztowa. Wartość domyślna all mówi Postfixowi, aby używał wszystkich interfejsów sieciowych.

inet_interfaces = all

6. Na koniec wartości mailbox_size_limit i message_size_limit zostaną użyte do ustawienia odpowiednio rozmiaru skrzynki pocztowej każdego użytkownika i maksymalnego dozwolonego rozmiaru poszczególnych wiadomości w bajtach.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Ograniczanie dostępu do serwera SMTP

Serwer Postfix SMTP może zastosować pewne ograniczenia do każdego żądania połączenia klienta. Nie wszyscy klienci powinni móc identyfikować się na serwerze pocztowym za pomocą polecenia smtp HELO, a już na pewno nie wszyscy powinni mieć dostęp do wysyłania i odbierania wiadomości.

Aby zaimplementować te ograniczenia, użyjemy następujących dyrektyw w pliku main.cf. Choć nie wymagają one objaśnień, dodano komentarze w celu wyjaśnienia.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

Strona parametrów konfiguracyjnych Postfixa po konfiguracji może się przydać w celu dalszego zbadania dostępnych opcji.

Konfiguracja Dovecota

Zaraz po zainstalowaniu dovecot obsługuje protokoły POP3 i IMAP wraz z ich bezpiecznymi wersjami, POP3S i Odpowiednio IMAPS.

Dodaj następujące linie w pliku /etc/dovecot/conf.d/10-mail.conf.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Jeśli sprawdzisz swój katalog domowy, zauważysz, że istnieje podkatalog poczty z następującą zawartością.

Pamiętaj też, że w większości systemów plik /var/mail/%u to miejsce, w którym przechowywane są wiadomości e-mail użytkownika.

Dodaj następującą dyrektywę do /etc/dovecot/dovecot.conf (zwróć uwagę, że imap i pop3 oznaczają również imapy i pop3).

protocols = imap pop3

I upewnij się, że /etc/conf.d/10-ssl.conf zawiera następujące wiersze (w przeciwnym razie dodaj je).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Teraz zrestartujmy Dovecot i sprawdźmy, czy nasłuchuje na portach związanych z imap, imaps, pop3 i pop3s.

netstat -npltu | grep dovecot

Konfigurowanie klienta poczty i wysyłanie/odbieranie wiadomości e-mail

Na naszym komputerze klienckim otworzymy Thunderbird i klikniemy PlikNowyIstniejące konto pocztowe. Zostaniemy poproszeni o podanie nazwy konta i powiązanego z nim adresu e-mail wraz z hasłem. Kiedy klikniemy Kontynuuj, Thunderbird spróbuje połączyć się z serwerem pocztowym w celu sprawdzenia ustawień.

Powtórz powyższy proces dla następnego konta ([email chroniony]), a w lewym okienku Thunderbirda powinny pojawić się dwie kolejne skrzynki odbiorcze.

Na naszym serwerze napiszemy wiadomość e-mail do sysadmin, która jest aliasem do jdoe i gacanepa.

Dziennik poczty (/var/log/mail.log) wydaje się wskazywać, że e-mail wysłany do sysadmin został przekazany do [email  i [email chroniony], jak widać na poniższym obrazku.

Możemy sprawdzić, czy poczta faktycznie dotarła do naszego klienta, na którym skonfigurowano konta IMAP w Thunderbirdzie.

Na koniec spróbujmy wysłać wiadomość z adresu [email  do [email .

Podczas egzaminu zostaniesz poproszony o pracę wyłącznie z narzędziami wiersza poleceń. Oznacza to, że nie będzie można zainstalować aplikacji klienckiej na komputer, takiej jak Thunderbird, ale zamiast tego konieczne będzie korzystanie z poczty. W tym rozdziale użyliśmy Thunderbirda wyłącznie w celach ilustracyjnych.

Wniosek

W tym poście wyjaśniliśmy, jak skonfigurować serwer poczty IMAP dla sieci lokalnej i jak ograniczyć dostęp do serwera SMTP. Jeśli zdarzy ci się napotkać problem podczas wdrażania podobnej konfiguracji w swoim środowisku testowym, będziesz chciał sprawdzić dokumentację online Postfix i Dovecot (szczególnie strony o głównych plikach konfiguracyjnych, /etc/postfix/main.cf i/etc/dovecot/dovecot.conf), ale w każdym przypadku nie wahaj się ze mną skontaktować, korzystając z poniższego formularza komentarza. Z przyjemnością Ci pomogę.