суббота, 12 ноября 2011 г.

Настройка DKIM для Exim 4.69

Настройка DKIM через dkimproxy для Exim версии ниже 4.69 на серверах с ISPmanager


(ОС: Debian 5.0 x64)


apt-get install dkim-filter dkimproxy
Добавить в самое начала конфига /etc/exim4/exim4.conf.template
tls_advertise_hosts = 0.0.0.0.25
local_interfaces = 0.0.0.0 : 127.0.0.1.10025
Туда же в начало routers section
dkimproxy:
driver = manualroute
condition = "${if eq {$interface_port}{10025} {0}{1}}"
transport = dkimproxy_smtp
route_list = "* localhost byname"
self = send
Пример:
begin routers
        dkimproxy:
                driver = manualroute
                condition = "${if eq {$interface_port}{10025} {0}{1}}"
                transport = dkimproxy_smtp
                route_list = "* localhost byname"
                self = send
        dnslookup:
                driver = dnslookup
                domains = !+dummy_domains
Туда же в начало transports section
dkimproxy_smtp:
driver = smtp
port = 10027
allow_localhost
Пример:
begin transports
        dkimproxy_smtp:
                driver = smtp
                port = 10027
                allow_localhost
        remote_smtp:
                driver = smtp

        local_delivery:
                driver = appendfile
/etc/dkimproxy/dkimproxy_out.conf приводим к такому виду
# specify what address/port DKIMproxy should listen on
listen    127.0.0.1:10027

# specify what address/port DKIMproxy forwards mail to
relay     127.0.0.1:10025

# specify what domains DKIMproxy can sign for (comma-separated, no spaces)
# Note that this is set in /etc/init.d/dkimproxy in this Debian package
# unactivate it there if you want to use the config file
domain    <наш_домен>

# specify what signatures to add
signature dkim(c=relaxed)
signature domainkeys(c=nofws)

# specify location of the private key
keyfile   /var/lib/dkimproxy/private.key

# specify the selector (i.e. the name of the key record put in DNS)
selector  default
Генерим ключи
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
private.key кладем в /var/lib/dkimproxy и выставляем на него права
chown dkimproxy:dkimproxy /var/lib/dkimproxy/private.key
chmod 600 /var/lib/dkimproxy/private.key
Создаем новую TXT запись в DNS целевого домена и записываем в него следующие данные, ключ берем из public.key
Пример TXT записи:
default._domainkey.<наш_домен>. IN TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV4xSWbJ6VcSpNG4iixqKkp8HDo0ym3s4u07yElifc6T1viiby8P4kwFxlS5P5Msbgi6F5rMnWoLq5oKV6i0j+x4aCn6dyAD9FZYPnY2zerSDDBS7Y50tVgLbwWjCdAtuu4nZYSUfzGqtLXaZJ8gVefvWUNtsip6olGPWdxG0HDwIDAQAB
Правим hostname в /etc/hosts, чтобы команда hostname -d отдавала нормальное имя домена (dkimproxy берет имя домена через команду hostname -d, правка конфига dkimproxy для решения данной проблемы не поможет)
Перезагружаем dkimproxy, exim
Выполняем ps ax | grep dkimproxy и смотрим чтобы в ключе --domain было полное имя домена
Проверяем, отправляем на ящик gmail.com письмо и смотрим заголовки, если все хорошо то увидим строчку dkim=passed.
 Начиная с версии 4.70 Exim поддерживает DKIM нативно и пляски с dkimproxy уже не потребуются.

Комментариев нет:

Отправить комментарий