URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95816
[ Назад ]

Исходное сообщение
"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 , 07-Окт-14 08:58 
man opendkim

-x configfile
              Read the named configuration file.


"Opendkim и Postfix Multi Instance"
Отправлено rafaello , 07-Окт-14 10:26 
> 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 , 07-Окт-14 11:31 

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

Одаренность не позволяет понять, что вместо configfile надо указать путь к реально существующему конфиг-файлу?


"Opendkim и Postfix Multi Instance"
Отправлено rafaello , 07-Окт-14 12:00 
>> :~# 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 , 07-Окт-14 12:55 
>[оверквотинг удален]
>> существующему конфиг-файлу?
> ~# 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"
Отправлено rafaello , 07-Окт-14 15:07 

> Спасибо за информацию.

Честно говоря, я не понял. Может я что то не то сказал?


"Opendkim и Postfix Multi Instance"
Отправлено PavelR , 07-Окт-14 16:39 
>> Спасибо за информацию.
> Честно говоря, я не понял. Может я что то не то сказал?

Честно говоря, я тоже не понял, чего вы хотите, но на всякий случай поблагодарил.


"Opendkim и Postfix Multi Instance"
Отправлено rafaello , 07-Окт-14 16:55 
> Честно говоря, я тоже не понял, чего вы хотите, но на всякий
> случай поблагодарил.

Я сейчас подумал, что в окне терминала не показывает конфиг потому, что я его создавал через Filezilla (Windows)

... Хотя нет. Notepad++ показывает, что Unix
Тогда непонятно, почему не показывает конфиг...



"Opendkim и Postfix Multi Instance"
Отправлено PavelR , 07-Окт-14 17:06 
> Вот содержимое файла /etc/default/opendkim
> SOCKET="inet:8891@localhost"

Содержимое этого файла используется инит-скриптом запуска.
В результате OpenDKIM запускается такой командой:

/usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p 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 должен слушать отдельный порт, научитесь пользоваться консолью.


"Opendkim и Postfix Multi Instance"
Отправлено rafaello , 07-Окт-14 17:20 

> Ну что я могу сказать - поздравляю. Осознайте, что второй инстанс 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 , 07-Окт-14 17:42 
> 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
> я не могу понять почему.

Есть одна хорошая правильная команда - называется "man".
Набираем в консоли "man openkim" и наслаждаемся чтением.

Я уже объяснил, что так оно ругается когда не находит файл configfile, и что нужно указать путь к реально существующему файлу.

> 2. >Осознайте, что второй инстанс OpenDKIM
>   >должен слушать отдельный порт
> Я еще не создал второй инстанс вообще. Прошу помощи, как это сделать.

Цитирую сообщение выше:

... Содержимое этого файла используется инит-скриптом запуска.
В результате OpenDKIM запускается такой командой:

/usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p inet:8891@localhost


"Opendkim и Postfix Multi Instance"
Отправлено rafaello , 08-Окт-14 10:20 
> ... Содержимое этого файла используется инит-скриптом запуска.
> В результате 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
произвольно указать?



"Opendkim и Postfix Multi Instance"
Отправлено PavelR , 08-Окт-14 22:04 
>[оверквотинг удален]
>> /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
> произвольно указать?

произвольно.