Jeśli chcesz wysyłać lub odbierać e-mail, powinieneś mieć serwer pocztowy. W tym poście omówimy Linux mail server i jak działa SMTP (Simple Mail Transfer Protocol), a także inne protokoły związane z pocztą, takie jak Post Office Protocol (POP) i Internet Message Access Protocol (IMAP) i relacje między nimi.,
spis treści
Linux SMTP server
SMTP definiuje sposób wysyłania poczty z Jednego Hosta do drugiego; jest również niezależny od systemu, co oznacza, że nadawca i odbiorca mogą mieć różne systemy operacyjne.
SMTP wymaga tylko, aby serwer mógł wysyłać prosty tekst ASCII na inny serwer, można to zrobić, łącząc się z serwerem na porcie 25, który jest standardowym portem SMTP.
większość dystrybucji Linuksa ma obecnie dwie najpopularniejsze implementacje SMTP, którymi są sendmail i Postfix.,
Sendmail jest znanym i darmowym serwerem pocztowym, ale ma trochę skomplikowany design i mniej bezpieczny.
Postfix poszedł o krok dalej w implementacji serwera pocztowego; opracowali ją z myślą o bezpieczeństwie.
komponenty usługi pocztowej
usługa pocztowa na dowolnym serwerze pocztowym ma trzy komponenty:
Mail user agent (Mua): ten komponent, który użytkownik widzi i współdziała z takimi jak Thunderbird i Microsoft Outlook, agenci tych użytkowników są odpowiedzialni za odczyt poczty i pozwala tworzyć pocztę.,
Mail transport agent (MTA): ten komponent jest odpowiedzialny za przesyłanie poczty z jednej strony do drugiej, takiej jak Sendmail i Postfix.
Mail delivery agent (MDA): komponent ten jest odpowiedzialny za dystrybucję odebranych wiadomości na lokalnym komputerze do odpowiedniej skrzynki pocztowej użytkownika, takiej jak postfix-maildrop i Procmail.
Konfiguracja serwera poczty
wybraliśmy serwer poczty Postfix, który jest dziś bardzo popularny i powszechny wśród administratorów systemu.
Postfix jest domyślnym serwerem pocztowym w większości nowoczesnych dystrybucji Linuksa.,
najpierw sprawdź, czy jest zainstalowany w Twoim systemie, czy nie:
$ rpm -qa | grep postfix
Jeśli nie jest zainstalowany, możesz zainstalować serwer poczty Postfix na dystrybucjach Red Hat, takich jak:
$ dnf -y install postfix
następnie uruchomić usługę postfix i włączyć ją podczas uruchamiania systemu:
$ systemctl start postfix$ systemctl enable postfix
na dystrybucjach opartych na Debianie, takich jak Ubuntu, możesz zainstalować go w następujący sposób:
$ apt-get -y install postfix
podczas instalacji poprosi Cię o wybór typu konfiguracji serwera pocztowego Postfix.,
spośród czterech opcji Brak konfiguracji, strony internetowej, Internetu z smarthostem, systemu satelitarnego i tylko lokalnego, wybierzemy opcję Brak konfiguracji.
Konfiguracja Linux mail server
Po zainstalowaniu serwera pocztowego Postfix musisz go skonfigurować; większość jego plików konfiguracyjnych znajdziesz w katalogu/etc/ postfix/.
główną konfigurację serwera pocztowego Postfix można znaleźć w pliku/etc/postfix / main.CF.,
ten plik zawiera wiele opcji, takich jak:
myhostname
możesz użyć tej opcji do określenia nazwy hosta serwera pocztowego. Jest to nazwa hosta internetowego, który Postfix będzie otrzymywać e-maile na jego temat.
nazwy hostów mogą być jak mail.example.com, smtp.example.com.
myhostname = mail.example.com
mydomain
Ta opcja jest domeną poczty, którą będziesz obsługiwać, jak example.com
składnia jest taka:
mydomain = example.com
myorigin
wszystkie wiadomości e-mail wysyłane z tego serwera pocztowego będą wyglądać tak, jakby pochodziły z tej opcji., Możesz ustawić wartość $mydomain.
myorigin = $mydomain
możesz użyć dowolnej wartości opcji, po prostu poprzedź ją $ like $mydomain.
mydestination
Ta opcja wymienia domeny, z których serwer Postfix korzysta dla przychodzących wiadomości e-mail.
może przyjmować wartości takie jak:
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain
mail_spool_directory
istnieją dwa tryby dostarczania, z których może korzystać serwer pocztowy Postfix:
- bezpośrednio do skrzynki pocztowej użytkownika.
- do centralnego katalogu spool, w ten sposób, poczta będzie w /var / spool / mail z plikiem dla każdego użytkownika.,
mail_spool_directory = /var/spool/mail
mynetworks
opcja ta pozwala skonfigurować, jakie serwery mogą przesyłać przez serwer Postfix.
Ta opcja powinna pobierać adresy lokalne jak lokalne Skrypty pocztowe tylko na twoim serwerze.
W Przeciwnym Razie spamerzy mogą wykorzystywać Twój serwer pocztowy do przekazywania wiadomości i Twojego serwera pocztowego na czarnej liście, w wyniku czego nie będziesz w stanie odbierać wielu wiadomości e-mail.,
Ta opcja ma następującą składnię:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_banner
ta zmienna ustawia wiadomość, którą serwer wyśle, gdy klient po pomyślnym połączeniu.
lepiej zmienić baner na coś, co nie daje pojęcia o serwerze, z którego korzystasz.
inet_protocols
opcja ta określa wersję protokołu IP używaną do połączeń z serwerem.,
inet_protocols = ipv4
Jeśli zmienisz pliki konfiguracyjne dla serwera pocztowego Postfix, musisz ponownie załadować usługę:
$ systemctl reload postfix
podczas wpisywania dowolnej konfiguracji możesz popełnić błąd, możesz sprawdzić błędy za pomocą następującego polecenia:
$ postfix check
To narzędzie pomoże Ci znaleźć dokładnie linię I błąd, dzięki czemu możesz go naprawić.
sprawdzanie kolejki poczty
czasami kolejki poczty są wypełnione wiadomościami. Dzieje się tak z wielu powodów, takich jak awaria sieci lub jakikolwiek powód, który może opóźnić dostarczanie poczty.,
aby sprawdzić kolejkę poczty na serwerze Linux, użyj następującego polecenia:
$ mailq
To polecenie pokazuje kolejkę poczty Postfix.
Jeśli twoja kolejka jest wypełniona, a przetwarzanie wiadomości zajmuje kilka godzin, powinieneś spłukać kolejkę poczty.
$ postfix flush
teraz, jeśli sprawdzisz kolejkę poczty, powinieneś ją znaleźć pustą.
Przetestuj Linux mail server
Po prawidłowym skonfigurowaniu serwera pocztowego Postfix powinieneś przetestować swój serwer pocztowy.,
pierwszym krokiem jest użycie lokalnego agenta użytkownika poczty, takiego jak mailx lub mail, który jest dowiązaniem symbolicznym do mailx.
spróbuj wysłać wiadomość do kogoś innego na tym samym serwerze, jeśli to zadziała, a następnie wyślij do zdalnego serwisu.
następnie spróbuj odebrać wiadomość ze zdalnej strony.
Jeśli masz jakieś problemy, sprawdź logi. Plik dziennika dystrybucji Red Hat w pliku/var/log / maillog oraz dystrybucji Debiana w pliku / var / log / mail.plik dziennika lub jak zdefiniowano w konfiguracji rsyslogd.,
polecam przejrzenie linuksowego serwera Syslog, aby uzyskać szczegółowe wyjaśnienie o logach i jak skonfigurować rsyslogd.
jeśli nadal masz problemy, spróbuj sprawdzić ustawienia DNS i sprawdzić rekordy MX za pomocą poleceń sieci Linux.
zabezpiecz skrzynki pocztowe przed spamem za pomocą SpamAssassin
jednym ze sposobów walki ze spamem jest skanowanie skrzynek pocztowych za pomocą jakiegoś narzędzia, wyszukując określone wzorce związane ze spamem.
jednym z najlepszych rozwiązań jest SpamAssassin, czyli open-source.,
możesz zainstalować go w następujący sposób:
$ dnf -y install spamassassin
następnie uruchom usługę i włącz ją przy starcie:
$ systemctl start spamassassin$ systemctl enable spamassassin
Po zainstalowaniu możesz sprawdzić konfigurację w
/etc/mail/spamassassin/local.cf
plik.
SpamAssassin określa, czy wiadomość e-mail jest spamem, czy nie, na podstawie wyników różnych skryptów.
Jeśli wiadomość ma wyższy wynik, oznacza to większą możliwość bycia spamem.,
w pliku konfiguracyjnym parametr required_hits 5 wskazuje, że SpamAssassin będzie oznaczał wiadomość e-mail jako spam, jeśli jej wynik będzie pięć lub wyższy.
opcja report_safe przyjmuje wartości 0, 1 lub 2. Jeśli jest ustawione na 0, oznacza to, że e-mail oznaczony jako spam jest wysyłany tak, jak jest, modyfikując tylko nagłówki, aby pokazać, że jest to spam.
jeśli przyjmuje wartość 1 lub 2, SpamAssassin generuje nową wiadomość raportu i wysyła wiadomość do odbiorcy.,
wartość 1 oznacza, że wiadomość ze spamem jest zakodowana jako content message / rfc822, natomiast jeśli wartość wynosi 2, oznacza to, że wiadomość jest zakodowana jako text / plain content.
text/plain jest bezpieczniejszy, ponieważ niektóre klienty pocztowe uruchamiają message / rfc822 i mogą zainfekować komputer klienta.
teraz musimy zintegrować go z Postfixem. Najprostszym sposobem na to jest prawdopodobnie użycie procmaila.
musimy utworzyć plik o nazwie
/etc/procmailrc
i dodać następującą zawartość:
:0 hbfw| /usr/bin/spamc
następnie edytujemy plik konfiguracyjny Postfixa /etc/postfix/main.,cf i zmiana
mailbox_command
mailbox_command = /usr/bin/procmail
wreszcie uruchom ponownie Usługi Postfix i SpamAssassin:
$ systemctl restart postfix$ systemctl restart spamassassin
jednak SpamAssassin czasami nie rozpoznaje wiadomości spamowych, które doprowadziły do skrzynek pocztowych wypełnionych wiadomościami spamowymi.
na szczęście możesz filtrować wiadomości przed wejściem na serwer Postfix za pomocą Realtime Blackhole Lists (RBL). Zmniejszy to obciążenie serwera pocztowego i utrzyma go w czystości.
Otwórz plik konfiguracyjny serwera Postfix/etc/postfix / main.,cf I zmienić opcję smtpd_recipient_restrictions i dodać następujące opcje jak ta:
następnie zrestartować serwer postfix:
$ systemctl restart postfix
powyższe RBL są wspólne; można znaleźć więcej list w Internecie i spróbować ich.
zabezpieczanie połączenia SMTP
lepiej jest przenieść ruch SMTP przez TLS, aby chronić go przed atakiem Man In The Middle (MITM).
najpierw musimy wygenerować certyfikat i klucz za pomocą polecenia openssl:
następnie dodać następującą opcję do pliku konfiguracyjnego Postfix /etc/postfix/main.,cf:
na koniec uruchom ponownie usługę postfix:
$ systemctl restart postfix
teraz musisz wybrać TLS na swoim kliencie podczas łączenia się z serwerem.
otrzymasz ostrzeżenie, gdy wyślesz wiadomość po raz pierwszy po zmianie ustawienia, ponieważ certyfikat nie jest podpisany.
Korzystanie z certyfikatów Let 's Encrypt
Let' s Encrypt to darmowy dostawca certyfikatów SSL, który umożliwia szyfrowanie ruchu.
zamiast używać certyfikatów podpisanych samodzielnie, które denerwują użytkowników, że ufają im, możesz użyć tego dobrego rozwiązania.,
najpierw zainstaluj letsencrypt:
$ yum install letsencrypt
lub jeśli używasz dystrybucji opartej na Debianie, możesz użyć następującego polecenia:
$ apt-get install letsencrypt
następnie uruchom letsencrypt w następujący sposób:
$ letsencrypt certonly --standalone -d yourdomain.com
należy wymienić yourdomain.com z Twoją rzeczywistą domeną.
Po udzieleniu odpowiedzi na pytania dotyczące poczty kontaktowej, domeny serwera poczty e-mail i licencji, wszystko powinno być już w porządku.,
certyfikaty będą w:
/etc/letsencrypt/live/yourdomain.com/
jeszcze jedna rzecz, którą musisz zrobić, czyli sprawić, by postfix używał tych certyfikatów, możesz użyć następujących poleceń:
nie zapomnij wymienić yourdomain.com z Twoją rzeczywistą domeną.
na koniec uruchom ponownie serwer postfix:
$ systemctl restart postfix
podstawy protokołu POP3 i IMAP
do tej pory widzieliśmy, jak serwer poczty SMTP wysyła i odbiera e-maile bez problemów, ale weź pod uwagę następujące sytuacje:
- użytkownicy potrzebują lokalnych kopii e-maili do przeglądania w trybie offline.,
- format pliku mbox nie jest obsługiwany. Format mbox jest używany przez wielu agentów użytkowników poczty, takich jak mailx i mutt.
- użytkownicy nie mogą pozostać połączeni z szybką siecią, aby pobrać lokalną kopię do odczytu w trybie offline.
- niektóre serwery pocztowe nie dają dostępu do udostępnionych katalogów szpul pocztowych ze względów bezpieczeństwa.
aby obsłużyć te przypadki, należy użyć protokołów dostępu do poczty.
Najpopularniejszymi dwoma popularnymi protokołami dostępu do poczty są Post Office Protocol (POP) i Internet Message Access Protocol (IMAP).,
idea POP jest bardzo prosta: centralny Linux mail server pozostaje online przez cały czas i odbiera i przechowuje wiadomości e-mail dla wszystkich użytkowników. Wszystkie otrzymane wiadomości e-mail są ustawiane w kolejce na serwerze, dopóki użytkownik ich nie złapie.
gdy użytkownik chce wysłać wiadomość e-mail, klient poczty przekazuje ją za pośrednictwem centralnego serwera pocztowego Linux za pośrednictwem SMTP normalnie.
zauważ, że serwer SMTP i serwer POP mogą być na tym samym systemie bez żadnego problemu. Większość serwerów robi to dzisiaj.
brakowało takich funkcji, jak przechowywanie głównej kopii wiadomości e-mail użytkownika na serwerze, co doprowadziło do rozwoju IMAP.,
używając IMAP, Twój Linux mail server będzie obsługiwał trzy tryby dostępu:
- Tryb online jest podobny do bezpośredniego dostępu systemu plików do Linux mail server.
- Tryb offline jest podobny do tego, jak działa POP, gdzie klient jest odłączony od sieci, z wyjątkiem przechwytywania wiadomości e-mail. W tym trybie serwer zwykle nie zachowuje kopii wiadomości e-mail.
- tryb rozłączony działa, umożliwiając użytkownikom przechowywanie w pamięci podręcznej kopii wiadomości e-mail, a serwer zachowuje kopię wiadomości e-mail.,
istnieje kilka implementacji dla IMAP i POP; najpopularniejszą z nich jest serwer Dovecot, który udostępnia oba protokoły.
POP3, POP3S, IMAP i IMAP nasłuchują odpowiednio na portach 110, 995, 143 i 993.
instalacja Dovecota
większość dystrybucji Linuksa jest preinstalowana., Jednakże, możesz zainstalować Dovecot w dystrybucjach Red Hat, takich jak:
$ dnf -y install dovecot
dystrybucje oparte na Debianie zapewniają funkcjonalność IMAP i POP3 w dwóch oddzielnych pakietach, możesz zainstalować je w następujący sposób:
$ apt-get -y install dovecot-imapd dovecot-pop3d
poprosi Cię o utworzenie certyfikatów z podpisem własnym dla korzystania z IMAP i POP3 przez SSL/TLS. Wybierz Tak i wprowadź nazwę hosta dla systemu po wyświetleniu monitu.,
następnie możesz uruchomić usługę i włączyć ją przy starcie w następujący sposób:
$ systemctl start dovecot$ systemctl enable dovecot
Konfiguracja Dovecot
głównym plikiem konfiguracyjnym Dovecot jest
/etc/dovecot/dovecot.conf
plik.
niektóre dystrybucje Linuksa umieszczają konfigurację w katalogu
/etc/dovecot/conf.d/
i używają dyrektywy include do umieszczania ustawień w plikach.
możesz użyć poniższej listy parametrów, aby skonfigurować Dovecot:
protocols: protokoły, które chcesz obsługiwać.
protocols = imap pop3 lmtp
LMTP oznacza lokalny protokół przesyłania poczty.,
listen: adresy IP do odsłuchania.
listen = *, ::
gwiazdka oznacza wszystkie interfejsy ipv4, A:: oznacza wszystkie interfejsy ipv6
userdb: baza danych użytkowników do uwierzytelniania użytkowników.
userdb {driver = pam}
passdb: baza haseł do uwierzytelniania użytkowników.
passdb {driver = passwd}
mail_location: ten wpis w /etc/dovecot/conf.d / 10-mail.plik conf:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Secure Dovecot
Dovecot jest wyposażony w ogólne certyfikaty SSL i pliki kluczy., Spójrz na ten plik:
/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem
gdy użytkownik próbuje połączyć się z serwerem dovecot, wyświetli ostrzeżenie, ponieważ certyfikaty nie są podpisane, możesz kupić certyfikat z urzędu certyfikacji, jeśli chcesz.
lub jeśli używasz certyfikatów Let ' s Encrypt, możesz wskazać na nie:
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem
nie zapomnij otworzyć portów serwera dovecot w zaporze iptables, dodając reguły iptables dla portów 110, 995, 143, 993, 25.
następnie zapisz Zasady.,
lub jeśli używasz firewalld, możesz wykonać następujące czynności:
i ponownie, aby rozwiązać problemy, sprawdź pliki dziennika /var/log/messages, /var/log/maillog i /var/log/mail.pliki dziennika.
Linux mail server jest jednym z najprostszych serwerów do pracy, szczególnie serwera pocztowego Postfix.
mam nadzieję, że ten post okaże się przydatny i interesujący. Wracaj.
Dziękuję.
założyciel LikeGeeks. Pracuję jako administrator systemu Linux od 2010 roku., Jestem odpowiedzialny za utrzymywanie, zabezpieczanie i rozwiązywanie problemów z serwerami Linux dla wielu klientów na całym świecie. Uwielbiam pisać skrypty powłoki i Pythona, aby zautomatyzować moją pracę.
Dodaj komentarz