Власний емейл

Почалося з того, що вирішив перейти на емейл з нормальними практиками приватності.

У ході пошуків перебрав усі рекомендації від FSF, добре з'ясував технології PGP і роботу зі GnuPG, відкрив для себе Linode, запустив там власний мейл-сервер на шифрованому хості, розібрався з деякими деталями мейл-технології на кшталт spf і загалом дізнався багато цікавого.

Сторонні мейл-сервіси як один виявилися неприйнятними для моїх скромних (!) запитів, тож зрештою я довів мейл-сервер на Linode до стану production-ready і лишився тим дуже задоволений.

Остаточна збірка

Основні інструкції взяв з ґайду від Linode.

0. Nanode: Debian 11 з диском, зашифрованим LUKS'ом.
1. MariaDB для сховища.
2. Postfix як базовий MTA.
3. Dovecot для IMAP і LMTP.
4. Spamassassin од спаму.
5. Зовнішній SMTP від Mailjet, чиї параметри прописую в налаштуваннях самого емейл-клієнта.
6. Клієнти — Thunderbird на GNU/Linux і K-8 на Android.

Якщо не рахувати видатки на доменне ім'я і DNS, котрі вже давно маю, ціна всього серверу — $5 на місяць.

Для порівняти: преміум Protonmail Plus, котрий дає змогу прив'язати свій домен, коштує стільки ж, не даючи й близько такої свободи конфігурації та й, чесно кажучи, приватності (зберігати свій приватний PGP-ключ на їхньому сервері? ні, дякую).

Зауваги

Видатки зовнішнього SMTP

П.5 збірки має певну незручність, бо треба щоразу до нового клієнта вводити абракадабру від Mailjet (замість свого пароля).

Аби це виправити, варто прив'язати Mailjet прямо до Postfix (Mailjet надає детальну інструкцію).

Однак Linode має певні обмеження для вихідних портів SMTP для нових акаунтів, то мушу почекати, перш ніж це пробувати. Їхня підтримка сказала, щоби надсилав запит, коли матиму 3 місяці сплат.

Проблема зі спеціальними символами в паролі

Мені вдалося встановити все без проблем за наведеною за посиланням вище інструкцією.

Єдине, що мусив з'ясувати сам: шифрування паролів од Dovecot не підтримує спеціальних знаків стандартного UTF-8 за замовченням.

Розв'язок доволі тривіальний: користувати кодуванням base64 або hex.

Коли генеруєте шифр пароля, то додайте розширення кодування.

Для base64:
sudo doveadm pw -s SHA512-CRYPT.base64 -p 'p@$$w0rd' -r 5000` # або .b64

Для hex:
sudo doveadm pw -s SHA512-CRYPT.hex -p 'p@$$w0rd' -r 5000

Важливо

Якщо в паролі є знак $, доконче використовуйте одинарні лапки '.

Швидко перевірити коректність шифрування можна тією ж командою Dovecot'а, наприклад, для b64:
sudo dovecot pw -t {SHA512-CRYPT.B64}ВАШ_ШИФР

Перш ніж закидати нового шифра до бази даних, пам'ятайте збільшити допустиму кількість символів у відповідній клітинці. Наприклад, для b64:
ALTER TABLE virtual_users MODIFY password VARCHAR(145);

Отже:

І наостанок поставте в файлі /etc/dovecot/dovecot-sql.conf.ext параметр default_pass_scheme відповідно до вашого кодування: SHA512-CRYPT.b64 або SHA512-CRYPT.hex.

Сподіваюся ця інфа зекономить вам пів дня зневадження.

Дозволи для Spamassassin

Ще одна деталь, випущена ґайдом Linode: користувач spamd потребуватиме доступу до деяких конфігураційних файлів Postfix. Інакше скановані Spamassassin'ом вхідні емейли smapd не зможе доставити — і ті висітимуть у «черзі».

Відтак потрібно дозволити читати потрібні конфігураційні файли користувачам з не-root груп:
sudo chmod 755 /etc/postfix
sudo chmod 644 /etc/postfix/main.cf
sudo chmod 644 /etc/postfix/dynamicmaps.cf
sudo chmod 755 /etc/postfix/dynamicmaps.cf.d # опціонально, аби уникнути попереджень у логах

Результат має бути таким:
$ sudo ls -lad /etc/postfix /etc/postfix/main.cf /etc/postfix/dynamicmaps.cf /etc/postfix/dynamicmaps.cf.d
drwxr-xr-x 5 root root 4096 Nov 21 18:45 /etc/postfix
-rw-r--r-- 1 root root 99 Nov 19 02:06 /etc/postfix/dynamicmaps.cf
drwxr-xr-x 2 root root 4096 May 4 2021 /etc/postfix/dynamicmaps.cf.d
-rw-r--r-- 1 root root 3537 Nov 19 02:31 /etc/postfix/main.cf

Коли що, глядіти недоставлені емейли і причини затримки:
sudo mailq або sudo postqueue -p

А форсувати доставку (скажімо, коли вже поправили дозволи конф. файлів):
sudo postqueue -f

Післяслово

Сутність технологій електронної пошти — федералізованість. Кожен може запустити власний сервер і відравляти повідомлення до скриньок на інших.

Як і у випадку зі світовою павутиною, всі мейл-сервери не мають належати кільком ІТ-гігантам.

Власний емейл — це маленький крок до децентралізованого Інтернету, яким він і задумувався, і великий крок для своєї цифрової незалежності й самостійності.