Базы данных плохи для хранения почты. Однако, иногда вам не нужен быстрый почтовый сервер и вы просто хотите бэкапировать почту, используя уже настроенную базу данных. В этом цикле статей мы настроим свой почтовый сервер, используя DBMail, Postfix и SASL.
- DBMail это проект с открытым кодом, который может использовать реляционную базу данных в качестве бэкенда для хранения пользователей и писем. В него включены демоны IMAP и POP3 со встроенной поддержкой шифрования данных.
- Postfix это почтовый сервер (MTA) с демоном SMTP, который используется для отправки и приёма писем.
- SASL простой уровень аутентификации и безопасности, позволяет авторизовывать соединение до Postfix, используя ваши логин и пароль.
Part 1. Введение.
Part 2. DBMail.
Part 3. Postfix.
Part 4. SASL.
Part 5. SPF. DKIM. DMARC. Очистка заголовков. DNS PTR.
Домен, DNS
Для начала, вам необходимо зарегистрировать свой домен или использовать существующий. В этой статье я буду использовать домен somewhere-in-the.space зарегистрированный в NameCheap.
После этого, вам необходимо создать A, AAAA(если есть IPv6) и MX записи в вашем DNS, или в DNS регистратора.
mail.somewhere-in-the.space. IN A your-IPv4 mail.somewhere-in-the.space. IN AAAA your-IPv6 somewhere-in-the.space. IN MX 1 mail.somewhere-in-the.space.
PostgreSQL
Добавьте репозиторий и установите PostgreSQL.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)"-pgdg main | tee /etc/apt/sources.list.d/pgdg.list apt update apt install postgresql-11
Включите запуск PostgreSQL при старте системы.
update-rc.d postgresql enable
Проверьте, что PostgreSQL работает.
su - postgres -c "psql -c 'select version();'"
TLS Сертификаты
Чтобы сделать соединение до сервера безопасным, нам потребуются TLS сертификат.
Вы можете получить его бесплатно используя Let’s Encrypt.
Сначала установите certbot.
apt install certbot
Затем, отредактируйте конфиг certbot /etc/letsencrypt/cli.ini.
max-log-backups = 0 authenticator = standalone preferred-challenges = http #change address to your public one on gmail, aol, etc. email = your@mail.com agree-tos = True no-eff-email = True manual-public-ip-logging-ok = True #change permissions to appropriate ones post-hook = /bin/chmod -R 640 /etc/letsencrypt/archive/ > /dev/null 2>&1
Получите сертификат.
certbot certonly -d mail.somewhere-in-the.space
Добавьте задачу в cron, чтобы обновлять сертификат каждую неделю.
crontab -e * * * * 0 /usr/bin/certbot renew --force-renew
Теперь приступим к настройке DBMail.