Руководство отводит этому отдельный раздел, и не зря: в файлах конфигурации PowerMTA лежат пароли подачи, ключи API и закрытые ключи подписи DKIM — открытым текстом. Иначе MTA их не примет.
Основных файлов два: config с самой настройкой и config-defaults с умолчаниями. Но защищать надо не только их: главный файл может подключать другие строкой include, и руководство называет их прямо — «в них тоже бывает чувствительное», особенно там, где лежат ключи подписи.
Команды даны буквально: владелец pmta:pmta, права 640. Владелец важен не меньше прав: MTA работает от пользователя pmta и должен свою конфигурацию прочитать. Файл с правами 640 и владельцем root не прочитает никто, кроме root, — включая сам MTA.
Секреты можно вынести из файла. Руководство предлагает хранить ключи подписи в Vault и ссылаться на них из конфигурации (vault-support); тогда в файле остаётся ссылка, а не сам ключ.
Оператору делать нечего: файлы кладёт Хаб, и права на них — его ответственность, а не операторская.
⚠️ Одна тонкость в нашем коде. Смена владельца выполняется с заглушённой ошибкой, а права ставятся следом безусловно. Если на узле нет пользователя pmta — например, MTA ещё не установлен, — файл получит права 640 и владельца root, и MTA его потом не прочитает. Проявится это не при доставке, а при первом запуске.
Что должно получиться на узле:
| Путь | Владелец | Права |
|---|---|---|
| главный файл конфигурации | pmta:pmta | 640 |
| файл с блоками адресов | pmta:pmta | 640 |
| каталог ключей подписи | владелец каталога MTA | 700 |
| закрытые ключи внутри | тот же | 600 |
| файл с токеном телеметрии | pmta:pmta | 600 |
Права 640 — это минимум из руководства, а не потолок. Всё, что читает только сам MTA и не нужно его группе, спокойно живёт с 600. Разница существенна там, где на узле есть другие службы в той же группе.
На Windows порядок другой: владельцем ставится системная учётная запись, а группе пользователей чтение и запись запрещаются.
# права ставятся всей связке, а не одному файлу chown pmta:pmta /etc/pmta/config /etc/pmta/config-defaults chmod 640 /etc/pmta/config /etc/pmta/config-defaults chown pmta:pmta /etc/pmta/virtualhost.txt && chmod 640 /etc/pmta/virtualhost.txtchmod 700 /etc/pmta/dkim && chmod 600 /etc/pmta/dkim/*
что делают не так и чем это кончается3 ошибки▶
§ 1.6.3
§ 1.6.3
§ 1.6.3
2 связи
Ограничить, кто вообще достаёт до узлаЗдесь доступ по сети, там права на файлы. Нужны оба или ни одного. § 1.6.3Файл лицензииКлючевой материал в каталоге конфигурации — права на него такие же. § 1.6.3volume-audit-api-keyGlobalКлюч лежит в конфигурации открытым текстом; защищают его права на файл. § 1.6.3includeGlobalПодключаемые файлы — часть конфигурации, и права на них должны быть такими же. § 1.6.3http-api-keyGlobalКлюч лежит в файле открытым текстом, поэтому права на файл значат столько же, сколько сам ключ. § 1.6.3log-file-world-readableGlobalТот же вопрос о правах, что и у файла конфигурации: журнал с подробностями хранит не меньше. § 1.6.3
ls -l /etc/pmta/config /etc/pmta/config-defaults /etc/pmta/virtualhost.txt ls -ld /etc/pmta/dkim && ls -l /etc/pmta/dkim/ pmta test config
3 статьи
◇Кому разрешено сдавать почту и для кого её приниматьИз коробки узел принимает подачу только с самой машины; два разных вопроса — «кто может слать через нас» и «на чьи адреса мы принимаем» — решаются разными директивами.◇Группа, дающая право управлятьЧленство в группе pmta даёт непривилегированному пользователю право звать команды узла и пользоваться подачей.◇Как узел выбирает источник и складывает его настройкиСоединение попадает под все блоки источника, чьи адреса его накрывают, и действуют они слитно — узкий перекрывает широкий; именованные блоки подключаются только по прямой ссылке.