Безопасность узла
записей в сценарии: 109
always-allow-relayingGlobalкритичноХаб задаёт самДирективаТо, ради чего узел вообще отправляет почту, — и то, что делает его открытым релеем, если выдано не тому источнику.http-accessGlobalкритичноХаб задаёт самДирективаСписок адресов и уровней доступа к управляющему интерфейсу; по умолчанию закрыт всем.http-api-keyGlobalкритичноХаб задаёт самДирективаКлюч в заголовке X-API-Key даёт права администратора с любого адреса; строка повторяется.postmasterGlobalкритичноДирективаОдна из двух настроек, без которых MTA не работает: сюда сторож шлёт отчёты о падениях и об истечении лицензии, а также пересылается почта на служебные адреса.process-x-dkim-key<source>критичноДирективаРазрешение источнику: с ним MTA берёт приватный ключ прямо из заголовка X-DKIM-Key, подписывает им и снимает заголовок; без него ключ уезжает получателю.retain-x-dkim-key<source>критичноДирективаЕдинственная директива блока источника, у которой руководство пишет предупреждение жирным: с true приватный ключ уезжает получателю.run-as-rootGlobalкритичноДирективаДля работы от непривилегированного пользователя должно быть false; смена требует перезапуска.smtp-listenerGlobalкритичноХаб задаёт самДирективаЕсли не объявлен ни один приёмник, узел молча поднимает его на 0.0.0.0:25.smtp-service<source>критичноХаб задаёт самДирективаВыключение закрывает подачу для источника, не трогая остальных.access-token<vault>ДирективаТокен авторизации Vault; создаётся вручную на стороне хранилища и нужен почти всему, что через хранилище работает.allow-unencrypted-plain-auth<source>Хаб задаёт самДирективаМеханизм PLAIN передаёт пароль почти открытым текстом; строка решает, допускать ли его без шифрования. Умолчание — не допускать.allowed-sender-lists<source>ДирективаНазывает списки адресов, против которых сверяются MAIL FROM и адрес отправителя из письма; не прошедшее письмо отвергается на подаче.authentication-method<smtp-user>ДирективаПять способов — пароль, свой сертификат, сертификат от доверенного центра, системная учётная запись Linux и LDAP через хранилище; умолчание — пароль.check-spf-inbound<source>ДирективаВключает проверку на входе и добавляет к письму заголовок с её результатом.enable-signalsGlobalДирективаОхват выгрузки с тремя уровнями наследования; сюда же дописываются субсчёт, область отслеживания или имя списка правил.hashed-address<address-list>ДирективаАдрес приводится к нижнему регистру, хешируется SHA256 и кодируется BASE64URL; MTA хеширует проверяемый адрес и сравнивает хеши.http-csrf-protectionGlobalДирективаЗапрещает менять состояние узла запросом GET и требует у POST ключ или признак сессии; включена по умолчанию.includeGlobalХаб задаёт самДирективаЧитает дополнительный файл — по пути, по маске или по адресу HTTP; содержимое обрабатывается так, будто написано на этом месте.password<smtp-user>Хаб задаёт самДирективаЗадаёт пароль для парольного входа; хранится в конфигурации открытым текстом, потому что иначе не поддержать все механизмы SASL.privacy-policy<acct-file>ДирективаЗаменяет левую часть адреса заглушкой или хешем; умолчание — оставлять как есть.privacy-policy<signals>ДирективаЗаменяет левую часть адреса получателя односторонним хешем SHA-1; по умолчанию отправляется как есть.require-auth<source>Хаб задаёт самДирективаС true MTA не принимает от источника ни одного письма, пока отправитель не вошёл — включая подачу с самой машины.require-starttls-before-auth<source>ДирективаС этой строкой клиент обязан выполнить STARTTLS до команды авторизации; умолчание — не требовать, и тогда пароль может уйти открытым текстом.smtp-max-auth-failure-rate<source>Хаб задаёт самДирективаПосле названного числа неудачных попыток MTA перестаёт принимать вход с источника до конца периода; умолчание не ограничивает ничего.smtp-server-tls-certificateGlobalХаб задаёт самДирективаСертификат X.509 в формате PEM — из файла или из хранилища секретов; пароль к закрытому ключу необязателен и тоже может лежать в хранилище.source<smtp-listener>ДирективаПривязывает приёмник к именованному блоку источника, отменяя для его соединений обычный подбор по адресу.tls-certificate<smtp-listener>ДирективаСертификат и пароль к ключу для соединений именно этого адреса и порта; наследуется от сертификата узла.use-inbound-proxy<smtp-listener>ДирективаТребует заголовок PROXY в начале соединения и берёт настоящий адрес клиента из него; по умолчанию выключено.allow-auth<source>ДирективаВыключатель самой возможности входа: с no MTA не объявляет AUTH и не принимает её, и войти под логином становится нечем.await-slot<smtp-listener>ДирективаРешает для одного приёмника, ждать ли освободившийся слот или отвечать отказом; общая для узла строка задаёт то же для всех остальных.cache-ttl<vault>ДирективаВремя, после которого полученный из Vault ключ запрашивается заново; отсутствие ключа кэшируется на час всегда, независимо от этой строки.check-arc-inbound<source>ДирективаТа же наблюдательная проверка, что и для обычной подписи; отказов у неё тоже нет.check-dkim-inbound<source>ДирективаТолько наблюдение: отказов по результату проверки подписи у MTA нет вовсе.hide-message-source<source>ДирективаУбирает из добавляемого заголовка Received имя и адрес того, кто подал письмо; сам заголовок остаётся.http-extra-headers<include-config>ДирективаНазывает файл, строки которого узел добавит как заголовки HTTP-запроса при загрузке конфигурации.http-redirect-to-httpsGlobalХаб задаёт самДирективаСо значением true монитор принимает только https и перенаправляет обычные соединения; умолчание true с версии 5.0.http-tls-min-versionGlobalДирективаСамая старая версия протокола, которую согласует управляющий интерфейс узла; по умолчанию TLS 1.2.immediate-tls<smtp-listener>ДирективаВместо STARTTLS узел начинает шифрование сразу, как только соединение принято; это отдельный способ подачи, обычно на порту 465.inbound-proxy-timeout<smtp-listener>ДирективаПредел ожидания заголовка PROXY в начале соединения; умолчание пять секунд, ноль означает «ждать всегда».include<source>ДирективаТа же директива, записанная внутри блока источника — подключённые строки становятся его настройками.include<smtp-pattern-list>ДирективаТа же директива, записанная внутри списка разбора ответов SMTP — подключённые строки становятся его правилами.log-file-world-readableGlobalДирективаДаёт всем пользователям узла право читать журналы MTA; по умолчанию нет.server-url<vault>ДирективаИмя или адрес сервера Vault и, при необходимости, порт; схема http или https.tls-ca-file<smtp-user>ДирективаОдин или несколько файлов с цепочками; подойдёт любой клиентский сертификат, сходящийся хотя бы к одной из них.tls-certificate<smtp-user>ДирективаФайл сертификата, который подающий обязан предъявить; работает при способе проверки «сертификат» и требует шифрованного соединения.tls-certificate<transmissions-api-listener>ДирективаФайл с сертификатом X.509 и закрытым ключом для входа HTTP API; может браться из хранилища секретов.tls-certificate-san-or-cn<smtp-user>ДирективаПолное доменное имя, которому обязано соответствовать SAN или CN клиентского сертификата; работает поверх проверки цепочки.tls-min-version<smtp-listener>ДирективаСамая старая версия протокола, принимаемая на этом адресе и порту; умолчание — TLS 1.2, как и у узла.tls-min-version<transmissions-api-listener>ДирективаСамая старая версия протокола, принимаемая на этом входе HTTP API; по умолчанию TLS 1.2.use-inbound-proxy<transmissions-api-listener>ДирективаТребует заголовок PROXY в начале соединения и берёт настоящий адрес клиента из него; по умолчанию выключено.inbound-proxy-timeout<transmissions-api-listener>ДирективаПредел ожидания заголовка PROXY в начале соединения; умолчание пять секунд, ноль означает «ждать всегда».log-inbound-proxy<smtp-listener>ДирективаПишет в журнал полученный заголовок PROXY; работает только при включённом приёме такого заголовка.log-inbound-proxy<transmissions-api-listener>ДирективаПишет в журнал полученный заголовок PROXY; работает только при включённом приёме такого заголовка.tls-ca-file<smtp-listener>ДирективаСписок корневых сертификатов для проверки клиентов на этом входе; наследования от списка узла руководство не обещает.tls-ca-file<transmissions-api-listener>ДирективаПуть к файлу PEM с сертификатами центров, по которым вход проверяет сертификат подающего клиента.tls-cipher-server-preference<smtp-listener>ДирективаС этой строкой шифр выбирается по нашему порядку, а не по порядку клиента; умолчание — по клиенту.tls-cipher-server-preference<transmissions-api-listener>ДирективаПереключатель: брать шифр по порядку списка узла, а не по предпочтению клиента; по умолчанию выключен.tls-ciphers<smtp-listener>ДирективаСписок допустимых шифров в записи OpenSSL для соединений этого входа; действует по TLS 1.2 включительно.tls-ciphers<transmissions-api-listener>ДирективаСписок допустимых шифров в записи OpenSSL для входа HTTP API; действует по TLS 1.2 включительно.tls-max-version<smtp-listener>ДирективаСамая новая версия протокола, принимаемая на этом адресе и порту; по умолчанию не ограничена.tls-max-version<transmissions-api-listener>ДирективаСамая новая версия протокола, принимаемая на этом входе HTTP API; по умолчанию не ограничена.tls-v1.3-ciphersuites<smtp-listener>ДирективаОтдельный список для версии 1.3 на этом входе; умолчание перечисляет пять современных наборов.tls-v1.3-ciphersuites<transmissions-api-listener>ДирективаСписок наборов TLS 1.3 через двоеточие для входа HTTP API; по умолчанию все пять.http-default-max-itemsGlobalДирективаДлина списков «Топ очередей», «Топ доменов», «Топ адресов отправки», «Топ заданий»; умолчание 10.http-default-sort-orderGlobalДирективаПорядок строк в списках «Топ» — по числу получателей, по имени или по объёму; умолчание по получателям.http-log-dataGlobalДирективаБолее подробная запись, чем журнал запросов; по умолчанию выключена.http-log-requestsGlobalДирективаПереключатель записи обращений к управляющему интерфейсу; по умолчанию выключен.http-log-tlsGlobalДирективаПереключатель подробной записи согласования шифрования в журнал монитора; по умолчанию выключен.http-mgmt-sourceGlobalустарелаДирективаЗаменена директивой http-access, которая делает то же самое и вдобавок различает уровни доступа.http-strict-transport-security-max-ageGlobalДирективаЗначение max-age в заголовке Strict-Transport-Security ответов монитора; умолчание 0 — то есть не помнить.http-tls-allow-sslv3GlobalустарелаДирективаPowerMTA больше не поддерживает SSLv3; строка сохранена только ради совместимости конфигураций.http-tls-allow-tlsv1GlobalустарелаДирективаОтдельный переключатель для одной версии протокола у управляющего интерфейса; объявлен устаревшим в PowerMTA 5.5 в пользу пары границ.http-tls-allow-tlsv1.1GlobalустарелаДирективаОтдельный переключатель для одной версии протокола у управляющего интерфейса; объявлен устаревшим в PowerMTA 5.5 в пользу пары границ.http-tls-allow-tlsv1.2GlobalустарелаДирективаОтдельный переключатель для одной версии протокола у управляющего интерфейса; объявлен устаревшим в PowerMTA 5.5 в пользу пары границ.http-tls-allow-tlsv1.3GlobalустарелаДирективаОтдельный переключатель для одной версии протокола у управляющего интерфейса; объявлен устаревшим в PowerMTA 5.5 в пользу пары границ.http-tls-ca-fileGlobalДирективаПуть к файлу PEM с сертификатами центров, по которым монитор проверяет сертификат пришедшего клиента.http-tls-cipher-server-preferenceGlobalДирективаПереключатель: брать шифр по порядку списка узла, а не по предпочтению клиента; по умолчанию выключен.http-tls-ciphersGlobalДирективаСписок допустимых шифров в записи OpenSSL для управляющего интерфейса; действует по TLS 1.2 включительно.http-tls-max-versionGlobalДирективаСамая новая версия протокола, которую согласует управляющий интерфейс; по умолчанию не ограничена.http-tls-request-client-certificateGlobalДирективаПереключатель запроса клиентского сертификата в рукопожатии; включён по умолчанию.http-tls-v1.3-ciphersuitesGlobalДирективаСписок наборов TLS 1.3 через двоеточие для управляющего интерфейса; по умолчанию все пять.no-http-mgmt-sourceGlobalустарелаДирективаОтрицательная половина прежней пары; заменена строкой http-access с уровнем none.upload-url<signals>ДирективаЭндпоинт приёма событий; по умолчанию адрес службы вендора.Как узел выбирает источник и складывает его настройкикритичноМеханизмСоединение попадает под все блоки источника, чьи адреса его накрывают, и действуют они слитно — узкий перекрывает широкий; именованные блоки подключаются только по прямой ссылке.Как узел решает, впустить ли запрос по HTTPкритичноМеханизмДва способа представиться — уровень доступа по адресу и ключ; ключ сильнее и работает с любого адреса.Кому разрешено сдавать почту и для кого её приниматькритичноМеханизмИз коробки узел принимает подачу только с самой машины; два разных вопроса — «кто может слать через нас» и «на чьи адреса мы принимаем» — решаются разными директивами.Заголовки, которыми отправитель управляет доставкойкритичноМеханизмШесть служебных заголовков позволяют подающей стороне выбрать поток, пометить письмо заданием, задать настройки и ключ подписи, идентификатор конверта и расписание; каждый разрешается отдельно и по источникам.Что нужно обвязке подачиМеханизмЧто должно быть на стороне подающего, чтобы обвязка заработала: библиотека, права и членство в группе.Логины подачи, пароли открытым текстом и настройки на каждогоМеханизмОтправитель входит одним из трёх способов; каждый логин — блок конфигурации с паролем в открытом виде, и именованный источник этого логина перекрывает то, что дал бы его адрес.Подача — сетевая служба, и в неё можно войтиМеханизмПодающее приложение соединяется с узлом по имени или адресу и порту — либо без входа, либо с именем и паролем, которые узел настроен принимать.Аналитика вендора — и что уходит с узла ради неёМеханизмПлатная служба, принимающая данные учёта узла и возвращающая аналитику, оценку здоровья и отчёт по спам-ловушкам; включается по областям и выключена, пока нет её блока.Что защищает веб-монитор и чем эта защита не являетсяМеханизмТри разные защиты — список адресов, шифрование и совет не выставлять монитор в интернет; учётных записей нет ни одной.Подача письма записью файла в каталогМеханизмПисьмо кладётся файлом в каталог, а конверт передаётся особыми заголовками в его начале; MTA забирает файл в спул и доставляет.Поток следует за адресом, на который вы подключилисьМеханизмИменованный блок источника подключается к слушателю и действует на всех, кто соединился с этим адресом и портом, — значит, отправитель выбирает поток выбором точки подключения.Заголовок балансировщика на входеМеханизмУзел читает заголовок PROXY в начале входящего соединения и считает источником адрес из него; работает у обоих видов входа.Секреты во внешнем хранилищеМеханизмКлючи подписи можно держать в HashiCorp Vault: в конфигурации остаётся путь, MTA берёт ключ по HTTP и держит в памяти, не записывая на диск.Ключ подписи, пришедший вместе с письмомМеханизмПриватный ключ передаётся заголовком письма; узел подписывает им и удаляет заголовок перед отправкой.Группа, дающая право управлятьМеханизмЧленство в группе pmta даёт непривилегированному пользователю право звать команды узла и пользоваться подачей.Отдача показателей по SNMPМеханизмУзел умеет отдавать свои показатели по SNMP — второй способ наблюдения помимо веб-монитора.Ограничить, кто вообще достаёт до узлаПроцедураПять шагов наименьших привилегий: право сдавать почту — только логинам, приём — с узкого диапазона, монитор — тоже, и работа без прав администратора системы.Закрыть права на файлы конфигурацииПроцедураВ конфигурации лежат пароли, ключи API и закрытые ключи подписи — руководство даёт для них конкретные команды, и подключённые файлы требуют того же.Работа без прав rootПроцедураПеревод MTA на работу от отдельного пользователя: сама строка, порты выше тысячи двадцати четырёх, поднятые пределы на файлы и процессы и смена владельца пяти каталогов.Включение режима FIPSПроцедураПеревод узла на проверенный набор криптографических алгоритмов. Часть привычных настроек шифрования при этом становится недоступной.<source>критичноБлок конфигурацииПравила для того, кто подключается для подачи: разрешён ли релей, какие управляющие заголовки слушать, какие пределы и нужна ли авторизация.show registrationКомандаПечатает, зарегистрирован ли узел в консоли вендора.КонсольЭкран монитораВыполняет команды консоли узла прямо из браузера; ссылка на страницу есть, только когда служба работает.КонфигурацияЭкран монитораПоказывает главный и подключённые файлы конфигурации и позволяет их править; сохранение само перечитывает конфигурацию.Начальная страница монитораЭкран монитораНачальная страница веб-монитора: сведения об установке, верхние домены очереди и переходы на остальные экраны.Главный файл конфигурации узлакритичноФайл/etc/pmta/config — обычный текстовый файл в UTF-8, читается при старте и по перезагрузке настроек; хранит пароли и ключи подписи открытым текстом.