Instalacja własnego serwera pocztowego z Modoboa na Debianie

Opublikowano Zaktualizowano 5 min czytania

Instalator Modoboa stawia Postfix, Dovecot, webmail i SSL w jednym przebiegu. Tak zainstalujesz własny serwer pocztowy na Debianie i ustawisz potrzebne rekordy DNS.

Nie chcesz, żeby twoja poczta leżała u darmowego dostawcy, tylko na własnym serwerze i pod własną domeną? Modoboa jest do tego jednym z najwygodniejszych rozwiązań. Dołączony instalator konfiguruje w jednym przebiegu Postfix, Dovecot, bazę danych, filtr antyspamowy, webmail oraz panel administracyjny.

Ten poradnik opisuje instalację na Debianie 12 oraz Debianie 11. Debian 10 nie jest już wspierany i nie powinien być używany do nowego serwera pocztowego.

Wymagania

  • Własny VPS albo serwer root ze świeżą instalacją Debiana. Zalecamy (to nie obowiązek, ale rozsądne podejście), żeby przeznaczyć mały serwer wyłącznie na pocztę, ponieważ nazwa hosta i Reverse DNS zostaną dopasowane do domeny pocztowej.
  • Dostęp roota przez SSH.
  • Własna domena, w której samodzielnie ustawisz rekordy DNS.
  • Stały adres IPv4, dla którego możesz utworzyć wpis Reverse DNS.
  • Porty pocztowe muszą być osiągalne: 25 (SMTP), 587 i 465 (wysyłka przez twoich użytkowników), 143 i 993 (IMAP) oraz 80 i 443 dla webmaila i wystawienia certyfikatu.

Ważne: instalację przeprowadź na świeżo postawionym systemie. Działający już serwer WWW albo istniejąca baza danych regularnie przerywają pracę instalatora.

Przygotowanie systemu

Najpierw zaktualizuj listę pakietów i wszystkie zainstalowane pakiety:

apt update && apt upgrade -y

Następnie zainstaluj pakiety, których oczekuje instalator:

apt-get install sudo git python3 mariadb-server -y

Zakończ konfigurację bazy danych i odpowiedz na pytania kreatora. Nadaj przy tym bezpieczne hasło administratorowi bazy danych:

sudo mysql_secure_installation

Ustawienie nazwy hosta

Serwer potrzebuje pełnej nazwy hosta, która pasuje do późniejszej domeny pocztowej. Bez tego kroku instalacja się nie powiedzie:

hostnamectl set-hostname mail.<DOMENA>.<ROZSZERZENIE>

Rekord A dla dokładnie tej nazwy najlepiej ustaw w DNS już teraz. Instalator wystąpi później o certyfikat Let's Encrypt, a to uda się tylko wtedy, gdy nazwa wskazuje już na IP twojego serwera.

Pobranie instalatora Modoboa

cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer

Utworzenie i dostosowanie pliku konfiguracyjnego

Najpierw pozwól instalatorowi utworzyć sam plik konfiguracyjny i zatrzymać się na tym etapie:

python3 ./run.py --stop-after-configfile-check <DOMENA>.<ROZSZERZENIE>

Otwórz utworzony plik:

nano installer.cfg

Dostosuj poniższe sekcje. Dzięki temu serwer dostanie darmowy certyfikat SSL od Let's Encrypt i połączy się z lokalną bazą danych:

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@<DOMENA>.<ROZSZERZENIE>

[database]
engine = mysql
host = 127.0.0.1
install = true

Jako adres e-mail wpisz taki, który faktycznie czytasz. Let's Encrypt wysyła tam powiadomienia, jeśli odnowienie certyfikatu nie dojdzie do skutku.

Uruchomienie instalacji

python3 ./run.py mail.<DOMENA>.<ROZSZERZENIE>

Cały przebieg trwa kilka minut. Wykorzystaj ten czas na ustawienie rekordów DNS.

Ustawienie rekordów DNS

Rekord A i rekord MX

Rekord A wskazuje na IP twojego serwera, a rekord MX mówi światu, który host przyjmuje pocztę dla twojej domeny. Priorytet „10” to typowa wartość, gdy serwer pocztowy jest tylko jeden:

Rekord 1:
Subdomena: mail
Typ: A (IPv4)
Cel: <IP-Serwera>
Wynik powinien wyglądać tak: mail.<DOMENA>.<ROZSZERZENIE> IN A <IP-Serwera>

Rekord 2:
(Subdomena: @)
Typ: MX
Cel: mail.<DOMENA>.<ROZSZERZENIE>
Wynik powinien wyglądać tak: @ IN MX 10 mail.<DOMENA>.<ROZSZERZENIE>

SPF, DKIM i DMARC

Bez tych trzech rekordów twoje wiadomości z dużym prawdopodobieństwem wylądują w folderze spamu odbiorców. Duzi dostawcy wymagają ich dziś wprost.

SPF określa, które serwery mogą wysyłać pocztę w imieniu twojej domeny. Zapisujesz go jako rekord TXT na domenie głównej:

Typ: TXT
Nazwa: @
Wartość: v=spf1 mx -all

DKIM podpisuje kryptograficznie twoje wychodzące wiadomości. Modoboa potrafi samo wygenerować klucze dla każdej domeny. Klucz publiczny znajdziesz po instalacji w panelu administracyjnym, w ustawieniach danej domeny. Tę wartość wpisujesz w DNS jako rekord TXT.

DMARC mówi odbiorcom, jak mają traktować wiadomości, które nie przechodzą kontroli SPF albo DKIM. Zacznij od ustawienia obserwacyjnego, a zaostrzysz je później:

Typ: TXT
Nazwa: _dmarc
Wartość: v=DMARC1; p=none; rua=mailto:postmaster@<DOMENA>.<ROZSZERZENIE>

Reverse DNS (PTR)

Rekord PTR rozwiązuje twój adres IP z powrotem na nazwę hosta. Wiele serwerów pocztowych wprost odrzuca połączenia bez pasującego rekordu PTR. U nas ustawisz go samodzielnie w panelu klienta:

"Moje usługi" -> "wybierz serwer" -> "kliknij przycisk Reverse DNS" -> mail.<DOMENA>.<ROZSZERZENIE>

Ważne jest to, żeby rekord PTR i nazwa hosta zgadzały się co do znaku.

Pierwsze kroki po instalacji

Jeśli instalacja się powiodła, zrestartuj raz serwer:

reboot

Po restarcie panel administracyjny znajdziesz pod adresem https://mail.<DOMENA>.<ROZSZERZENIE>. Zaloguj się na konto administratora, które utworzył instalator, i na samym początku zmień hasło. Następnie załóż swoją domenę oraz potrzebne skrzynki pocztowe.

Potem przetestuj pocztę w obie strony: wyślij wiadomość ze swojego nowego serwera na zewnętrzną skrzynkę oraz wiadomość z zewnątrz na swój nowy adres. To, czy SPF, DKIM, DMARC i PTR działają poprawnie, najszybciej sprawdzisz jednym z darmowych testerów poczty dostępnych w sieci.

Typowe błędy

  • Instalacja przerywa się od razu: nazwa hosta nie jest pełną nazwą domenową. Sprawdź ją poleceniem hostname -f.
  • Certyfikat nie zostaje wystawiony: rekord A dla mail.twojadomena nie wskazuje na serwer albo port 80 jest zablokowany. Let's Encrypt sprawdza domenę przez port 80.
  • Wiadomości lądują w spamie: najczęściej brakuje rekordu PTR albo nie są ustawione SPF i DKIM. Sprawdź wszystkie cztery rekordy, zanim uruchomisz serwer produkcyjnie.
  • Wychodzące wiadomości są odrzucane: adres IP być może figuruje na liście blokad. Większość operatorów udostępnia sposób na sprawdzenie wpisu i wniosek o jego usunięcie.
  • Instalator zgłasza błąd bazy danych: MariaDB nie przeszła jeszcze konfiguracji poleceniem mysql_secure_installation albo w pliku installer.cfg nie zgadza się sekcja bazy danych.
  • Po restarcie nic już nie działa: sprawdź powiązane usługi poleceniem systemctl status postfix dovecot nginx.

Własny serwer pocztowy wymaga więcej opieki niż inne usługi: aktualizacji, kopii zapasowych skrzynek i pilnowania dostarczalności. Jeśli to na siebie weźmiesz, dostaniesz w zamian pełną kontrolę nad swoją komunikacją.

Autor: XEfnexX (pseudonim)

Najczęstsze pytania

Której wersji Debiana potrzebuję do Modoboa?
Użyj Debiana 12 albo Debiana 11 w świeżej instalacji. Debian 10 nie jest już wspierany i nie powinien być stosowany do nowego serwera pocztowego.
Dlaczego moje wiadomości lądują w folderze spamu?
W większości przypadków brakuje wpisu Reverse DNS albo nie są ustawione rekordy SPF, DKIM i DMARC. Sprawdź wszystkie cztery punkty, zanim uruchomisz serwer produkcyjnie.
Czy mogę zainstalować Modoboa na serwerze z istniejącą stroną WWW?
Odradzamy. Instalator oczekuje świeżego systemu i regularnie przerywa pracę, gdy działa już serwer WWW albo baza danych.
Które porty muszę otworzyć?
Port 25 do odbioru poczty, 587 i 465 do wysyłki przez twoich użytkowników, 143 i 993 dla IMAP oraz 80 i 443 dla webmaila i wystawienia certyfikatu SSL.
Jak ustawić wpis Reverse DNS?
Rekord PTR ustawiasz samodzielnie w panelu klienta w sekcji Moje usługi: wybierz serwer, otwórz Reverse DNS i wpisz tam nazwę hosta swojego serwera pocztowego.

Serwer pocztowy Modoboa Postfix Dovecot Debian SPF-DKIM-DMARC Reverse-DNS