Власний емейл
Почалося з того, що вирішив перейти на емейл з нормальними практиками приватності.
У ході пошуків перебрав усі рекомендації від 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);
Отже:
- 105 для дефолту (дає ґайд від Linode)
- 145 для b64
- 213 для hex
І наостанок поставте в файлі /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
Післяслово
Сутність технологій електронної пошти — федералізованість. Кожен може запустити власний сервер і відравляти повідомлення до скриньок на інших.
Як і у випадку зі світовою павутиною, всі мейл-сервери не мають належати кільком ІТ-гігантам.Власний емейл — це маленький крок до децентралізованого Інтернету, яким він і задумувався, і великий крок для своєї цифрової незалежності й самостійності.