Mailcow Mail Server - Przewodnik na start
Ten serwer jest dostarczany z Mailcow – w pełni opartym na Dockerze pakietem serwera pocztowego obejmującym wysyłanie i odbieranie wiadomości e-mail, webmail (SOGo), ochronę antyspamową (Rspamd), program antywirusowy (ClamAV) oraz panel administracyjny. Domena pocztowa i hasło administratora są konfigurowane automatycznie na podstawie danych podanych podczas składania zamówienia.
Krok 1 – Sprawdź, czy Mailcow działa poprawnie
Adres IP serwera oraz hasło użytkownika root znajdują się w sekcji Informacje o serwerze na karcie Przegląd w panelu klienta. Otwórz w przeglądarce adres https://your.server.ip. Przeglądarka wyświetli ostrzeżenie dotyczące certyfikatu z podpisem własnym (self-signed) – jest to normalne, przejdź dalej do strony.
Na stronie logowania kliknij na dole „Log in as administrator”. Następnie wprowadź dane administratora:
- Nazwa użytkownika: admin
- Hasło: hasło administratora podane podczas składania zamówienia
Ważne: Domyślna strona logowania przeznaczona jest dla użytkowników skrzynek pocztowych (logowanie do poczty). Panel administracyjny posiada oddzielne logowanie – użyj odnośnika znajdującego się na dole strony.
Jeśli widzisz panel administracyjny Mailcow, oznacza to, że wszystko działa poprawnie.
Jeżeli serwer został umieszczony za routerem VyOS w sieci prywatnej, skonfiguruj przekierowanie portów 22 (SSH), 25 (SMTP), 80 (HTTP), 443 (HTTPS), 587 (Submission), 993 (IMAP) oraz 995 (POP3). Serwer pocztowy musi być dostępny z Internetu, aby mógł wysyłać i odbierać wiadomości e-mail.
Krok 2 – Skonfiguruj rekordy DNS
Prawidłowa konfiguracja DNS jest kluczowa dla dostarczania wiadomości e-mail. Bez poprawnych rekordów Twoje wiadomości będą odrzucane lub oznaczane jako spam. Przejdź do ustawień DNS u rejestratora domeny i dodaj poniższe rekordy (zamień your.server.ip na rzeczywisty adres IP serwera, a example.com na swoją domenę):
| Typ | Nazwa | Wartość |
|---|---|---|
| A | your.server.ip | |
| MX | @ | mail.example.com (priorytet 10) |
| TXT | @ | v=spf1 mx a -all |
| TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com |
| CNAME | autodiscover | mail.example.com |
| CNAME | autoconfig | mail.example.com |
Rekord DKIM: Po zalogowaniu do panelu administracyjnego przejdź do Configuration → ARC/DKIM keys, aby pobrać klucz DKIM. Następnie dodaj:
| Typ | Nazwa | Wartość |
|---|---|---|
| TXT | dkim._domainkey | (skopiuj z panelu administracyjnego Mailcow) |
Reverse DNS (rekord PTR): Skontaktuj się z pomocą techniczną, aby ustawić rekord PTR dla adresu IP serwera na mail.example.com. Jest to wymagane do prawidłowego dostarczania wiadomości e-mail.
Zmiany w DNS zazwyczaj zaczynają działać po kilku minutach, jednak pełna propagacja może potrwać do 24 godzin. Status możesz sprawdzić na stronie dnschecker.org.
Krok 3 – Utwórz skrzynki pocztowe
W panelu administracyjnym:
- Przejdź do E-Mail → Mailboxes
- Kliknij Add mailbox
- Wprowadź nazwę użytkownika (np. info), ustaw hasło i kliknij Add
- Nowa skrzynka pocztowa (np. info@example.com) jest gotowa do użycia
Użytkownicy mogą korzystać z webmaila (SOGo) pod adresem https://your.server.ip/SOGo – zaloguj się, używając pełnego adresu e-mail oraz hasła do skrzynki.
Po instalacji
Certyfikat SSL z Let’s Encrypt
Mailcow posiada wbudowaną obsługę Let’s Encrypt. Gdy rekord A (mail.example.com) będzie wskazywał na serwer i propagacja DNS zostanie zakończona, upewnij się, że w pliku mailcow.conf ustawiono SKIP_LETS_ENCRYPT=n, a następnie uruchom ponownie usługi:
cd /opt/mailcow-dockerized docker compose down && docker compose up -dMailcow automatycznie pobierze oraz będzie odnawiać certyfikat.
Konfiguracja klienta poczty
Aby skonfigurować klienta poczty (Outlook, Thunderbird, urządzenie mobilne), użyj poniższych ustawień:
| Protokół | Serwer | Port | Zabezpieczenia |
|---|---|---|---|
| IMAP | mail.example.com | 993 | SSL/TLS |
| SMTP | mail.example.com | 587 | STARTTLS |
| POP3 | mail.example.com | 995 | SSL/TLS |
Nazwą użytkownika jest pełny adres e-mail (np. info@example.com). Jeśli skonfigurowano rekordy DNS autodiscover oraz autoconfig, większość klientów pocztowych wykryje te ustawienia automatycznie.
Dodawanie domen
Na jednym serwerze Mailcow możesz obsługiwać wiele domen pocztowych:
- Przejdź do Configuration → Mail Setup → Domains
- Kliknij Add domain i wprowadź nazwę nowej domeny
- Skonfiguruj rekordy DNS dla nowej domeny (MX, SPF, DKIM, DMARC), postępując zgodnie z instrukcjami z Kroku 2
- Utwórz skrzynki pocztowe dla nowej domeny
Fail2Ban – Ochrona przed atakami brute-force
Serwer jest dostarczany z prekonfigurowanym Fail2Ban, który chroni usługę SSH przed atakami brute-force. Mailcow posiada również własny mechanizm ochrony przed atakami brute-force dla SMTP, IMAP, POP3 oraz panelu administracyjnego. Możesz go skonfigurować w panelu administracyjnym w sekcji System → Configuration → Fail2ban parameters.
| Reguła | Maksymalna liczba prób | Czas blokady |
|---|---|---|
| SSH (host) | 5 nieudanych logowań | 10 minut |
Przydatne polecenia:
# Sprawdź zablokowane adresy IP fail2ban-client status sshd # Odblokuj adres IP fail2ban-client set sshd unbanip 1.2.3.4Jeśli przypadkowo zablokujesz sobie dostęp, połącz się z serwerem przez konsolę VNC w panelu klienta i odblokuj swój adres IP.
Zarządzanie usługami
# Sprawdź status cd /opt/mailcow-dockerized && docker compose ps # Uruchom ponownie wszystkie usługi docker compose down && docker compose up -d # Wyświetl logi docker compose logs -f –tail=100Kopie zapasowe
Mailcow zawiera wbudowany skrypt do tworzenia kopii zapasowych:
# Utwórz kopię zapasową cd /opt/mailcow-dockerized ./helper-scripts/backup_and_restore.sh backup all –delete-days 7 # Automatyczne codzienne kopie zapasowe (dodaj do crontab -e) 0 3 * * * cd /opt/mailcow-dockerized && ./helper-scripts/backup_and_restore.sh backup all –delete-days 7Domyślnie kopie zapasowe są przechowywane w katalogu /var/backups/mailcow.
Aktualizacje
Aby zaktualizować Mailcow oraz pakiety systemowe:
# Zaktualizuj Mailcow cd /opt/mailcow-dockerized && sudo ./update.sh # Zaktualizuj pakiety systemowe apt update && apt upgrade -yDołączone oprogramowanie
| Komponent | Szczegóły |
|---|---|
| Ubuntu | 24.04 LTS |
| Docker CE | Najnowsza wersja |
| Mailcow | Najnowsza wersja (Docker) |
| Postfix | Serwer SMTP |
| Dovecot | Serwer IMAP / POP3 |
| SOGo | Klient poczty Webmail |
| ClamAV | Program antywirusowy |
| Rspamd | Ochrona antyspamowa |
| Fail2Ban | Ochrona przed atakami brute-force |
Rozwiązywanie problemów
| Problem | Rozwiązanie |
|---|---|
| Brak dostępu do panelu WWW | Sprawdź, czy kontenery są uruchomione: cd /opt/mailcow-dockerized && docker compose ps. W razie potrzeby uruchom je ponownie: docker compose down && docker compose up -d |
| Strona logowania wymaga podania adresu e-mail | Domyślna strona logowania przeznaczona jest dla użytkowników skrzynek pocztowych. Kliknij „Log in as administrator” na dole strony, aby przejść do logowania administratora. |
| Wiadomości trafiają do spamu | Sprawdź rekordy DNS: SPF, DKIM i DMARC muszą być poprawnie skonfigurowane. Zweryfikuj rekord PTR poleceniem dig -x your.server.ip. Przetestuj konfigurację na stronie mail-tester.com. |
| Nie można wysyłać ani odbierać wiadomości e-mail | Sprawdź rekord MX: dig MX example.com. Upewnij się, że port 25 nie jest blokowany przez dostawcę usług internetowych. Sprawdź logi: cd /opt/mailcow-dockerized && docker compose logs postfix-mailcow. |
| Certyfikat Let’s Encrypt nie został wydany | Upewnij się, że MAILCOW_HOSTNAME w pliku mailcow.conf odpowiada rekordowi DNS A oraz że ustawiono SKIP_LETS_ENCRYPT=n. Sprawdź logi: docker compose logs acme-mailcow. |
| ClamAV nie jest gotowy / wysokie zużycie pamięci | Przy pierwszym uruchomieniu ClamAV pobiera bazy sygnatur wirusów (około 300 MB). Może to potrwać kilka minut. Sprawdź logi: docker compose logs clamd-mailcow. |
| Zapomniane hasło administratora | Zresetuj je przez SSH: cd /opt/mailcow-dockerized && docker compose exec -T mysql-mailcow mysql -umailcow -p$(grep DBPASS mailcow.conf | cut -d= -f2) mailcow -e „UPDATE admin SET password='{SSHA256}’ WHERE username=’admin’;” Następnie zaloguj się przy użyciu dowolnego hasła i zmień je w panelu administracyjnym. |
| Adres IP został zablokowany przez Fail2Ban | Skorzystaj z konsoli VNC dostępnej w panelu klienta, aby odblokować swój adres IP. |
| Zapomniane hasło użytkownika root | Skorzystaj z konsoli VNC w panelu klienta, aby je zresetować. |