Postfix + Dovecot + Squirrelmail i lokalni użytkownicy - sieci SME

Indeks ogólny serii: Sieci komputerowe dla MŚP: wprowadzenie

Ten artykuł jest kontynuacją i ostatnim z miniserialu:

Witajcie przyjaciele i przyjaciele!

L Entuzjaści chcą mieć własny serwer pocztowy. Nie chcą używać serwerów, na których „Prywatność” znajduje się między znakami zapytania. Osoba odpowiedzialna za wdrożenie usługi na Twoim małym serwerze nie jest specjalistą w tej dziedzinie i początkowo spróbuje zainstalować rdzeń przyszłego i kompletnego serwera pocztowego. Czy to, że „równania” tworzenia pełnego serwera pocztowego są nieco trudne do zrozumienia i zastosowania. 😉

Adnotacje na marginesie

  • Konieczne jest jasne określenie, jakie funkcje wykonuje każdy program wchodzący w skład serwera pocztowego. Jako wstępny przewodnik podajemy całą serię przydatnych linków z deklarowanym celem odwiedzin.
  • Ręczne wdrażanie od podstaw Kompletnej usługi pocztowej jest męczącym procesem, chyba że jesteś jednym z „Wybranych”, którzy codziennie wykonują tego typu zadania. Serwer pocztowy jest tworzony - w sposób ogólny - przez różne programy, które osobno obsługują SMTP, MUZYKA POP / IMAP, Lokalne przechowywanie wiadomości, zadania związane z leczeniem pliku SPAM, Antywirus itp. WSZYSTKIE te programy muszą poprawnie komunikować się ze sobą.
  • Nie ma jednego uniwersalnego rozwiązania lub „najlepszych praktyk” dotyczących zarządzania użytkownikami; gdzie i jak przechowywać wiadomości lub jak sprawić, by wszystkie komponenty działały jako jedna całość.
  • Montaż i dostrajanie serwera pocztowego jest zwykle nieprzyjemne w kwestiach takich jak uprawnienia i właściciele plików, wybieranie użytkownika, który będzie odpowiedzialny za dany proces, oraz w przypadku drobnych błędów popełnionych w jakimś ezoterycznym pliku konfiguracyjnym.
  • Jeśli nie wiesz dobrze, co robisz, wynikiem końcowym będzie niezabezpieczony lub nieco niefunkcjonalny serwer pocztowy. To, że pod koniec wdrożenia to nie działa, będzie prawdopodobnie najmniejszym złem.
  • W Internecie możemy znaleźć wiele przepisów na tworzenie serwera poczty. Jeden z najbardziej kompletnych -moim bardzo osobistym zdaniem- to ta zaproponowana przez autora Ivara Abrahamsena w trzynastej edycji stycznia 2017 «Jak skonfigurować serwer pocztowy w systemie GNU / Linux".
  • Zalecamy również przeczytanie artykułu «Serwer pocztowy na Ubuntu 14.04: Postfix, Dovecot, MySQL«, lub «Serwer pocztowy na Ubuntu 16.04: Postfix, Dovecot, MySQL".
  • Prawdziwe. Najlepszą dokumentację w tym zakresie można znaleźć w języku angielskim.
    • Chociaż nigdy nie tworzymy serwera pocztowego wiernie kierowanego przez Jak… wspomnianej w poprzednim akapicie, sam fakt wykonania tego krok po kroku da nam bardzo dobre wyobrażenie o tym, z czym będziemy musieli się zmierzyć.
  • Jeśli chcesz mieć kompletny serwer pocztowy w zaledwie kilku krokach, możesz pobrać obraz iRedOS-0.6.0-CentOS-5.5-i386.isolub poszukaj bardziej nowoczesnego, czy to iRedOS, czy iRedMail. To sposób, który osobiście polecam.

Zamierzamy zainstalować i skonfigurować:

Pozostaje do zrobienia:

Do wdrożenia pozostałyby przynajmniej następujące usługi:

  • Postszary: Zasady serwera Postfix dotyczące szarych list i odrzucania wiadomości-śmieci.
  • Amavisd-nowy: skrypt, który tworzy interfejs między MTA a skanerami antywirusowymi i filtrami zawartości.
  • Program antywirusowy Clamav: pakiet antywirusowy
  • SpamAssassin: wyodrębnij wiadomości-śmieci
  • Brzytwa (pyzor): Przechwytywanie spamu przez rozproszoną i opartą na współpracy sieć. Sieć Vipul Razor utrzymuje zaktualizowany katalog rozprzestrzeniania się niechcianej poczty lub spamu.
  • Rekord DNS „DomainKeys Identified Mail” lub rozszerzenie dkim.

Pakiety postgrey, amavisd-new, clamav, spamassassin, brzytwa y pyzor Znajdują się w repozytoriach programów. Znajdziemy również program openkim.

Wstępne kontrole

Pamiętaj, że ten artykuł jest kontynuacją innych, które zaczynają się w Uwierzytelnianie Squid + PAM w CentOS 7.

Interfejs Ens32 LAN podłączony do sieci wewnętrznej

[root @ linuxbox ~] # nano / etc / sysconfig / network-scripts / ifcfg-ens32
DEVICE=ens32
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:da:a3:e7
NM_CONTROLLED=no
IPADDR=192.168.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DOMAIN=desdelinux.fan DNS1=127.0.0.1
STREFA = publiczna

[root @ linuxbox ~] # ifdown ens32 && ifup ens32

Interfejs Ens34 WAN połączony z Internetem

[root @ linuxbox ~] # nano / etc / sysconfig / network-scripts / ifcfg-ens34
DEVICE=ens34 ONBOOT=tak BOOTPROTO=statyczny HWADDR=00:0c:29:da:a3:e7 NM_ControlLED=nie IPADDR=172.16.10.10 NETMASK=255.255.255.0 # Router ADSL jest podłączony do # tego interfejsu z # następującym adresem BRAMA IP=172.16.10.1 DOMENA=desdelinux.fan DNS1=127.0.0.1
STREFA = zewnętrzna

Rozpoznawanie nazw DNS z sieci LAN

[root@linuxbox ~]# wyszukiwanie cat /etc/resolv.conf desdelinux.fan serwer nazw 127.0.0.1 serwer nazw 172.16.10.30 [root@linuxbox ~]# poczta hosta
mail.desdelinux.fan jest aliasem dla Linuxboksa.desdelinux.wentylator. Linuxbox.desdelinux.fan ma adres 192.168.10.5 Linuxbox.desdelinuxPoczta .fan jest obsługiwana przez 1 pocztę.desdelinux.wentylator.

[root@linuxbox ~]# poczta hosta.desdelinux.wentylator
mail.desdelinux.fan jest aliasem dla Linuxboksa.desdelinux.wentylator. Linuxbox.desdelinux.fan ma adres 192.168.10.5 Linuxbox.desdelinuxPoczta .fan jest obsługiwana przez 1 pocztę.desdelinux.wentylator.

Rozpoznawanie nazw DNS z Internetu

buzz@sysadmin:~$hostmail.desdelinux.fan 172.16.10.30
Korzystanie z serwera domeny: Nazwa: 172.16.10.30 Adres: 172.16.10.30#53 Aliasy: mail.desdelinux.fan jest aliasem dla desdelinux.wentylator.
desdelinux.fan ma adres 172.16.10.10
desdelinuxPoczta .fan jest obsługiwana przez 10 pocztę.desdelinux.wentylator.

Problemy z lokalnym rozwiązaniem nazwy hosta «desdelinux.wentylator"

Jeśli masz problemy z rozpoznaniem nazwy hosta «desdelinux.wentylator"z LAN, spróbuj wykomentować linię pliku /etc/dnsmasq.conf gdzie jest zadeklarowane lokalny=/desdelinux.wentylator/. Następnie uruchom ponownie Dnsmasq.

[root @ linuxbox ~] # nano /etc/dnsmasq.conf # Skomentuj poniższy wiersz:
# lokalny=/desdelinux.wentylator/

[root @ linuxbox ~] # usługa dnsmasq restart
Przekierowanie do / bin / systemctl zrestartuj dnsmasq.service

[root @ linuxbox ~] # status dnsmasq usługi

[root@linuxbox ~]# host desdelinux.wentylator
desdelinux.fan ma adres 172.16.10.10
desdelinuxPoczta .fan jest obsługiwana przez 10 pocztę.desdelinux.wentylator.

Postfix i Dovecot

Bardzo obszerną dokumentację Postfix i Dovecot można znaleźć pod adresem:

[root @ linuxbox ~] # ls /usr/share/doc/postfix-2.10.1/
bounce.cf.default LICENSE README-Postfix-SASL-RedHat.txt KOMPATYBILNOŚĆ main.cf.default TLS_ACKNOWLEDGEMENTS przykłady README_FILES TLS_LICENSE

[root @ linuxbox ~] # ls /usr/share/doc/dovecot-2.2.10/
AUTORZY COPYING.MIT dovecot-openssl.cnf WIADOMOŚCI wiki COPYING ChangeLog example-config README COPYING.LGPL dokumentacja.txt mkcert.sh solr-schema.xml

W CentOS 7 Postfix MTA jest instalowany domyślnie, gdy wybieramy opcję Infrastructure Server. Musimy sprawdzić, czy kontekst SELinux pozwala na zapis do Potfix w lokalnej kolejce wiadomości:

[root @ linuxbox ~] # getsebool -a | grep postfix
postfix_local_write_mail_spool -> on

Modyfikacje w FirewallD

Korzystając z interfejsu graficznego do konfiguracji FirewallD, musimy upewnić się, że dla każdej strefy są włączone następujące usługi i porty:

# ------------------------------------------------- -----
# Poprawki w FirewallD
# ------------------------------------------------- -----
# Zapora
# Strefa publiczna: usługi http, https, imap, pop3, smtp
# Strefa publiczna: porty 80, 443, 143, 110, 25

# Strefa zewnętrzna: http, https, imap, pop3s, usługi smtp
# Strefa zewnętrzna: porty 80, 443, 143, 995, 25

Instalujemy Dovecot i niezbędne programy

[root @ linuxbox ~] # yum install dovecot mod_ssl procmail telnet

Minimalna konfiguracja Dovecot

[root @ linuxbox ~] # nano /etc/dovecot/dovecot.conf
protokoły =imap pop3 lmtp
słuchać =*, ::
login_pozdrowienia = Dovecot jest gotowy!

Wyraźnie wyłączamy uwierzytelnianie w postaci zwykłego tekstu Dovecot:

[root @ linuxbox ~] # nano /etc/dovecot/conf.d/10-auth.conf 
disable_plaintext_auth = tak

Deklarujemy Grupie niezbędne uprawnienia do interakcji z Dovecot oraz lokalizację wiadomości:

[root @ linuxbox ~] # nano /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox: ~ / mail: INBOX = / var / mail /% u
mail_privileged_group = poczta
mail_access_groups = poczta

Certyfikaty dla Dovecot

Dovecot automatycznie generuje certyfikaty testowe na podstawie danych w pliku /etc/pki/dovecot/dovecot-openssl.cnf. Aby nowe certyfikaty zostały wygenerowane zgodnie z naszymi wymaganiami, musimy wykonać następujące kroki:

[root @ linuxbox ~] # cd / etc / pki / dovecot /
[root @ linuxbox dovecot] # nano dovecot-openssl.cnf
[ req ] bity_domyślne = 1024 klucz_szyfrowania = tak nazwa_wyróżniająca = req_dn x509_extensions = typ_certypt = nie [ req_dn ] # kraj (kod 2-literowy) C=CU # Nazwa stanu lub prowincji (pełna nazwa) ST=Kuba # Nazwa miejscowości (np. miasto) ) L=Hawana # Organizacja (np. firma) O=DesdeLinux.Fan # Nazwa jednostki organizacyjnej (np. sekcja) OU=Entuzjaści # Nazwa zwyczajowa (możliwe jest również *.example.com) CN=*.desdelinux.fan # Adres e-mail do kontaktu emailAddress=buzz@desdelinux.fan [typ_certyfikatu] nsCertType = serwer

Eliminujemy certyfikaty testów

[root @ linuxbox dovecot] # rm certs / dovecot.pem 
rm: usunąć zwykły plik „certs / dovecot.pem”? (t / n) r
[root @ linuxbox dovecot] # rm private / dovecot.pem 
rm: usunąć zwykły plik „private / dovecot.pem”? (t / n) r

Kopiujemy i uruchamiamy skrypt mkcert.sh z katalogu dokumentacji

[root @ linuxbox dovecot] # cp /usr/share/doc/dovecot-2.2.10/mkcert.sh. [root @ linuxbox dovecot] # bash mkcert.sh 
Generowanie 1024-bitowego klucza prywatnego RSA ......++++++ .............++++++ Zapisywanie nowego klucza prywatnego do '/etc/ pki/dovecot/private/dovecot.pem' ----- topic= /C=CU/ST=Kuba/L=Hawana/O=DesdeLinux.Fan/OU=Entuzjaści/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan
SHA1 Fingerprint=5F:4A:0C:44:EC:EC:EF:95:73:3E:1E:37:D5:05:F8:23:7E:E1:A4:5A

[root @ linuxbox dovecot] # ls -l certs /
łącznie 4 -rw -------. 1 root root 1029 22 maja 16:08 dovecot.pem
[root @ linuxbox dovecot] # ls -l private /
łącznie 4 -rw -------. 1 root root 916 22 maja 16:08 dovecot.pem

[root @ linuxbox dovecot] # restart usługi dovecot
[root @ linuxbox dovecot] # status usługi dovecot

Certyfikaty dla Postfix

[root@linuxbox ~]# cd /etc/pki/tls/ [root@linuxbox tls]# openssl req -sha256 -x509 -nodes -newkey rsa:4096 -days 1825 \ -out certs/desdelinux.fan.crt -keyout prywatny/desdelinux.fan.key

Generowanie 4096-bitowego klucza prywatnego RSA ......++ ..++ zapisywanie nowego klucza prywatnego do 'private/domain.tld.key' ----- Zostaniesz poproszony o podanie informacji które zostaną uwzględnione w Twoim żądaniu certyfikatu. To, co zamierzasz wprowadzić, to tak zwana nazwa wyróżniająca lub nazwa wyróżniająca. Jest sporo pól, ale możesz zostawić niektóre puste. W przypadku niektórych pól będzie to wartość domyślna. Jeśli wpiszesz „.”, pole pozostanie puste. ----- Nazwa kraju (2-literowy kod) [XX]:CU Nazwa stanu lub prowincji (pełna nazwa) []:Kuba Nazwa miejscowości (np. miasto) [Domyślne miasto]:Hawana Nazwa organizacji (np. firma) [ Domyślna firma Ltd]:DesdeLinux.Fan Nazwa jednostki organizacyjnej (np. sekcja) []:Enthusiasts Common Name (np. Twoje imię i nazwisko lub nazwa hosta Twojego serwera) []:desdelinux.fan Adres e-mail []:buzz@desdelinux.wentylator

Minimalna konfiguracja Postfix

Dodajemy na końcu pliku / etc / aliases Następny:

root: buzz

Aby zmiany odniosły skutek, wykonujemy następujące polecenie:

[root @ linuxbox ~] # newaliases

Konfigurację Postifx można przeprowadzić bezpośrednio edytując plik /etc/postfix/main.cf lub na polecenie postkonf -e dbając o to, aby cały parametr, który chcemy zmodyfikować lub dodać, był odzwierciedlony w jednej linii konsoli:

  • Każdy musi zadeklarować opcje, które rozumie i potrzebuje!.
[root@linuxbox ~]# postconf -e 'myhostname = desdelinux.wentylator'
[root@linuxbox ~]# postconf -e 'mojadomena = desdelinux.wentylator'
[root @ linuxbox ~] # postconf -e 'myorigin = $ mydomain'
[root @ linuxbox ~] # postconf -e 'inet_interfaces = all'
[root @ linuxbox ~] # postconf -e 'mydestination = $ myhostname, localhost. $ mydomain, localhost, $ mydomain, mail. $ mydomain, www. $ mydomain, ftp. $ mydomain'

[root @ linuxbox ~] # postconf -e 'mynetworks = 192.168.10.0/24, 172.16.10.0/24, 127.0.0.0/8'
[root @ linuxbox ~] # postconf -e 'mailbox_command = / usr / bin / procmail -a "$ EXTENSION"'
[root @ linuxbox ~] # postconf -e 'smtpd_banner = $ myhostname ESMTP $ mail_name ($ mail_version)'

Dodajemy na końcu pliku /etc/postfix/main.cf opcje podane poniżej. Aby poznać znaczenie każdego z nich, zalecamy zapoznanie się z dołączoną dokumentacją.

biff = nie
append_dot_mydomain = nie
czas_opóźnienia_ostrzeżenia = 4h
readme_directory = nie
smtpd_tls_cert_file=/etc/pki/certs/desdelinux.fan.crt
smtpd_tls_key_file=/etc/pki/private/desdelinux.fan.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache
smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache
smtpd_relay_restrictions = allow_mynetworks allow_sasl_authenticated defer_unauth_destination

# Maksymalny rozmiar skrzynki pocztowej 1024 megabajty = 1 g ig
limit_rozmiaru_skrzynki pocztowej = 1073741824

odbiorca_delimiter = +
maximal_queue_lifetime = 7 dni
header_checks = regexp: / etc / postfix / header_checks
body_checks = regexp: / etc / postfix / body_checks

# Konta, które wysyłają kopię przychodzącej poczty na inne konto
odbiorca_bcc_maps = hash: / etc / postfix / accounts_ forwarding_copy

Poniższe wiersze są ważne, aby określić, kto może wysyłać pocztę i przekazywać ją do innych serwerów, abyśmy przypadkowo nie skonfigurowali „otwartego przekaźnika”, który umożliwia nieuwierzytelnionym użytkownikom wysyłanie poczty. Musimy zapoznać się ze stronami pomocy Postfix, aby zrozumieć, co oznacza każda opcja.

  • Każdy musi zadeklarować opcje, które rozumie i potrzebuje!.
smtpd_helo_restrictions = allow_mynetworks,
 warn_if_reject disable_non_fqdn_hostname,
 odrzucenie nieprawidłowej nazwy hosta,
 pozwolić

smtpd_sender_restrictions = allow_sasl_authenticated,
 allow_mynetworks,
 warn_if_reject disable_non_fqdn_sender,
 disable_unknown_sender_domain,
 odrzucenie_unauth_pipelining,
 pozwolić

smtpd_client_restrictions = disable_rbl_client sbl.spamhaus.org,
 disable_rbl_client blackholes.easynet.nl

# UWAGA: Opcja „check_policy_service inet: 127.0.0.1: 10023”
# włącza program Postgrey i nie powinniśmy go włączać
# w przeciwnym razie użyjemy Postgrey

smtpd_recipient_restrictions = disable_unauth_pipelining,
 allow_mynetworks,
 allow_sasl_authenticated,
 disable_non_fqdn_recipient,
 disable_unknown_recipient_domain,
 disable_unauth_destination,
 check_policy_service inet: 127.0.0.1: 10023,
 pozwolić

smtpd_data_restrictions = disable_unauth_pipelining

smtpd_relay_restrictions = disable_unauth_pipelining,
 allow_mynetworks,
 allow_sasl_authenticated,
 disable_non_fqdn_recipient,
 disable_unknown_recipient_domain,
 disable_unauth_destination,
 check_policy_service inet: 127.0.0.1: 10023,
 pozwolić
 
smtpd_helo_required = tak
smtpd_delay_reject = tak
disable_vrfy_command = tak

Tworzymy pliki / etc / postfix / body_checks y / etc / postfix / accounts_forwarding_copyi modyfikujemy plik / etc / postfix / header_checks.

  • Każdy musi zadeklarować opcje, które rozumie i potrzebuje!.
[root @ linuxbox ~] # nano / etc / postfix / body_checks
# Jeśli ten plik zostanie zmodyfikowany, # nie jest konieczne uruchamianie postmapy # Aby przetestować reguły, uruchom jako root: # postmap -q wyrażenie regularne „super new v1agra”: / etc / postfix / body_checks
# Powinien zwrócić: # REJECT Rule # 2 Treść wiadomości antyspamowej
/ viagra / REJECT Reguła nr 1 Anti-Spam w treści wiadomości
/ super new v [i1] agra / REJECT Reguła # 2 Treść wiadomości Anti-Spam

[root @ linuxbox ~] # nano / etc / postfix / accounts_ forwarding_copy
# Po zmodyfikowaniu musisz wykonać: # postmap / etc / postfix / accounts_ forwarding_copy
# i plik jest tworzony lub mierzony: # /etc/postfix/accounts_forwarding_copy.db
# ----------------------------------------- # JEDNO konto do przekazania jednego BCC kopia # BCC = Black Carbon Kopia # Przykład: # webadmin@desdelinux.fan buzz@desdelinux.wentylator

[root @ linuxbox ~] # postmap / etc / postfix / accounts_ forwarding_copy

[root @ linuxbox ~] # nano / etc / postfix / header_checks
# Dodaj na końcu pliku # NIE WYMAGA Postmap, ponieważ są to wyrażenia regularne
/ ^ Temat: =? Big5? / REJECT Chińskie kodowanie nie jest akceptowane przez ten serwer
/ ^ Temat: =? EUC-KR? / REJECT Koreańskie kodowanie nie jest dozwolone przez ten serwer
/ ^ Temat: ADV: / REJECT Reklamy nie akceptowane przez ten serwer
/^ Od:.*\@.*\.cn/ ODRZUĆ Przepraszamy, chińska poczta jest tu niedozwolona
/^From:.*\@.*\.kr/ ODRZUĆ Przepraszamy, poczta w języku koreańskim jest tu niedozwolona
/^From:.*\@.*\.tr/ REJECT Przepraszamy, turecka poczta jest tu niedozwolona
/^From:.*\@.*\.ro/ ODRZUĆ Przepraszamy, rumuńska poczta jest tu niedozwolona
/^(Received|Message-Id|X-(Mailer|Sender)):.*\b(AutoMail|E-Broadcaster|Emailer Platinum | Thunder Server | eMarksman | Extractor | e-Merge | from stealth [^.] | Global Messenger | GroupMaster | Mailcast | MailKing | Match10 | MassE-Mail | massmail \ .pl | News Breaker | Powermailer | Quick Shot | Ready Aim Fire | WindoZ | WorldMerge | Yourdora | Lite) \ b / REJECT Żadne masowe przesyłki pocztowe nie są dozwolone.
/ ^ From: "spamer / REJECT
/ ^ From: "spam / REJECT
/^Temat:.*viagra/ ODRZUCAJ
# Niebezpieczne rozszerzenia
/ name = [^> Iluminación * \. (bat | cmd | exe | com | pif | reg | scr | vb | vbe | vbs) / REJECT REJECT Nie akceptujemy załączników z tymi rozszerzeniami

Sprawdzamy składnię, restartujemy Apache i Postifx oraz włączamy i uruchamiamy Dovecot

[root @ linuxbox ~] # sprawdzanie poprawek
[root @ linuxbox ~] #

[root @ linuxbox ~] # systemctl zrestartuj httpd
[root @ linuxbox ~] # systemctl status httpd

[root @ linuxbox ~] # systemctl zrestartuj Postfix
[root @ linuxbox ~] # postfix statusu systemctl

[root @ linuxbox ~] # systemctl status dovecot
● dovecot.service - serwer pocztowy Dovecot IMAP / POP3 Załadowano: załadowano (/usr/lib/systemd/system/dovecot.service; wyłączone; ustawienie dostawcy: wyłączone) Aktywne: nieaktywne (nieaktywne)

[root @ linuxbox ~] # systemctl włącz dovecot
[root @ linuxbox ~] # systemctl start dovecot
[root @ linuxbox ~] # systemctl zrestartuj dovecot
[root @ linuxbox ~] # systemctl status dovecot

Kontrole na poziomie konsoli

  • Przed kontynuowaniem instalacji i konfiguracji innych programów bardzo ważne jest wykonanie minimalnych niezbędnych kontroli usług SMTP i POP.

Lokalnie z samego serwera

Wysyłamy e-mail do lokalnego użytkownika Legolas.

[root @ linuxbox ~] # echo "Witaj. To jest wiadomość testowa" | mail -s "Test" legolas

Sprawdzamy skrzynkę pocztową legole.

[root @ linuxbox ~] # openssl s_client -crlf -connect 127.0.0.1:110 -starttls pop3

Po wiadomości Dovecot jest gotowy! kontynuujemy:

---
+ OK Dovecot jest gotowy!
UŻYTKOWNIK legolas +OK PASS legolas +OK Zalogowany. STAT +OK 1 559 LISTA +OK 1 wiadomości: 1 559 . RETR 1 +OK 559 oktetów Ścieżka powrotna:desdelinux.fan> X-Original-To: legolas Dostarczono-To: legolas@desdelinux.fan Otrzymano: przez desdelinux.fan (Postfix, od identyfikatora użytkownika 0) id 7EA22C11FC57; Pon., 22 maja 2017 r. 10:47:10 -0400 (EDT) Data: Pon., 22 maja 2017 r. 10:47:10 -0400 Do: legolas@desdelinux.fan Temat: Testowy agent użytkownika: Heirloom mailx 12.5 7/5/10 Wersja MIME: 1.0 Typ zawartości: tekst/zwykły; charset=us-ascii Kodowanie przesyłania treści: 7-bitowy identyfikator wiadomości: <20170522144710.7EA22C11FC57@desdelinux.fan> Od: root@desdelinux.fan (root) Witam. To jest wiadomość testowa. WYJDŹ ZROBIONE
[root @ linuxbox ~] #

Piloty z komputera w sieci LAN

Wyślijmy kolejną wiadomość do Legolas z innego komputera w sieci LAN. Zauważ, że bezpieczeństwo TLS NIE jest bezwzględnie konieczne w sieci SME.

buzz @ sysadmin: ~ $ sendemail -f buzz@deslinux.fan \
-t legolas@desdelinux.wentylator\
-u „Cześć” \
-m "Pozdrowienia Legolas od twojego przyjaciela Buzza" \
-s e-mail.desdelinux.fan -o tls=nie
22 maja 10:53:08 sysadmin sendemail [5866]: Wiadomość e-mail została wysłana pomyślnie!

Jeśli spróbujemy się połączyć telnet Od hosta w sieci LAN - lub oczywiście z Internetu - do Dovecota, ponieważ wyłączymy uwierzytelnianie w postaci zwykłego tekstu, nastąpi co następuje:

buzz@sysadmin:~$ poczta telnet.desdelinux.fan 110 Próbuję 192.168.10.5...
Połączony z Linuxboxem.desdelinux.wentylator. Znak ucieczki to „^]”. +OK Gołębnik jest gotowy! użytkownik Legolas
-ERR [AUTH] Uwierzytelnianie w postaci zwykłego tekstu jest niedozwolone w połączeniach niezabezpieczonych (SSL / TLS).
quit + OK Wylogowanie Połączenie zamknięte przez obcego hosta.
buzz @ sysadmin: ~ $

Musimy to zrobić openssl. Kompletny wynik polecenia wyglądałby tak:

buzz@sysadmin:~$ openssl s_client -crlf -connect mail.desdelinux.fan:110 -uruchamia pop3
Połączone (00000003)
głębokość=0 C = CU, ST = Kuba, L = Hawana, O = DesdeLinux.Fan, OU = Entuzjaści, CN = *.desdelinux.fan, adres e-mail = buzz@desdelinux.wentylator
weryfikacja błąd: num = 18: certyfikat z podpisem własnym weryfikacja powrotu: 1
głębokość=0 C = CU, ST = Kuba, L = Hawana, O = DesdeLinux.Fan, OU = Entuzjaści, CN = *.desdelinux.fan, adres e-mail = buzz@desdelinux.fan sprawdź powrót:1
--- Łańcuch certyfikatów 0 s:/C=CU/ST=Kuba/L=Hawana/O=DesdeLinux.Fan/OU=Entuzjaści/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan i:/C=CU/ST=Kuba/L=Hawana/O=DesdeLinux.Fan/OU=Entuzjaści/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICyzCCAjSgAwIBAgIJAKUHI/2ZD+MeMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
VQQGEwJDVTENMAsGA1UECBMEQ3ViYTEPMA0GA1UEBxMGSGFiYW5hMRcwFQYDVQQK
Ew5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECxMLRW50dXNpYXN0YXMxGTAXBgNVBAMU
ECouZGVzZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51
eC5mYW4wHhcNMTcwNTIyMjAwODEwWhcNMTgwNTIyMjAwODEwWjCBmzELMAkGA1UE
BhMCQ1UxDTALBgNVBAgTBEN1YmExDzANBgNVBAcTBkhhYmFuYTEXMBUGA1UEChMO
RGVzZGVMaW51eC5GYW4xFDASBgNVBAsTC0VudHVzaWFzdGFzMRkwFwYDVQQDFBAq
LmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu
ZmFuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7wckAiNNfYSz5hdePzKuZ
m2MMuhGDvwrDSPDEcVutznbZSgJ9bvTo445TR+Bnk+OZ80lujS2hP+nBmqxzJbpc
XR7E9eWIXxr4fP4HpRrCA8NxlthEsapVMSHW+lnPBqF2b/Bt2eYyR7gJhtlP6gRG
V57MmgL8BdYAJLvxqxDIxQIDAQABoxUwEzARBglghkgBhvhCAQEEBAMCBkAwDQYJ
KoZIhvcNAQEFBQADgYEAAuYU1nIXTbXtddW+QkLskum7ESryHZonKOCelfn2vnRl
8oAgHg7Hbtg/e6sR/W9m3DObP5DEp3lolKKIKor7ugxtfA4PBtmgizddfDKKMDql
LT+MV5/DP1pjQbxTsaLlZfveNxfLRHkQY13asePy4fYJFOIZ4OojDEGQ6/VQBI8=
-----END CERTIFICATE-----
subject=/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entuzjaści/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan Issuer=/C=CU/ST=Kuba/L=Hawana/O=DesdeLinux.Fan/OU=Entuzjaści/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan --- Nie wysłano żadnych certyfikatów klienta, nazw CA Klucz tymczasowy serwera: ECDH, secp384r1, 384 bity --- Uzgadnianie SSL odczytało 1342 bajty i zapisało 411 bajtów --- Nowy, TLSv1/SSLv3, szyfr to ECDHE-RSA-AES256 -GCM-SHA384 Klucz publiczny serwera jest 1024-bitowy Obsługiwana jest bezpieczna renegocjacja Kompresja: BRAK Rozbudowa: BRAK Sesja SSL: Protokół: TLSv1.2 Szyfr: ECDHE-RSA-AES256-GCM-SHA384 Identyfikator sesji: 745C4BF0236204E16234D15A Identyfikator sesji-ctx : Master-Key: 9D3C084125B5989CEA5F6AF5295AF4D2C73F1904F204A564FD76361CD50373F8879BC793BFF7E7506F04473777F6 Key-Arg: Brak Krb3503 Główny: Brak Tożsamość PSK: Brak Wskazówka dotycząca tożsamości PSK: Brak Sesja TLS wskazówka dotycząca ważności biletu: 9 (sekund) Bilet sesji TLS: 919 - 1e 837a f67 29 309a 352526f 5 5-ee f300 a0000 4f fc ec 3e 8c N:.)zOcr...O..~. 29 - 7c d4 be a63 be 72 7e ae-6 4e 7 1d 0010 c2 4 a8 ,.....~.mE... 92 - db 2a 98 7 df 87b dc 6d-f45 5f 17 8e db a0020 e3 86 .:......hn.... 80 - 8 8 e8 eb 1 b68 a6 7-3 b86 ea f0030 08 f35 c5 98 .8......h...r ..y 4 - 98 68a 1 e7 72 a7 1b da-e79 5a 0040 c89 4 bf 28 3d .J(......z).w.". 85 - bd 4c f8 9 7c a29 7 bd-cb 77 22 0 0050a dc 5 6 .\.a.....61'fz.Q( 8 - b1 z 14 bd 31b 27f d66 ec-d7 e51 28 c1 0060 7 b35 2 ..0.+... ...e ..4 3 - 0 14 f8 de 65 da ae 03-1 bd f35 b5 e5 0070c cf 38 34..H..8.......48 - f31 90 6 0 6 b9 19c db-aa ee 84a d1 0080b 5c dd 42.BV.......Z..,.q 56 - 13a f88 0 8 5 7 c1 2a-71 e0090 7f 1c bf dc 03c a70 z..p.. ..b. ....< Czas rozpoczęcia: 90 Limit czasu: 94 (s) Zweryfikuj kod zwrotny: 9 (certyfikat z podpisem własnym) ---
+ OK Dovecot jest gotowy!
UŻYTKOWNIK legolas
+ OK
ZGŁOŚ legole
+ OK Zalogowano.
WYKAZ
+ OK 1 wiadomości: 1 1021.
POWRÓT 1
+OK 1021 oktetów Ścieżka powrotna: X-Oryginał-Do: legolas@desdelinux.fan Dostarczono do: legolas@desdelinux.fan Otrzymano: od sysadmin.desdelinux.fan (brama [172.16.10.1]) przez desdelinux.fan (Postfix) z identyfikatorem ESMTP 51886C11E8C0 dladesdelinux.fan>; Pon., 22 maja 2017 r., 15:09:11 -0400 (EDT) Identyfikator wiadomości: <919362.931369932-sendEmail@sysadmin> Od: „buzz@deslinux.fan” Do: „legolas@desdelinux.wentylator"desdelinux.fan> Temat: Witam Data: Pon., 22 maja 2017 r. 19:09:11 +0000 X-Mailer: sendEmail-1.56 Wersja MIME: 1.0 Typ zawartości: wieloczęściowy/powiązany; border="----Separator MIME dla sendEmail-365707.724894495" To jest wieloczęściowa wiadomość w formacie MIME. Aby poprawnie wyświetlić tę wiadomość, potrzebny jest program pocztowy zgodny ze standardem MIME w wersji 1.0. ------Separator MIME dla sendEmail-365707.724894495 Typ zawartości: tekst/zwykły; charset="iso-8859-1" Kodowanie przesyłania treści: 7-bitowe Pozdrowienia Legolas od twojego przyjaciela Buzza ------Separator MIME dla sendEmail-365707.724894495-- .
QUIT
+ OK Wylogowywanie. Zamknięte
buzz @ sysadmin: ~ $

Squirrelmail

Squirrelmail to klient sieciowy napisany w całości w PHP. Zawiera natywną obsługę PHP dla protokołów IMAP i SMTP oraz zapewnia maksymalną kompatybilność z różnymi używanymi przeglądarkami. Działa poprawnie na każdym serwerze IMAP. Posiada wszystkie funkcje, których potrzebujesz od klienta poczty elektronicznej, w tym obsługę MIME, książkę adresową i zarządzanie folderami.

[root @ linuxbox ~] # yum install squirrelmail
[root @ linuxbox ~] # usługa httpd restart

[root @ linuxbox ~] # nano /etc/squirrelmail/config.php
$domena = 'desdelinux.wentylator';
$imapServerAddress = 'poczta.desdelinux.wentylator';
$ imapPort = 143;
$smtpServerAddress = 'desdelinux.wentylator';

[root @ linuxbox ~] # usługa httpd reload

DNS Send Policy Framenwork lub rekord SPF

W artykule Autorytarny serwer DNS NSD + Shorewall Widzieliśmy, że Strefa «desdelinux.fan» został skonfigurowany w następujący sposób:

root@ns:~# nano /etc/nsd/desdelinux.strefa.fana
$POCHODZENIE desdelinux.wentylator. $TTL 3H @ IN SOA nr.desdelinux.wentylator. źródło.desdelinux.wentylator. (1; serial 1D; odświeżenie 1H; ponowna próba 1W; ważność 3H); minimalne lub ; Ujemny czas życia buforowania; @IN NS ns.desdelinux.wentylator. @ IN MX 10 e-mail.desdelinux.wentylator.
@ IN TXT "v=spf1 a:mail.desdelinux.fan -wszystko"
; ; Rejestracja w celu rozwiązywania zapytań o wykopaliska desdelinux.fan @ IN A 172.16.10.10 ; ns W poczcie 172.16.10.30 W CNAME   desdelinux.wentylator. czat W CNAME   desdelinux.wentylator. www W CNAME   desdelinux.wentylator. ; ; Rekordy SRV związane z XMPP
_xmpp-server._tcp W SRV 0 0 5269 desdelinux.wentylator. _xmpp-client._tcp IN SRV 0 0 5222 desdelinux.wentylator. _jabber._tcp W SRV 0 0 5269 desdelinux.wentylator.

W nim rejestr jest zadeklarowany:

@ IN TXT "v=spf1 a:mail.desdelinux.fan -wszystko"

Aby mieć ten sam parametr skonfigurowany dla sieci SME lub LAN, musimy zmodyfikować plik konfiguracyjny Dnsmasq w następujący sposób:

# rekordy TXT. Możemy także zadeklarować rekord SPF txt-record=desdelinux.fan,"v=spf1 a:poczta.desdelinux.fan -wszystko"

Następnie ponownie uruchamiamy usługę:

[root @ linuxbox ~] # usługa dnsmasq restart
[root@linuxbox ~]# status usługi dnsmasq [root@linuxbox ~]# host -t poczta TXT.desdelinuxpoczta .fanów.desdelinux.fan jest aliasem dla desdelinux.wentylator.
desdelinux.fan tekst opisowy "v=spf1 a:mail.desdelinux.fan -wszystko"

Certyfikaty z podpisem własnym i Apache lub httpd

Nawet jeśli twoja przeglądarka mówi ci, że «Właściciel mail.desdelinux.wentylator Nieprawidłowo skonfigurowałeś swoją witrynę. Aby zapobiec kradzieży informacji, Firefox nie połączył się z tą witryną ”, poprzednio wygenerowany certyfikat TO WAŻNE, i umożliwi przesyłanie danych uwierzytelniających między klientem a serwerem w postaci zaszyfrowanej po zaakceptowaniu certyfikatu.

Jeśli chcesz i jako sposób na ujednolicenie certyfikatów, możesz zadeklarować dla Apache te same certyfikaty, które zadeklarowałeś dla Postfix, co jest poprawne.

[root @ linuxbox ~] # nano /etc/httpd/conf.d/ssl.conf
Plik certyfikatu SSLC /etc/pki/tls/certs/desdelinux.fan.crt
SSLCertificateKeyFile /etc/pki/tls/private/desdelinux.fan.key

[root @ linuxbox ~] # httpd restart usługi
[root @ linuxbox ~] # status usługi httpd

Diffie-Hellman Group

Temat bezpieczeństwa staje się coraz trudniejszy w Internecie. Jeden z najczęstszych ataków na połączenia SSL, jest tarapaty i aby się przed tym bronić konieczne jest dodanie niestandardowych parametrów do konfiguracji SSL. Do tego jest RFC-3526 «Bardziej modułowe wykładnicze (MODP) Difie-Hellman grupy do wymiany kluczy internetowych (IKE)".

[root @ linuxbox ~] # cd / etc / pki / tls /
[root @ linuxbox tls] # openssl dhparam -out private / dhparams.pem 2048
[root @ linuxbox tls] # chmod 600 private / dhparams.pem

Zgodnie z wersją Apache, którą zainstalowaliśmy, użyjemy grupy Diffie-Helman z pliku /etc/pki/tls/dhparams.pem. Jeśli jest to wersja 2.4.8 lub nowsza, będziemy musieli dodać do pliku /etc/httpd/conf.d/ssl.conf następujący wiersz:

SSLOpenSSLConfCmd DHParameters "/etc/pki/tls/private/dhparams.pem"

Używana przez nas wersja Apache to:

[root @ linuxbox tls] # yum info httpd
Wczytane wtyczki: najszybszy mirror, paczki językowe Ładowanie szybkości lustra z pliku hosta w pamięci podręcznej Zainstalowane pakiety Nazwa: httpd Architektura: x86_64
Wersja: 2.4.6
Wydanie: 45.el7.centos Rozmiar: 9.4 mln Repozytorium: zainstalowane Z repozytorium: Base-Repo Podsumowanie: Adres URL serwera HTTP Apache: http://httpd.apache.org/ Licencja: ASL 2.0 Opis: Serwer HTTP Apache to potężny, wydajny i rozszerzalny: serwer WWW.

Ponieważ mamy wersję wcześniejszą niż 2.4.8, dodajemy zawartość grupy Diffie-Helman na koniec wygenerowanego wcześniej certyfikatu CRT:

[root @ linuxbox tls] # cat private / dhparams.pem >> certyfikaty/desdelinux.fan.crt

Jeśli chcesz sprawdzić, czy parametry DH zostały poprawnie dodane do certyfikatu CRT, wykonaj następujące polecenia:

[root @ linuxbox tls] # cat private / dhparams.pem 
----- POCZĄTEK PARAMETRÓW DH -----
MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP
/O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV
keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe
8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv
/LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3
cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg==
----- KONIEC PARAMETRÓW DH -----

[root@linuxbox tls]# certyfikaty cat/desdelinux.fan.crt 
-----BEGIN CERTIFICATE-----
MIIGBzCCA++gAwIBAgIJANd9FLCkDBfzMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD
VQQGEwJDVTENMAsGA1UECAwEQ3ViYTEPMA0GA1UEBwwGSGFiYW5hMRcwFQYDVQQK
DA5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECwwLRW50dXNpYXN0YXMxFzAVBgNVBAMM
DmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu
ZmFuMB4XDTE3MDUyMjE0MDQ1MloXDTIyMDUyMTE0MDQ1MlowgZkxCzAJBgNVBAYT
AkNVMQ0wCwYDVQQIDARDdWJhMQ8wDQYDVQQHDAZIYWJhbmExFzAVBgNVBAoMDkRl
c2RlTGludXguRmFuMRQwEgYDVQQLDAtFbnR1c2lhc3RhczEXMBUGA1UEAwwOZGVz
ZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51eC5mYW4w
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn5MkKRdeFYiN+xgGdsRn8
sYik9X75YnJcbeZrD90igfPadZ75ehtfYIxxOS+2U+omnFgr/tCKYUVJ50seq/lB
idcLP4mt7wMrMZUDpy1rlWPOZGKkG8AdStCYI8iolvJ4rQtLcsU6jhRzEXsZxfOb
O3sqc71yMIj5qko55mlsEVB3lJq3FTDQAY2PhXopJ8BThW1T9iyl1HlYpxj7OItr
/BqiFhxbP17Fpd3QLyNiEl+exVJURYZkvuZQqVPkFAlyNDh5I2fYfrI9yBVPBrZF
uOdRmT6jv6jFxsBy9gggcy+/u1nhlKssLBEhyaKfaQoItFGCAmevkyzdl1LTYDPY
ULi79NljQ1dSwWgraZ3i3ACZIVO/kHcOPljsNxE8omI6qNFWqFd1qdPH5S4c4IR1
5URRuwyVNffEHKaCJi9vF9Wn8LVKnN/+5zZGRJA8hI18HH9kF0A1sCNj1KKiB/xe
/02wTzR/Gbj8pkyO8fjVBvd/XWI8EMQyMc1gvtIAvZ00SAB8c1NEOCs5pt0Us6pm
1lOkgD6nl90Dx9p805mTKD+ZcvRaShOvTyO3HcrxCxOodFfZQCuHYuQb0dcwoK2B
yOwL77NmxNH1QVJL832lRARn8gpKoRAUrzdTSTRKmkVrOGcfvrCKhEBsJ67Gq1+T
YDLhUiGVbPXXR9rhAyyX2QIDAQABo1AwTjAdBgNVHQ4EFgQURGCMiLVLPkjIyGZK
UrZgMkO0X8QwHwYDVR0jBBgwFoAURGCMiLVLPkjIyGZKUrZgMkO0X8QwDAYDVR0T
BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAdy1tH1DwfCW47BNJE1DW8Xlyp+sZ
uYTMOKfNdnAdeSag1WshR6US6aCtU6FkzU/rtV/cXDKetAUIzR50aCYGTlfMCnDf
KKMZEPjIlX/arRwBkvIiRTU1o3HTniGp9d3jsRWD/AvB3rSus4wfuXeCoy7Tqc9U
FaXqnvxhF8/ptFeeCeZgWu16zyiGBqMj4ZaQ7RxEwcoHSd+OByg8E9IE2cYrWP2V
6P7hdCXmw8voMxCtS2s++VRd1fGqgGxXjXT8psxmY2MrseuTM2GyWzs+18A3VVFz
UXLD2lzeYs638DCMXj5/BMZtVL2a4OhMSYY4frEbggB3ZgXhDDktUb7YhnBTViM3
2sgJJOSTltOgAnyOPE0CDcyktXVCtu3PNUc+/AB3UemI9XCw4ypmTOMaIZ2Gl6Uo
pmTk41fpFuf8pqW3ntyu43lC5pKRBqhit6MoFGNOCvFYFBWcltpqnjsWfY2gG/b5
8D5HsedueqkAsVblKPBFpv1BB9X0HhBUYsrz8jNGZGbkgR4XQoIoLbQZHEB35APU
4yT1Lzc3jk34yZF5ntmFt3wETSWwJZ+0cYPw7n4E6vbs1C7iKAMQRVy+lI5f8XYS
YKfrieiPPdmQ22Zm2Tbkqi4zjJBWmstrw6ezzAQNaaAkiOiJIwvXU81KYsN37THh
Nf0/JsEjPklCugE=
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP
/O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV
keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe
8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv
/LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3
cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg==
----- KONIEC PARAMETRÓW DH -----

Po tych zmianach musimy ponownie uruchomić usługi Postfix i httpd:

[root @ linuxbox tls] # restart usługi postfix
[root @ linuxbox tls] # status postfiksa usługi
[root @ linuxbox tls] # usługa httpd restart
[root @ linuxbox tls] # status usługi httpd

Włączenie grupy Diffie-Helman do naszych certyfikatów TLS może nieco spowolnić łączenie przez HTTPS, ale warto dodać zabezpieczenia.

Sprawdzanie Squirrelmail

NASTĘPNIE czy certyfikaty są poprawnie generowane i czy sprawdzamy ich poprawne działanie, tak jak zrobiliśmy to za pomocą poleceń konsoli, wskaż preferowaną przeglądarkę na adres URL http://mail.desdelinux.fan/webmail i połączy się z klientem sieciowym po zaakceptowaniu odpowiedniego certyfikatu. Zauważ, że nawet jeśli określisz protokół HTTP, zostanie on przekierowany do HTTPS, a jest to spowodowane domyślną konfiguracją oferowaną przez CentOS dla Squirrelmail. Zobacz plik /etc/httpd/conf.d/squirrelmail.conf.

O skrzynkach pocztowych użytkowników

Dovecot utworzy skrzynki pocztowe IMAP w folderze dom każdego użytkownika:

[root @ linuxbox ~] # ls -la /home/legolas/mail/.imap/
łącznie 12 drwxrwx ---. 5 legolas mail 4096 22 maja 12:39. drwx ------. 3 legolas legolas 75 22 maja 11:34 .. -rw -------. 1 legolas legolas 72 22 maja 11:34 dovecot.mailbox.log -rw -------. 1 legolas legolas 8 maja 22 12:39 dovecot-uidvalidity -r - r - r--. 1 legolas legolas 0 22 maja 10:12 dovecot-uidvalidity.5922f1d1 drwxrwx ---. 2 legolas mail 56 22 maja 10:23 INBOX drwx ------. 2 legolas legolas 56 22 maja 12:39 Wysłano drwx ------. 2 legolas legolas 30 maja 22 11:34 Śmieci

Są również przechowywane w / var / mail /

[root @ linuxbox ~] # less / var / mail / legolas
Od MAILER_DAEMON Pon. 22 maja 10:28:00 2017 Data: Pon., 22 maja 2017 r. 10:28:00 -0400 Od: Dane wewnętrzne systemu pocztowego Temat: NIE USUWAJ TEJ WIADOMOŚCI -- FOLDER DANE WEWNĘTRZNE Wiadomość-ID: <1495463280@linuxbox> . Jest tworzony automatycznie przez oprogramowanie systemu pocztowego. W przypadku usunięcia ważne dane folderu zostaną utracone i zostaną utworzone na nowo, przywracając dane do wartości początkowych. Z root@desdelinux.fan pon. 22 maja 10:47:10 2017 Ścieżka powrotna:desdelinux.fan> X-Original-To: legolas Dostarczono-To: legolas@desdelinux.fan Otrzymano: przez desdelinux.fan (Postfix, od identyfikatora użytkownika 0) id 7EA22C11FC57; Pon., 22 maja 2017 r. 10:47:10 -0400 (EDT) Data: Pon., 22 maja 2017 r. 10:47:10 -0400 Do: legolas@desdelinux.fan Temat: Testowy agent użytkownika: Heirloom mailx 12.5 7/5/10 Wersja MIME: 1.0 Typ zawartości: tekst/zwykły; charset=us-ascii Kodowanie przesyłania treści: 7-bitowy identyfikator wiadomości: <20170522144710.7EA22C11FC57@desdelinux.fan> Od: root@desdelinux.fan (root) X-UID: 7 Status: RO Witam. To jest wiadomość testowa od buzz@deslinux.fan, poniedziałek, 22 maja, 10:53:08 2017 Return-Path: X-Oryginał-Do: legolas@desdelinux.fan Dostarczono do: legolas@desdelinux.fan Otrzymano: od sysadmin.desdelinux.fan (brama [172.16.10.1]) przez desdelinux.fan (Postfix) z identyfikatorem ESMTP C184DC11FC57 dladesdelinux.fan>; Pon., 22 maja 2017 r., 10:53:08 -0400 (EDT) Identyfikator wiadomości: <739874.219379516-sendEmail@sysadmin> Od: „buzz@deslinux.fan” Do: „legolas@desdelinux.wentylator"desdelinux.fan> Temat: Witam Data: Pon., 22 maja 2017 r. 14:53:08 +0000 X-Mailer: sendEmail-1.56 Wersja MIME: 1.0 Typ zawartości: wieloczęściowy/powiązany; border="----Separator MIME dla sendEmail-794889.899510057
/ var / mail / legolas

Podsumowanie miniserialu PAM

Przyjrzeliśmy się rdzeniu serwera pocztowego i położyliśmy niewielki nacisk na bezpieczeństwo. Mamy nadzieję, że artykuł posłuży jako punkt wejścia do tematu tak skomplikowanego i podatnego na błędy, jak ręczna implementacja serwera poczty.

Używamy uwierzytelniania lokalnego użytkownika, ponieważ poprawnie odczytujemy plik /etc/dovecot/conf.d/10-auth.conf, zobaczymy, że na końcu jest włączone -domyślnie- plik uwierzytelniający użytkowników systemu ! include auth-system.conf.ext. Dokładnie ten plik mówi nam w swoim nagłówku, że:

[root @ linuxbox ~] # less /etc/dovecot/conf.d/auth-system.conf.ext
# Uwierzytelnianie użytkowników systemu. Zawarte w 10-auth.conf. # # # # Uwierzytelnianie PAM. Preferowany obecnie przez większość systemów.
# PAM jest zwykle używany z hasłem userdb lub statycznym userdb. PAMIĘTAJ: Będziesz potrzebować pliku /etc/pam.d/dovecot utworzonego dla uwierzytelniania PAM #, aby faktycznie działał. passdb {driver = pam # [session = yes] [setcred = yes] [failure_show_msg = yes] [max_requests = ] # [cache_key = ] [ ] #args = dovecot}

Drugi plik istnieje /etc/pam.d/dovecot:

[root @ linuxbox ~] # cat /etc/pam.d/dovecot 
#% PAM-1.0 wymagane uwierzytelnianie pam_nologin.so uwierzytelnianie obejmuje uwierzytelnianie hasłem konto zawiera sesję uwierzytelniania hasłem obejmuje uwierzytelnianie hasłem

Co staramy się przekazać na temat uwierzytelniania PAM?

  • CentOS, Debian, Ubuntu i wiele innych dystrybucji Linuksa instaluje Postifx i Dovecot z domyślnie włączonym uwierzytelnianiem lokalnym.
  • Wiele artykułów w Internecie używa MySQL - a ostatnio MariaDB - do przechowywania użytkowników i innych danych dotyczących serwera pocztowego. ALE są to serwery dla TYSIĘCY UŻYTKOWNIKÓW, a nie dla klasycznej sieci MŚP z - być może - setkami użytkowników.
  • Uwierzytelnianie przez PAM jest konieczne i wystarczające do świadczenia usług sieciowych, o ile działają one na jednym serwerze, jak widzieliśmy w tej miniserialu.
  • Użytkownicy przechowywani w bazie danych LDAP mogą być odwzorowywani tak, jakby byli użytkownikami lokalnymi, a uwierzytelnianie PAM można wykorzystać do świadczenia usług sieciowych z różnych serwerów Linux, które działają jako klienci LDAP, na centralny serwer uwierzytelniania. W ten sposób pracowalibyśmy z poświadczeniami użytkowników przechowywanymi w centralnej bazie danych serwera LDAP i NIE byłoby konieczne utrzymywanie bazy danych z lokalnymi użytkownikami.

Do następnej przygody!


9 komentarzy, zostaw swoje

Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   jaszczurka powiedział

    Uwierz mi, że w praktyce jest to proces, który przyprawia więcej niż jednego administratora o poważne bóle głowy, jestem przekonany, że w przyszłości będzie to przewodnik dla każdego, kto chce samodzielnie zarządzać swoimi e-mailami, praktyczny przypadek, który stanie się w abc podczas integracji postfix, dovecot, squirrelmail ..

    Bardzo dziękuję za chwalebny wkład,

  2.   Darko powiedział

    Dlaczego nie użyć Mailpile, jeśli chodzi o bezpieczeństwo, z PGP? Ponadto Roundcube ma znacznie bardziej intuicyjny interfejs i może również zintegrować PGP.

  3.   Martin powiedział

    3 dni temu przeczytałem post, wiem jak Ci podziękować. Nie planuję instalowania serwera pocztowego, ale zawsze pomocne jest zobaczenie tworzenia certyfikatów, przydatnych dla innych aplikacji, a te samouczki prawie nie tracą ważności (zwłaszcza gdy używasz centOS).

  4.   Federico powiedział

    Manuel Cillero: Dziękuję za łącze do iz Twojego bloga, do tego artykułu, który jest minimalnym rdzeniem serwera pocztowego opartego na Postfix i Dovecot.

    Jaszczurka: Jak zawsze, twoja ocena została bardzo dobrze przyjęta. Dziękuję Ci.

    Darko: W prawie wszystkich moich artykułach wyrażam mniej więcej to, że „Każdy wdraża usługi za pomocą programów, które lubią najbardziej. Dzięki za komentarz.

    Martin: Dziękuję również za przeczytanie artykułu i mam nadzieję, że pomoże on w pracy.

  5.   Zodiak Carburus powiedział

    Ogromny przyjaciel artykułu Federico. Dziękuję bardzo za tak dobre tuto.

  6.   łucznictwo powiedział

    znakomicie, chociaż użyłbym „wirtualnych użytkowników”, aby uniknąć konieczności tworzenia użytkownika systemu za każdym razem, gdy dodam wiadomość e-mail, dzięki, dowiedziałem się wielu nowych rzeczy i na taki post czekałem

  7.   Willinton Acevedo Rueda powiedział

    Dzień dobry,

    Byliby zachęceni do zrobienia tego samego z serwerem katalogów fedora + postifx + dovecot + thunderbird lub outlook.

    Mam część ale utknąłem, chętnie udostępnię dokument społeczności @desdelinux

  8.   phico powiedział

    Nie wyobrażałem sobie, że osiągnie więcej niż 3000 odwiedzin !!!

    Pozdrowienia Lizard!

  9.   ciemny koniec powiedział

    Doskonały kolega z instruktora.
    Czy mógłbyś to zrobić dla Debiana 10 z użytkownikami Active Directory zamontowanymi na Sambie4 ???
    Wyobrażam sobie, że byłoby to prawie to samo, ale zmiana typu uwierzytelniania.
    Sekcja, którą poświęcasz tworzeniu certyfikatów z podpisem własnym, jest bardzo interesująca.