|
|
www.lissyara.su
—> документация
—> EXIM
—> 4.70
—> часть 54
54. Поддержка DKIM (DOMAINKEYS IDENTIFIED MAIL (почты идентифицированной доменными ключами)) - RFC4871
Начиная с версии 4.70, Exim по умолчанию собирается с поддержкой DKIM. Эта возможность может быть отключена параметром в “Local/Makefile ”:
Реализация DKIM в Exim'e позволяет:
1. Подписывать исходящую почту: эта функция реализована в SMTP транспорте. Она может сосуществовать с другими средствами Exim'a, включая транспортные фильтры.
2. Проверять сигнатуры во входящей почте: это реализовано с помощью дополнительной ACL ( “acl_smtp_dkim ”), которая может быть вызвана несколько раз для одного сообщения; один раз для каждой из подписей.
В обычном стиле Exim'a реализация проверки DKIM не содержит политики по умолчанию. Вместо этого Exim позволяет Вам создать собственную политику из стандартных элементов конфигурирования Exim'a.
Пожалуйста учтите, что проверка DKIM подписей во входящей почте включена по умолчанию в целях логгирования. Для каждой подписи во входящей почте, exim пишет строку лога, в которую помещает наиболее важные детали сигнатуры, и ее статус. Например:
2009-09-09 10:22:28 1MlIRf-0003LU-U3 DKIM: d=facebookmail.com s=q1-2009b
c=relaxed/relaxed a=rsa-sha1 i=@facebookmail.com t=1252484542
[verification succeeded]
| Вы можете пожелать отключить проверку DKIM целиком на внутреннем источнике почты или почтовом релее. Для этого Вы должны установить модификатор поведения ACL - “dkim_disable_verify ”. Модификатор должен быть в RCPT ACL, а также в местах, где вы принимаете почту от почтовых релеев (внутренние узлы или аутентифицированные отправители).
54.1 Подписывание исходящих сообщений
Подписывание реализовано с помощью установки особых опций SMTP транспорта. Эти опции принимают раскрываемые строки в качестве аргументов.
опция
|
Использование
|
Тип
|
Дефолтовое значение
|
dkim_domain
|
smtp
|
string†
|
не задана
|
|
ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Значение - домен, который нужно подписать. Результат раскрытия этой строки помещается в раскрываемую переменную “$dkim_domain ”.
опция
|
Использование
|
Тип
|
Дефолтовое значение
|
dkim_selector
|
smtp
|
string†
|
не задана
|
|
ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Этот параметр содержит ключевую строку выбора. Вы можете использовать раскрываемую строку “$dkim_domain ” для поиска соответствующего селектора. Результата помещается в раскрываемую переменную “$dkim_selector ”, которая может использоваться в опции “$dkim_private_key ” вместе с “$dkim_domain ”.
опция
|
Использование
|
Тип
|
Дефолтовое значение
|
dkim_private_key
|
smtp
|
string†
|
не задана
|
|
ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Он устанавливает используемый частный (private) ключ. Вы можете использовать раскрываемые переменные “$dkim_domain ” и “$dkim_selector ” для определения используемого частного ключа. Результат может быть любым из следующих:
быть корректным частным ключём RSA в ASCII представлении, включая разрывы строк.
начинаться с слэша, в этом случае он обрабатывается как файл содержащий частный ключ.
быть “0 ”, “false ” или пустой строкой, в этом случае сообщение не будет подписано. Этот случай не приводит к ошибке, даже если “dkim_strict ” установлена.
опция
|
Использование
|
Тип
|
Дефолтовое значение
|
dkim_canon
|
smtp
|
string†
|
не задана
|
|
НЕОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Опция задаёт канонический метод при подписывании сообщения. DKIM RFC на текущий момент определяет два метода: “simple ” и “relaxed ”. Если опция не задана, то метод по умолчанию - “relaxed ”. Отметьте: текущая реализация поддерживает использование только одинакового канонического метода для заголовков и тела сообщения.
опция
|
Использование
|
Тип
|
Дефолтовое значение
|
dkim_strict
|
smtp
|
string†
|
не задана
|
|
НЕОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Эта опция определяет как Exim ведёт себя в ситуациях, когда сообщение необходимо подписать, но подписывание неудачно по какой-либо причине. Если результат раскрытия значения: “1 ” или “true ”, exim отложит доставку. В противном случае Exim отправит письмо без подписи. Вы можете использовать раскрываемые переменные “$dkim_domain ” и “$dkim_selector ” тут.
[table]опция,Использование,Тип,Дефолтовое значение,
dkim_sign_headers,smtp,string†,не задана,[/b]
НЕОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. Когда параметр задан, эта опция должна быть раскрыта (или быть заданной) как разделённый
двоеточиями список имён заголовков. Заголовки с этим именем будут включены в подпись. Если не задан, то будут использоваться рекомендованные RFC4871 имена заголовков.
54.2 Верификация DKIM сигнатур во входящей почте
Верификация DKIM сигнатур во входящей почте реализованная с помощью “acl_smtp_dkim ” ACL. По умолчанию, эта ACL вызывается один раз для каждой синтаксически (!) правильной подписи во входящем значении.
Для оценки подписи в ACL большое число раскрываемых переменных содержится в статусе подписи и его детали, устанавливаются во время выполнения ACL.
Вызов ACL только для существующих подписей недостаточно, чтобы построить более продвинутую политику. По этой причине, глобальная опция “dkim_verify_signers ”, и глобальная раскрываемая переменная “$dkim_signers ” существуют.
Глобальная опция dkim_verify_signers может быть задана разделённым двоеточиями списком DKIM доменов или тождеств для которых ACL “acl_smtp_dkim ” вызывается. Эта ACL раскрывается, когда сообщение было получено. На этом этапе, раскрытие переменной “$dkim_signers ” уже содержит разделённый двоеточиями список подписанных доменов и тождеств для сообщения. Когда “dkim_verify_signers ” не задана в главной конфигурации, используется значение по умолчанию:
dkim_verify_signers = $dkim_signers
| Это проводит к поведению по умолчанию - вызову “acl_smtp_dkim ” для каждой DKIM подписи в сообщении. Текущие DKIM верификаторы могут желать явного вызова ACL для известных доменов или тождеств. Это может быть достигнуто следующим образом:
dkim_verify_signers = paypal.com:ebay.com:$dkim_signers
| Это приведёт к тому, что acl_smtp_dkim ” всегда будет вызван для “paypal.com ” и “ebay.com ”, плюс для всех доменов и тождеств, которые имеют подписи в сообщении. Вы также можете проявлять творчество в построении вашей политики. Например:
dkim_verify_signers = $sender_address_domain:$dkim_signers
| Если домен или его тождество указан несколько раз в раскрытом значении “dkim_verify_signers ”, ACL вызывается только раз для домена или тождества.
Внутри “acl_smtp_dkim ”, следующие раскрываемые переменные доступны (с наиболее до наименее важной):
“$dkim_cur_signer ”
Подписавшийся, значение вычисляется при запуска ACL. Это может быть домен или его тождество. Это один из элементов списка с раскрытием главной опции “dkim_verify_signers ” (см. выше).
“$dkim_verify_status ”
Строка описывающая общий статус подписи. Одно из:
* “none ”: Сообщение не содержит подписи для текущего домена или его тождества (как это отображено “$dkim_cur_signer ”)
* “invalid ”: Подпись не может быть проверена из-за ошибок при обработке. Дополнительные детали содержатся в “$dkim_verify_reason ”.
* “fail ”: Проверка подписи завершилась ошибкой. Дополнительная информация содержится в “$dkim_verify_reason ”.
* “pass ”: Подпись прошла проверку и является действующей.
“$dkim_verify_reason ”
Строка даёт немного больше деталей, когда “$dkim_verify_status ” “fail ” или “invalid ”. Одно из:
* “pubkey_unavailable ” (когда “$dkim_verify_status ”= “invalid ”): Публичный ключ домена не может быть получен. Это может быть временной проблемой.
* “pubkey_syntax ” (когда “$dkim_verify_status ”= “invalid ”): Публичный ключ домена синтаксически некорректен.
* “bodyhash_mismatch ” (когда “$dkim_verify_status ”= “fail ”): Вычисленный хэш тела не соответствует указанному в заголовке подписи. Это означает, что тело сообщения было модифицировано при передаче.
* “signature_incorrect ” (когда “$dkim_verify_status ”= “fail ”): Подпись не может быть проверена. Возможно, чтобы заголовки были модифицированы, перезаписаны или изменены путём, который несовместим с методикой проверки используемой для DKIM. Это, конечно, также может означать, что подпись была подделана.
“$dkim_domain ”
Подписанный домен. ВАЖНО: Эта переменная заполняется только, если есть актуальная подпись в сообщении для текущего домена или удостоверения личности (как это отображено в “$dkim_cur_signer ”).
“$dkim_identity ”
Подписанная личность, если таковая имеется. ВАЖНО: Эта переменная заполняется только, если есть актуальная подпись в сообщении для текущего домена или удостоверения личности (как это отображено “$dkim_cur_signer ”).
“$dkim_selector ”
Ключевая строка выбора.
“$dkim_algo ”
Используемый алгоритм: “rsa-sha1 ” или “rsa-sha256 ”.
“$dkim_canon_body ”
Метод канонизации тела: 'relax' или 'simple'.
“$dkim_canon_headers ”
Метод канонизации заголовка: “relax ” или “simple ”.
“$dkim_copiedheaders ”
Транскрипция заголовков и их значений, которые включены в подпись (скопировано с “z= ” тэга подписи).
“$dkim_bodylength ”
Количество подписанных байт тела. Если равно нулю - тело не подписано. Если подписавший не установил лимит, то возвращается “9999999999999 ”. Это гарантирует, что переменная всегда раскрывается в целое число.
“$dkim_created ”
Штамп времени Unix отражающий дату и время, когда была создана подпись. “0 ” возвращается, если отправителем не задано другое значение.
“$dkim_expires ”
Штамп времени Unix, который отображает дату и времени, после которой подписавший желает, чтобы подпись рассматривалась как “просроченная ” ( “expired ”). Когда это не задано подписавшим, возвращается “9999999999999 ”. Что делает возможным сравнение целых чисел с значением этой переменной.
“$dkim_headernames ”
Разделённый двоеточиями список имён заголовков включённых в подпись.
“$dkim_key_testing ”
“1 ”, если ключ (доменный - прим. переводчика) имеет установленный флаг " “testing ”, “0 ” - в противном случае.
“$dkim_key_nosubdomaining ”
“1 ”, если ключ запрещает субдоменны, “0 ” - если разрешает.
“$dkim_key_srvtype ”
Значение тэга “тип сервиса ” (тэг “s= ”) ключа. По умолчанию “* ”, если не указано в ключе.
“$dkim_key_granularity ”
Степень детализации ключа ( “key granularity ”) (тэг “g= ”) ключа. По умолчанию - “* ”, если не указано в ключе.
“$dkim_key_notes ”
Примечания из тела ключа (тэг “n= ”)
Кроме того, предусмотрены два ACL условия:
“dkim_signers ”
Условие ACL, которое проверяет, список доменов или их тождеств (разделяются двоеточиями) на соответствие домену или его тождеству, который ACL проверяет сейчас (отражено в “$dkim_cur_signer ”). Это обычно используется для ограничить действие ACL группой доменов или их тождеств, например:
# Warn when message apparently from GMail has no signature at all
warn log_message = GMail sender without DKIM signature
sender_domains = gmail.com
dkim_signers = gmail.com
dkim_status = none
|
“dkim_status ”
Условие ACL, которое проверяет, список разделённых двоеточиями результатов проверки DKIM с текущим результатом проверки. Обычно это используется для того чтобы ограничить дейсвие ACL определённым списком результатов проверки, например:
deny message = Message from Paypal with invalid or missing signature
sender_domains = paypal.com:paypal.de
dkim_signers = paypal.com:paypal.de
dkim_status = none:invalid:fail
| Возможные ключевые слова статуса: “none ”, “invalid ”, “fail ” и “pass ”.
Пожалуйста, обратитесь к документации о раскрываемой переменной “$dkim_verify_status ” выше, для более детальной информации о том, что они означают.
=============
translated by Gerk
verifying by lissyara
Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
|