Как установить почтовый сервер Mailu на Ubuntu 20.04

Как установить почтовый сервер Mailu на Ubuntu 20.04

 

Mailu — простой, но мощный почтовый сервер, работающий на контейнерах докеров. Это бесплатное программное обеспечение, открытое для предложений и дополнений. Он предназначен для обеспечения простой настройки почтового сервера. Образы Mailu должны запускаться на любом облачном сервере, на котором запущен Docker (> = 1.11), и вы можете выбирать между Docker compose, Kubernetes и Rancher для запуска своего почтового сервера Mailu. Это руководство было написано, чтобы помочь пользователям установить и настроить почтовый сервер Mailu на сервере Ubuntu 20.04.

Особенности почтового сервера Mailu

Ожидается, что, как и любой другой почтовый сервер, mailu будет отвечать требованиям отправки и получения электронных писем. Ниже приведены некоторые из наиболее важных функций почтового сервера Mailu:

  • Стандартный почтовый сервер, IMAP и IMAP +, SMTP и отправка
  • Расширенные функции электронной почты, псевдонимы, псевдонимы домена, настраиваемая маршрутизация
  • Доступ в Интернет, несколько сообщений электронной почты и интерфейс администрирования
  • Функции пользователя, псевдонимы, автоответчик, автопересылка, полученная учетная запись
  • Функции администратора, глобальные администраторы, объявления, делегирование для каждого домена, квоты
  • Безопасность, принудительный TLS, Letsencrypt !, исходящий DKIM, антивирусный сканер
  • Антиспам, автообучение, серые списки, DMARC и SPF
  • Свобода, все компоненты FOSS, без трекера

Настройте почтовый сервер Mailu на Ubuntu 20.04

Обновите системные пакеты перед установкой

sudo apt-get update
sudo apt-get upgrade

Нам необходимо убедиться, что в нашей системе есть действующий IP-адрес и полное доменное имя. Также должна быть действующая запись mx для нашего домена. Чтобы установить IP-адрес сервера и имя хоста, выполните следующие команды:

sudo hostnamectl set-hostname mail.example.com 

Также добавьте полное доменное имя и IP-адрес сервера в файл  /etc/hosts .

$ sudo vim /etc/hosts
62.15.116.167 mail.example.com

После установки перезагрузите вашу систему

sudo reboot

Следующие порты должны быть разрешены через брандмауэр вашей системы, поскольку они критически важны для электронной почты. Вы можете открыть порты с помощью ufw, как показано ниже:

sudo ufw allow proto tcp from any to any port 25,80,443,110,143,465,587,993,995

Установите Docker и Docker compose в Ubuntu

Чтобы установить docker и docker compose в Ubuntu 20.04, ознакомьтесь с нашими руководствами ниже.

Установка Docker в Ubuntu

Установите Docker Compose в Ubuntu

Создать каталог Mailu

После установки Docker и Docker Compose перейдите к созданию каталога, в котором mailu будет хранить свои данные.

sudo mkdir /mailu

Mailu использует файл docker-compose.yml, а также полагается на mailu.env для различных настроек. Вам необходимо сгенерировать конфигурацию Mailu для вашей среды с помощью онлайн-утилиты настройки mailu. Генератор предоставит вам как файл docker-compose.yml, так и файл mailu.env. После создания конфигурации вы получите ссылки для загрузки файлов. Убедитесь, что вы загружаете файлы в каталог mailu. Вы должны получить такую ​​страницу при создании файлов.

Для моего случая установки я сгенерировал и получил файл со следующим содержимым:

$ vim mailu.env

# Mailu main configuration file 
# 
# This file is autogenerated by the configuration management wizard for compose flavor. 
# For a detailed list of configuration variables, see the documentation at 
# https://mailu.io 

################################### 
# Common configuration variables 
################################### 

# Set to a randomly generated 16 bytes string 
SECRET_KEY=YPQAFO2THH5WSM7I 

# Subnet of the docker network. This should not conflict with any networks to which your system is connected. (Internal and external!) 
SUBNET=192.168.203.0/24 

# Main mail domain 
DOMAIN=example.com 

# Hostnames for this server, separated with comas 
HOSTNAMES=mailu.example.com

# Postmaster local part (will append the main mail domain) 
POSTMASTER=admin 

# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt) 
TLS_FLAVOR=letsencrypt 

# Authentication rate limit (per source IP address) 
AUTH_RATELIMIT=10/minute;1000/hour  

# Opt-out of statistics, replace with "True" to opt out 
DISABLE_STATISTICS=False 

################################### 
# Optional features 
################################### 

# Expose the admin interface (value: true, false) 
ADMIN=true 

# Choose which webmail to run if any (values: roundcube, rainloop, none) 
WEBMAIL=roundcube 

# Dav server implementation (value: radicale, none) 
WEBDAV=radicale 

# Antivirus solution (value: clamav, none) 
ANTIVIRUS=clamav 

################################### 
# Mail settings 
################################### 

# Message size limit in bytes 
# Default: accept messages up to 50MB 
# Max attachment size will be 33% smaller 
MESSAGE_SIZE_LIMIT=50000000 

# Networks granted relay permissions 
# Use this with care, all hosts in this networks will be able to send mail without authentication! 
RELAYNETS= 

# Will relay all outgoing mails if configured 
RELAYHOST= 

# Fetchmail delay 
FETCHMAIL_DELAY=600 

# Recipient delimiter, character used to delimiter localpart from custom address part 
RECIPIENT_DELIMITER=+

И файл docker-compose выглядит следующим образом:

$ docker-compose.yml
# This file is auto-generated by the Mailu configuration wizard. 
# Please read the documentation before attempting any change. 
# Generated for compose flavor 

version: '2.2' 

services: 

 # External dependencies 
 redis: 
   image: redis:alpine 
   restart: always 
   volumes: 
     - "/mailu/redis:/data" 
    
 # Core services 
 front: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   logging: 
     driver: json-file 
   ports: 
     - "62.15.116.167:80:80" 
     - "::1:80:80" 
     - "62.15.116.167:443:443" 
     - "::1:443:443" 
     - "62.15.116.167:25:25" 
     - "::1:25:25" 
     - "62.15.116.167:465:465" 
     - "::1:465:465" 
     - "62.15.116.167:587:587" 
     - "::1:587:587" 
     - "62.15.116.167:110:110" 
     - "::1:110:110" 
     - "62.15.116.167:995:995" 
     - "::1:995:995" 
     - "62.15.116.167:143:143" 
     - "::1:143:143" 
     - "62.15.116.167:993:993" 
     - "::1:993:993" 
   volumes: 
     - "/mailu/certs:/certs" 
     - "/mailu/overrides/nginx:/overrides" 


 admin: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/data:/data" 
     - "/mailu/dkim:/dkim" 
   depends_on: 
     - redis 

 imap: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/mail:/mail" 
     - "/mailu/overrides:/overrides" 
   depends_on: 
     - front 

 smtp: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/overrides:/overrides" 
   depends_on: 
     - front 

 antispam: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/filter:/var/lib/rspamd" 
     - "/mailu/dkim:/dkim" 
     - "/mailu/overrides/rspamd:/etc/rspamd/override.d" 
   depends_on: 
     - front 

 # Optional services 
 antivirus: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}clamav:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/filter:/data" 

 webdav: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/dav:/data" 

 fetchmail: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 

 # Webmail 
 webmail: 
   image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}roundcube:${MAILU_VERSION:-1.7} 
   restart: always 
   env_file: mailu.env 
   volumes: 
     - "/mailu/webmail:/data" 
   depends_on: 
     - imap 


networks: 
 default: 
   driver: bridge 
   ipam: 
     driver: default 
     config: 
       - subnet: 192.168.203.0/24

Когда закончите с настройками, запустите mailu с docker compose, как показано ниже, в каталоге mailu

$ sudo docker-compose up -d
Recreating mailu_webdav_1    ... done 
Recreating mailu_fetchmail_1 ... done 
Recreating mailu_front_1     ... done 
Recreating mailu_antivirus_1 ... done 
Recreating mailu_admin_1     ... done 
Recreating mailu_antispam_1  ... done 
Recreating mailu_imap_1      ... done 
Recreating mailu_smtp_1      ... done 
Recreating mailu_webmail_1   ... done

Установите пользователя с правами администратора, выполнив следующую команду:

$ docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD
created admin user
This creates a user called [email protected] with admin rights.

Настройте Mailu Mail Server в Ubuntu 20.04

После этого войдите в веб-портал Mailu, используя свое имя хоста: https://mailu.example.com . Вы должны получить страницу для входа с паролем администратора. После входа в систему вы должны увидеть страницу, как показано ниже. Не забудьте обновить свой пароль на более надежный, нажав « обновить пароль ».

Создание доменов Mailu

Чтобы добавить домен, нажмите домен → новый домен.

Создать пользователей Mailu

Чтобы создать пользователей, щелкните Почтовые домены . В разделе « Управление» щелкните значок почтового ящика, чтобы перейти к списку пользователей. Нажмите на Добавить пользователя.

Mailu Webmail

Для своей установки я решил использовать roundcube для веб-почты. Получите доступ к веб-почте, чтобы начать отправлять электронные письма. Нажмите на веб- почту, которая затем направит вас на страницу входа в roundcube .

Вот и все, что касается настройки почтового сервера Mailu на Ubuntu 20.04. Я надеюсь, что это будет вам полезно.