Serwer poczty na FreeBSD 13 (cz. 1): architektura i komponenty
Ten cykl to praktyczny przewodnik budowy własnego serwera poczty elektronicznej od zera na FreeBSD 13 — z pełnym stosem: Postfix (SMTP), Dovecot (POP3/IMAP), MySQL, Apache + PHP, Let’s Encrypt, PostfixAdmin, antyspam/antywirus, Roundcube i Fail2Ban. W pierwszej części omawiam, jak w ogóle działa poczta i z jakich komponentów zbudujemy system.
📅 Wersje z epoki (2021). Seria odtwarza projekt z 2021 r. — wersje oprogramowania (FreeBSD 13, PHP 7.4, itd.) są zgodne z tamtym stanem. Zasady i architektura są nadal aktualne, ale przy wdrożeniu sprawdź najnowsze wydania. Nową serię z aktualnym stackiem szykuję osobno.
Jak działa poczta elektroniczna
System poczty składa się z kilku współpracujących usług. Główną jest przesyłanie listów z komputera użytkownika na serwer i z serwera na serwer docelowy — realizuje to protokół SMTP (Simple Mail Transfer Protocol). Po dostarczeniu listu na serwer docelowy potrzebna jest usługa pobierania wiadomości przez użytkownika — robi to protokół POP3 (Post Office Protocol). POP3 ma jednak ograniczenia (m.in. brak zarządzania wiadomościami na serwerze), dlatego powstał IMAP (Internet Message Access Protocol), który pozwala zarządzać pocztą bezpośrednio na serwerze.
Do obsługi powyższych usług potrzebna jest też baza danych (MySQL) przechowująca konta i domeny. Dodatkowo postawimy webmail Roundcube wraz z serwerem Apache i SSL dla HTTP, a na koniec zabezpieczymy system przed atakami brute force narzędziem Fail2Ban.
Komponenty i wersje (stan na 2021)
| Komponent | Rola | Wersja / licencja | Port |
|---|---|---|---|
| FreeBSD | system operacyjny | 13 (BSD) | — |
| OpenSSH | zdalny, szyfrowany dostęp | BSD | 22/TCP |
| MySQL | baza danych (konta, domeny) | GPL | 3306/TCP |
| Postfix | MTA / serwer SMTP | IBM Public License | 25, 587; SSL 465 |
| Dovecot | serwer POP3 / IMAP | LGPL | 110/995, 143/993 |
| Apache | serwer HTTP | — | 80; HTTPS 443 |
| PHP | język aplikacji webowych | 7.4.20, open source | — |
| Let’s Encrypt | certyfikaty SSL/TLS | darmowe CA | — |
| phpMyAdmin | zarządzanie bazą przez WWW | GPL | — |
| PostfixAdmin | zarządzanie skrzynkami/domenami | — | — |
| SpamAssassin + ClamAV + Maia-Mailguard | antyspam i antywirus | open source | — |
| Roundcube | webmail (klient pocztowy w przeglądarce) | GPL | — |
| Fail2Ban | ochrona przed brute force | GPL | — |
Krótko o najważniejszych elementach
FreeBSD 13 — system z rodziny Unix oparty na BSD. Łatwa instalacja pakietów (pkg) i kompilacja z portów z własnymi ustawieniami, świetna zapora IPFW i kontrola pasma dummynet. Hasło projektu: The power to serve.
OpenSSH — otwarta implementacja SSH (następcy Telnetu) z pełnym szyfrowaniem komunikacji klient‑serwer; obejmuje też SCP/SFTP.
MySQL — relacyjna baza danych; tu trzyma konta pocztowe, domeny i aliasy wykorzystywane przez Postfix i Dovecot.
Postfix (MTA) — serwer SMTP odpowiedzialny za przekazywanie i dostarczanie poczty. Obsługuje TLS, SASL, skrzynki Maildir/mbox, domeny wirtualne i bazy danych z kontami.
Dovecot — serwer POP3/IMAP pisany pod kątem bezpieczeństwa; współpracuje z Postfixem, obsługuje Maildir, TLS/SSL i uwierzytelnianie z baz SQL.
Apache + PHP + Let’s Encrypt — serwer WWW potrzebny dla narzędzi webowych (phpMyAdmin, PostfixAdmin, Roundcube), z bezpłatnym certyfikatem SSL i HTTPS.
PostfixAdmin + Roundcube — wygodne zarządzanie skrzynkami/domenami oraz webmail dla użytkowników.
SpamAssassin + ClamAV + Maia‑Mailguard — filtr antyspamowy i antywirusowy z webowym panelem kwarantanny.
Fail2Ban — monitoruje próby logowania i blokuje adresy IP podejrzane o ataki brute force.
Co dalej
W części 2 instalujemy FreeBSD 13, konfigurujemy DNS/revDNS oraz SSH — czyli fundament pod resztę usług.
Wpis powstał na bazie mojego projektu „Instalacja i konfiguracja Poczty elektronicznej” (Serwerowe Systemy Operacyjne). Skrót z możliwością pobrania pełnego PDF znajdziesz we wpisie: Instalacja i konfiguracja serwera pocztowego.