Пощенски сървър Mailcow в Docker контейнер

https://www.youtube.com/watch?v=FFxN3mNx7Sg
https://www.youtube.com/watch?v=VptKRBVeCMo

Ако ще се прави на виртуална машина то тя трябва да има минимум следните параметри: • CPU - 2 ядра • RAM - 4GB • HDD - 80GB • -

Настройка на DNS

Започваме с най-необходимите записи в DNS сървъра

Type Name IPv4 TTL A mail 109.160.80.230 Auto Type Name Target TTL CNAME autoconfig mail.tachko.com Auto CNAME autodiscover mail.tachko.com Auto Type Name Mail server TTL Priority MX @ mail.tachko.com Auto 10 Type Name Priority Weight TTL Port Target SRV _autodiscover._tcp 0 5 Auto 443 mail.tachko.com Type Name TTL Content TXT @ Auto "v=spf1 ip4:109.160.80.230 ip6:2001:4860:7:1508::fd -all" ### Ако нямате IPv6 TXT @ Auto "v=spf1 ip4:109.160.80.230 -all" Type Name TTL Content TXT _DMARC Auto "v=DMARC1; p=quarantine; adkim=s; aspf=s" ### Незадължителни опции от друга статия ### SPF Type Name TTL Content TXT @/empty default "v=spf1 ip4:109.160.80.230 -all" ### DKIM Type Name TTL Content TXT dkim._domainkey default v=DKIM1;k=rsa;t=s;s=email;p= ### DMARK Type Name TTL Content TXT _dmarc default v=DMARC1; p=reject; rua=mailto: dmarc email1 ; ruf=dmarc email2

Тестове:

### За CNAME dig autoconfig.tachko.com +noall +answer dig autodiscover.tachko.com +noall +answer

### За A запис dig mail.tachko.com +noall +answer

### За SPF dig tachko.com TXT

### За DMARC dig _dmarc.tachko.com TXT

Инсталиране на Docker и Docker-compose

Обновяваме системата и репозиторите. След това сменяме часовата зона в която работим.

sudo usermod -aG docker cccp ### Обновяваме системата apt update && apt upgrade -y dpkg-reconfigure tzdata Europe >> Sofia ### Инсталираме Docker sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin systemctl start docker systemctl enable docker

И да проверим как работи Docker.

docker run hello-world docker --version docker compose version

Инсталиране на Mailcow

mkdir /docker mkdir /docker/mailcow && cd /docker/mailcow git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized ./generate_config.sh nano mailcow.conf

Активиране на защитната стена

# SMTP sudo ufw allow 25/tcp # Submission sudo ufw allow 587/tcp # SMTPS (deprecated but sometimes used) sudo ufw allow 465/tcp # IMAP (unencrypted, STARTTLS) sudo ufw allow 143/tcp # IMAPS (SSL/TLS) sudo ufw allow 993/tcp # POP3 (unencrypted, STARTTLS) sudo ufw allow 110/tcp # POP3S (SSL/TLS) sudo ufw allow 995/tcp # Sieve (for mail filtering scripts like vacation replies) sudo ufw allow 4190/tcp sudo ufw status

Редактиране на Docker Compose

nano docker-compose.yml docker compose up -d

Инсталиране и настройка на NGINX

s sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker docker --version