Mailcow pašto serveris - pradžios vadovas
Šiame serveryje įdiegtas Mailcow – visiškai Docker konteineriuose veikiantis pašto serverio rinkinys su laiškų siuntimu ir gavimu, žiniatinklio paštu (SOGo), antišlamšto (Rspamd), antivirusine programa (ClamAV) ir administravimo skydeliu. Pašto domenas ir administratoriaus slaptažodis sukonfigūruojami automatiškai pagal užsakant nurodytus duomenis.
1 žingsnis – Patikrinkite, ar Mailcow veikia
Jūsų serverio IP adresas ir root slaptažodis nurodyti kliento skydelio puslapyje Server Details. Atidarykite https://your.server.ip naršyklėje. Naršyklė parodys saugumo įspėjimą dėl savarankiškai pasirašyto sertifikato – tai normalu, tęskite į svetainę.
Prisijungimo puslapio apačioje spustelėkite „Log in as administrator” . Įveskite administratoriaus prisijungimo duomenis:
- Naudotojo vardas:
admin - Slaptažodis: administratoriaus slaptažodis, kurį įvedėte užsakydami
Svarbu: Numatytasis prisijungimo puslapis skirtas pašto dėžučių naudotojams (prisijungimas el. paštu). Administravimo skydelis turi atskirą prisijungimą – naudokite nuorodą puslapio apačioje.
Jei matote Mailcow administravimo skydelį, viskas veikia teisingai.
Jei serverį patalpinote už VyOS maršrutizatoriaus privačiame tinkle, nustatykite 22 (SSH), 25 (SMTP), 80 (HTTP), 443 (HTTPS), 587 (Submission), 993 (IMAP) ir 995 (POP3) prievadų peradresavimą. Pašto serveris turi būti pasiekiamas iš interneto, kad galėtų siųsti ir gauti laiškus.
2 žingsnis – DNS įrašų konfigūravimas
Tinkama DNS konfigūracija yra itin svarbi laiškų pristatymui. Be teisingų įrašų jūsų laiškai bus atmesti arba pažymėti kaip šlamštas. Eikite į domeno registratoriaus DNS nustatymus ir pridėkite šiuos įrašus (pakeiskite your.server.ip savo tikruoju serverio IP, o example.com – savo domenu):
| Tipas | Pavadinimas | Reikšmė |
|---|---|---|
| A | your.server.ip | |
| MX | @ | mail.example.com (prioritetas 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 |
DKIM įrašas: Prisijungę prie administravimo skydelio, eikite į Configuration → ARC/DKIM keys , kad gautumėte DKIM raktą. Tada pridėkite:
| Tipas | Pavadinimas | Reikšmė |
|---|---|---|
| TXT | dkim._domainkey | (nukopijuokite iš Mailcow administravimo skydelio) |
Atvirkštinis DNS (PTR įrašas): Susisiekite su palaikymu, kad jūsų serverio IP PTR įrašas būtų nustatytas į mail.example.com. Tai būtina patikimam laiškų pristatymui.
DNS pakeitimai paprastai įsigalioja per kelias minutes, bet gali užtrukti iki 24 valandų. Būseną galite patikrinti dnschecker.org.
3 žingsnis – Pašto dėžučių kūrimas
Administravimo skydelyje:
- Eikite į E-Mail → Mailboxes
- Spustelėkite Add mailbox
- Įveskite naudotojo vardą (pvz.,
info), nustatykite slaptažodį ir spustelėkite Pridėti - Nauja pašto dėžutė (pvz.,
info@example.com) paruošta naudoti
Naudotojai žiniatinklio paštą (SOGo) pasiekia adresu https://your.server.ip/SOGo – prisijungia visu el. pašto adresu ir pašto dėžutės slaptažodžiu.
Po įdiegimo
SSL su Let’s Encrypt
Mailcow turi integruotą Let’s Encrypt palaikymą. Kai jūsų A įrašas (mail.example.com) nukreiptas į serverį ir DNS išplito, įsitikinkite, kad SKIP_LETS_ENCRYPT=n faile mailcow.conf, ir paleiskite iš naujo:
cd /opt/mailcow-dockerized
docker compose down && docker compose up -d
Mailcow automatiškai gaus ir atnaujins sertifikatą.
El. pašto kliento konfigūravimas
El. pašto klientui (Outlook, Thunderbird, mobiliajam) prijungti naudokite šiuos nustatymus:
| Protokolas | Serveris | Prievadas | Saugumas |
|---|---|---|---|
| IMAP | mail.example.com | 993 | SSL/TLS |
| SMTP | mail.example.com | 587 | STARTTLS |
| POP3 | mail.example.com | 995 | SSL/TLS |
Naudotojo vardas yra visas el. pašto adresas (pvz., info@example.com). Jei sukonfigūravote autodiscover ir autoconfig DNS įrašus, dauguma el. pašto klientų šiuos nustatymus aptiks automatiškai.
Domenų pridėjimas
Viename Mailcow serveryje galite talpinti kelis pašto domenus:
- Eikite į Configuration → Mail Setup → Domains
- Spustelėkite Add domain ir įveskite naujo domeno pavadinimą
- Sukonfigūruokite naujo domeno DNS įrašus (MX, SPF, DKIM, DMARC) taip pat kaip 2 žingsnyje
- Sukurkite pašto dėžutes naujam domenui
Fail2Ban – apsauga nuo slaptažodžių spėjimo atakų
Jūsų serveryje įdiegta Fail2Ban iš anksto sukonfigūruotas apsaugoti SSH nuo slaptažodžių spėjimo atakų. Mailcow taip pat turi savo vidinę apsaugą nuo slaptažodžių spėjimo SMTP, IMAP, POP3 ir administravimo skydeliui – ją sukonfigūruosite administravimo sąsajoje skiltyje System → Configuration → Fail2ban parameters.
| Taisyklė | Maks. bandymų | Blokavimo trukmė |
|---|---|---|
| SSH (host) | 5 nesėkmingi prisijungimai | 10 minučių |
Naudingos komandos:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
Jei netyčia užsiblokavote, prisijunkite per VNC konsolę kliento skydelyje ir atblokuokite savo IP.
Paslaugų valdymas
# Check status
cd /opt/mailcow-dockerized && docker compose ps
# Restart all services
docker compose down && docker compose up -d
# View logs
docker compose logs -f --tail=100
Atsarginės kopijos
Mailcow turi integruotą atsarginių kopijų scenarijų:
# Create a backup
cd /opt/mailcow-dockerized
./helper-scripts/backup_and_restore.sh backup all --delete-days 7
# Automated daily backups (add to crontab -e)
0 3 * * * cd /opt/mailcow-dockerized && ./helper-scripts/backup_and_restore.sh backup all --delete-days 7
Pagal numatytuosius nustatymus atsarginės kopijos saugomos /var/backups/mailcow .
Atnaujinimai
Mailcow ir sistemos paketų atnaujinimas:
# Update Mailcow
cd /opt/mailcow-dockerized && sudo ./update.sh
# Update system packages
apt update && apt upgrade -y
Įdiegta programinė įranga
| Komponentas | Išsami informacija |
|---|---|
| Ubuntu | 24.04 LTS |
| Docker CE | Naujausia |
| Mailcow | Naujausia (Docker) |
| Postfix | SMTP serveris |
| Dovecot | IMAP / POP3 serveris |
| SOGo | Žiniatinklio pašto klientas |
| ClamAV | Antivirusinė |
| Rspamd | Antišlamštas |
| Fail2Ban | Apsauga nuo slaptažodžių spėjimo atakų |
Trikčių šalinimas
| Problema | Sprendimas |
|---|---|
| Nepavyksta pasiekti žiniatinklio skydelio | Patikrinkite, ar veikia konteineriai: cd /opt/mailcow-dockerized && docker compose ps. Jei reikia, paleiskite iš naujo: docker compose down && docker compose up -d |
| Prisijungimo puslapis prašo el. pašto | Numatytasis puslapis skirtas pašto dėžučių naudotojams. Spustelėkite „Log in as administrator” puslapio apačioje, kad pasiektumėte administratoriaus prisijungimą |
| Laiškai patenka į šlamštą | Patikrinkite DNS įrašus: SPF, DKIM ir DMARC turi būti teisingai sukonfigūruoti. PTR įrašą patikrinkite su dig -x your.server.ip. Išbandykite mail-tester.com |
| Nepavyksta siųsti ar gauti laiškų | Patikrinkite MX įrašą: dig MX example.com. Įsitikinkite, kad jūsų teikėjas neblokuoja 25 prievado. Patikrinkite žurnalus: cd /opt/mailcow-dockerized && docker compose logs postfix-mailcow |
| Let’s Encrypt sertifikatas neišduotas | Įsitikinkite, kad MAILCOW_HOSTNAME faile mailcow.conf atitinka jūsų DNS A įrašą ir SKIP_LETS_ENCRYPT=n. Žurnalų tikrinimas: docker compose logs acme-mailcow |
| ClamAV nepasiruošęs / didelis atminties naudojimas | ClamAV per pirmąjį paleidimą atsisiunčia virusų duomenų bazes (~300 MB). Tai gali užtrukti kelias minutes. Patikrinkite: docker compose logs clamd-mailcow |
| Pamiršote administratoriaus slaptažodį | Atkūrimas per 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';"Tada prisijunkite bet kokiu slaptažodžiu ir pakeiskite jį administravimo skydelyje |
| Užblokavo Fail2Ban | Atblokuokite savo IP per VNC konsolę kliento skydelyje |
| Pamiršote root slaptažodį | Atkurkite jį per VNC konsolę kliento skydelyje |