Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
man
EXIM
  4.62
  4.70
  часть 1
  часть 2
  часть 3
  часть 4
  часть 5
  часть 6
  часть 7
  часть 8
  часть 9
  часть 10
  часть 11
  часть 12
  часть 13
  часть 14
  часть 15
  часть 16
  часть 17
  часть 18
  часть 19
  часть 20
  часть 21
  часть 22
  часть 23
  часть 24
  часть 25
  часть 26
  часть 27
  часть 28
  часть 29
  часть 30
  часть 31
  часть 32
  часть 33
  часть 34
  часть 35
  часть 36
  часть 37
  часть 38
  часть 39
  часть 40
  часть 41
  часть 42
  часть 43
  часть 44
  часть 45
  часть 46
  часть 47
  часть 48
  часть 49
  часть 50
  часть 51
  часть 52
  часть 53
  часть 54
  часть 55
  filter facility


www.lissyara.su —> документация —> EXIM —> 4.70 —> часть 54

54. Поддержка DKIM (DOMAINKEYS IDENTIFIED MAIL (почты идентифицированной доменными ключами)) - RFC4871


    Начиная с версии 4.70, Exim по умолчанию собирается с поддержкой DKIM. Эта возможность может быть отключена параметром в Local/Makefile:
DISABLE_DKIM=yes



   Реализация 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.



  • Хостинг HOST-FOOD

    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&quota

    Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 18 чел.
    За последние 30 мин было: 75 человек
    За сегодня было
    13858 показов,
    1479 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.1506 секунд
    Из них PHP: 53%; SQL: 47%; Число SQL-запросов: 56 шт.
    Исходный размер: 113034; Сжатая: 19637