The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Opendkim и Postfix Multi Instance, !*! rafaello, 06-Окт-14, 20:22  [смотреть все]
Есть вопрос по работе программы Opendkim + Postfix, которая подписывает заголовки исходящих писем цифровыми подписями DKIM. Основное условие - это постфикс имеет несколько инстанцев с разными Ай-Пи и доменами.
Беда в том, что Opendkim по умолчанию проверяет в заголовках поле FROM для определения домена, которому надо добавить цифровую подпись.
Но дело в том, что поле FROM может иметь бесконечно разные домены (разные пользователи) и ориентироваться на это поле и создавать бесчисленное множество ключей бессмысленно.
Единственно неизменным (для каждого инстанца postfix) является адрес Retart-Patch. То есть к нему должна идти привязка цифровой подписи.
Но, Увы!!!
Я перепробавал кучу разных вариантов, указанных здесь http://www.opendkim.org/opendkim-README в разделе MAILING LISTS (3) и здесь http://www.opendkim.org/opendkim.conf.5.html
Добавил следующие параметры в /etc/opendkim.conf

MultipleSignatures     yes
MustBeSigned           Return-Path,From
SignHeaders            Return-Path,From
AlwaysSignHeaders      Return-Path
OversignHeaders           Return-Path
OmitHeaders            .
SenderHeaders          Return-Path,From

Все это не работает. Он по прежнему определяет домен по полю From

Вот такой вариант таблицы /etc/opendkim/signingtable не устраивает

qwerty.com default._domainkey.qwerty.com
* default._domainkey.abcde.com

потому, что это действительно только для одного инстанца Postfix. Для второго инстанца таблица будет выглядеть так

* default._domainkey.edcba.com

Но для этого должно быть два файла конфигурации.
Сейчас главный вопрос, Как научить OpenDKIM определять домен по полю Return-Path ?

Если это все же не получится, то надо создать еще одну копию процесса  Opendkim с другим файлом конфигурации. Что, собственно, у меня тоже не получилось.
Второй вопрос (на случай, если не решится первый) - как создать копию процесса с новым конфигом?

  • Opendkim и Postfix Multi Instance, !*! PavelR, 08:58 , 07-Окт-14 (1)
    • Opendkim и Postfix Multi Instance, !*! rafaello, 10:26 , 07-Окт-14 (2)
      > man opendkim
      >  -x configfile
      >            
      >   Read the named configuration file.

      Интересная штука выходит:

      :~# opendkim -x configfile
      opendkim: configfile: configuration error at line 0: error reading configuration file

      На другие команды:
      :~# opendkim -D
      :~# opendkim -q
      :~# opendkim -W
      у всех один ответ:
      opendkim: milter socket must be specified

      Хотя при отправке тестового письма подпись ДКИМ вставилась исправно. То есть, сокеты указаны в настройках у opendkim и у postfix

      Вот скопировал /etc/opendkim.conf
      Syslog            yes
      Canonicalization relaxed/relaxed
      SyslogSuccess yes
      X-Header no
      LogWhy yes
      UMask            002
      KeyTable file:/etc/opendkim/keytable
      SigningTable file:/etc/opendkim/signingtable
      InternalHosts file:/etc/opendkim/internal
      MultipleSignatures  yes
      MustBeSigned        Return-Path,From
      SignHeaders         Return-Path,From
      AlwaysSignHeaders   Return-Path
      OversignHeaders        Return-Path
      OmitHeaders         .
      SenderHeaders       Return-Path,From


      • Opendkim и Postfix Multi Instance, !*! PavelR, 11:31 , 07-Окт-14 (3)
        • Opendkim и Postfix Multi Instance, !*! rafaello, 12:00 , 07-Окт-14 (4)
          >> :~# opendkim -x configfile
          >> opendkim: configfile: configuration error at line 0: error reading configuration file
          > Одаренность не позволяет понять, что вместо configfile надо указать путь к реально
          > существующему конфиг-файлу?

          ~# opendkim -x /etc/opendkim.conf
          opendkim: milter socket must be specified

          Вот содержимое файла /etc/default/opendkim
          SOCKET="inet:8891@localhost"

          Это дописано в файл /etc/postfix-2/main.cf
          milter_default_action = accept
          milter_protocol = 2
          smtpd_milters = inet:localhost:8891
          non_smtpd_milters = inet:localhost:8891

          • Opendkim и Postfix Multi Instance, !*! PavelR, 12:55 , 07-Окт-14 (5)
          • Opendkim и Postfix Multi Instance, !*! PavelR, 17:06 , 07-Окт-14 (9)
            • Opendkim и Postfix Multi Instance, !*! rafaello, 17:20 , 07-Окт-14 (10)

              > Ну что я могу сказать - поздравляю. Осознайте, что второй инстанс OpenDKIM
              > должен слушать отдельный порт, научитесь пользоваться консолью.

              Не спорю... Но не ошибается тот, кто ничего не делает. На ошибках то и учимся!!!!
              Хочется выделить два основных момента, чтобы конкретизировать эту тему.

              1. Не показывает файл конфигурации в консоли

              ~# opendkim -x /etc/opendkim.conf
              opendkim: milter socket must be specified

              :~# opendkim -x configfile
              opendkim: configfile: configuration error at line 0: error reading configuration file

              я не могу понять почему.

              2. >Осознайте, что второй инстанс OpenDKIM
                 >должен слушать отдельный порт

              Я еще не создал второй инстанс вообще. Прошу помощи, как это сделать.


              • Opendkim и Postfix Multi Instance, !*! PavelR, 17:42 , 07-Окт-14 (11)
                • Opendkim и Postfix Multi Instance, !*! rafaello, 10:20 , 08-Окт-14 (12)
                  > ... Содержимое этого файла используется инит-скриптом запуска.
                  > В результате OpenDKIM запускается такой командой:
                  > /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid
                  > -p inet:8891@localhost

                  Спасибо большое!
                  Помогло, ура!!!

                  А вот в файле /etc/default/opendkim
                  как правильно указать новый SOKET через запятую/пробел или новой строкой?
                  SOCKET="inet:8891@localhost", SOCKET="inet:8892@localhost"
                  или
                  SOCKET="inet:8891@localhost"
                  SOCKET="inet:8892@localhost"
                  ------------------------------------------------
                  а номер /var/run/opendkim/opendkim1.pid
                  произвольно указать?





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру