Hosting sopstvenog mail servera zahteva visok nivo bezbednosti, pouzdanosti i preciznog podešavanja mreže. Mailcow: dockerized predstavlja jedno od najkompletnijih i najsigurnijih open-source rešenja za e-poštu. Pokreće se u Docker okruženju i objedinjuje Postfix, Dovecot, Rspamd, SOGo webmail i ugrađene bezbednosne mehanizme poput Fail2ban i Let’s Encrypt TLS sertifikata. Ovaj vodič pruža korak-po-korak uputstvo za podizanje Mailcow servera na Proxmox Virtual Environment (PVE) platformi. Arhitektura i Preduslovi Pri preporučivanju arhitekture na Proxmox VE, KVM Virtuelna Mašina (VM) se smatra znatno stabilnijim i sigurnijim izborom u odnosu na LXC kontejner kada je u pitanju Docker. Iako je Docker moguće pokrenuti unutar LXC-a (uz nesting i OverlayFS trikove), KVM VM pruža potpunu izolaciju kernel nivoa, sprečava probleme sa dozvolama i garantuje stabilan rad Docker mreža i iptables/nftables pravila. Minimalni resursi za VM: OS: Debian 12 (Bookworm) – preporučeno zbog stabilnosti CPU: 2 vCPU RAM: 4 GB (8 GB preporučeno ako se koristi ClamAV za skeniranje virusa) Disk: 30 GB+ (zavisno od planirane veličine sandučića) Mrežni i DNS preduslovi: Statička IP adresa u lokalnoj mreži za Mailcow VM. Javni domen (npr. domen.rs) nad kojim imate potpunu DNS kontrolu. FQDN (Fully Qualified Domain Name) za mail server (npr. mail.domen.rs). Priprema Virtuelne Mašine na Proxmox-u Korak 2.1: Kreiranje VM u Proxmox GUI-ju Uđite u Proxmox Web UI i kliknite na Create VM. General: Unesite Naziv (npr. mailcow-server) i VM ID. OS: Izaberite preuzeti Debian 12 ISO imidž. System: Ostavite podrazumevane vrednosti (Qemu Agent štiklirajte radi lakšeg upravljanja). Disks: Bus/Device: SCSI (Uz Controller: VirtIO SCSI single) Disk size: 40 GB (ili više) Discard: Štiklirajte (ako koristite SSD/NVMe) CPU: 2 Cores, Type: host (za optimalne performanse). Memory: 4096 MB (ili 8192 MB). Network: Bridge vmbr0, Model VirtIO. Potvrdite i pokrenite instalaciju OS-a. Korak 2.2: Priprema OS-a i Instalacija Docker-a Nakon instalacije Debian 12 operativnog sistema, povežite se putem SSH-a i azurirajte sistem: apt update && apt upgrade -y apt install curl sudo git curl apt-transport-https ca-certificates gnupg lsb-release -y Instalirajte zvanični Docker Engine i Docker Compose: # Dodavanje Docker zvaničnog GPG ključa sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Dodavanje spremišta u Apt izvore echo \ “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Instalacija Docker paketa sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y Omogućite i pokrenite Docker servis: systemctl enable –now docker Instalacija Mailcow-a Mailcow se preuzima direktno sa zvaničnog Git repozitorijuma u /opt direktorijum. Korak 3.1: Kloniranje Repozitorijuma cd /opt git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized Korak 3.2: Generisanje Konfiguracije Pokrenite skriptu za generisanje mailcow.conf fajla: ./generate_config.sh Skripta će postaviti nekoliko pitanja: Mail server FQDN: Unesite pun naziv servera (npr. mail.domen.rs). Važno: Nemojte uneti samo domen, već hostname. Timezone: Izaberite vašu vremensku zonu (npr. Europe/Belgrade). Branch: Pritisnite Enter za podrazumevani master (stable) ogranak. Korak 3.3: Podešavanje Resursa (Opciono za 4GB RAM) Ako vaš server ima samo 4 GB RAM-a, preporučljivo je isključiti ClamAV (antivirus) kako biste sprečili preopterećenje memorije. Otvorite mailcow.conf: nano mailcow.conf Pronađite i promenite sledeće parametre: SKIP_CLAMD=y (Sačuvajte fajl sa Ctrl+O i izađite sa Ctrl+X). Korak 3.4: Pokretanje Mailcow Servera Preuzmite Docker imidže i pokrenite kontejnere: docker compose pull docker compose up -d Nakon nekoliko minuta, svi kontejneri (Postfix, Dovecot, Rspamd, SOGo, Nginx…) biće aktivni. Status možete proveriti naredbom: docker compose ps Rešavanje Specifičnosti Kućnog/Home-Lab Okruženja Hosting kod kuće nosi dva glavna izazova: dinamičku IP adresu i blokiran odlazni Port 25 od strane Internet Provajdera (ISP). Problem 1: Blokiran Port 25 (SMTP Relay / Smarthost) Većina ISP-ova blokira odlazni port 25 radi sprečavanja spama. Ako je to slučaj, vaša pošta neće stizati do primaca (npr. Gmail, Outlook). Rešenje: Podešavanje SMTP Relay servisa (npr. Amazon SES, SendGrid, Mailersend ili privatni VPS sa statičkom IP adresom). Prijavite se u Mailcow UI (opisano u Koraku 6). Idite na Admin -> Configuration -> Routing -> Sender-dependent transports. Dodajte novu transportnu rutu sa podacima vašeg Relay provajdera (npr. [smtp.sendgrid.net]:587 uz odgovarajući Username i Password). U delu Domains povežite kreirani transport sa vašim domenom. Problem 2: Ulazni Saobraćaj i Izlaganje Internetu Za prijem pošte sa interneta (Port 25 ulazno) i pristup Webmail-u: Port Forwarding: Na ruteru preusmerite portove 80, 443, 25, 465, 587, 993 ka unutrašnjoj IP adresi Mailcow VM-a. Privatni pristup Webmail-u: Ako ne želite da admin panel izlažete javnosti, pristupačnost portovima 80/443 možete ograničiti samo na lokalnu mrežu ili VPN (WireGuard/Tailscale), dok portove za mail protokole (25, 465, 587, 993) izlažete javno. DNS Konfiguracija (Kritični Korak) Bez ispravnih DNS zapisa vaša pošta će završavati u Spam sandučićima. Na vašem DNS provajderu (npr. Cloudflare, Hetzner, Namecheap) podesite sledeće zapise: Tip zapisaNaziv / HostVrednost / SadržajSvrhaAmail[Vaša Javna IP Adresa]Pokazuje na IP adresu Mailcow serveraMX@mail.domen.rs (Priority: 10)Definiše server za prijem pošteTXT@v=spf1 mx a:mail.domen.rs ~allSPF Record (Autorizuje server za slanje)TXT_dmarcv=DMARC1; p=quarantine; rua=mailto:dmarc@domen.rsDMARC Record (Definiše politiku zaštite) Generisanje DKIM Ključa u Mailcow-u: U Mailcow Web UI idite na Configuration -> System -> DKIM Keys. Unesite vaš domen (domen.rs), izaberite dužinu ključa (2048) i kliknite Add. Kopirajte generisani public key i kreirajte nov TXT zapis u DNS-u sa nazivom dkim._domainkey i sadržajem koji vam je Mailcow prikazao. Prvo Prijavljivanje i Osnovna Konfiguracija Otvorite browser i posetite: https://mail.domen.rs ili https://[IP-adresa-VM]. Prijavite se sa podrazumevanim podacima: Username: admin Password: moohoo ODMAH promenite administratorsku lozinku u podešavanjima profila. Omogućite 2FA (Two-Factor Authentication) za admin nalog pod Security. Idite na Configuration -> Mailboxes -> Add Domain i dodajte vaš domen (domen.rs). U tabu Mailboxes kreirajte prve e-mail adrese (npr. korisnik@domen.rs). Bekap i Održavanje Automatski Bekap u Mailcow-u Mailcow ima integrisanu skriptu za izradu pouzdanih bekapa dok server radi: # Pokretanje automatskog bekapa u željeni direktorijum /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all –delete-days 7 /var/backups/mailcow Preporuka: Povežite /var/backups/mailcow imenik sa eksternim mrežnim deljenjem (NFS/SMB na NAS-u) ili koristite Proxmox PBS (Proxmox Backup Server) za izradu bekapa celokupne VM na nivou hipervizora. Ažuriranje Mailcow-a Mailcow se ažurira jednostavnim pokretanjem skripte: cd /opt/mailcow-dockerized ./update.sh Zaključak Postavljanjem Mailcow-a unutar KVM virtuelne mašine na Proxmox VE dobijate izolovan, izuzetno bezbedan i lako upravljiv mail sistem. Kombinacija Rspamd antispam zaštite, integrisane Fail2ban dinamike i automatskog upravljanja sertifikatima pruža sigurnost i stabilnost na nivou velikih enterprise rešenja, uz potpunu kontrolu nad vašim podacima. Post navigation Velika sajber-bezbednosna kriza: Hakeri probili sistem obrazovnog giganta Frontline Education, ugroženi podaci miliona učenika Istorijski proboj: Najveća pljačka u istoriji kriptovaluta potresla Binance, ukradeno 6,3 milijarde dolara