Я видел много методов для DirectAdmin на форуме, но ни один, к сожалению, мне толком не помог. Когда я придумал свой собственный способ использовать PMG вместе с DA, решил выложить его сюда — может, кому-то в будущем пригодится.
По умолчанию я добавил IP-адреса своих серверов DA в часть mynetworks в PMG, чтобы вся почта с моих серверов DA хотя бы принималась PMG.
Создал DKIM-запись в с настройками ниже, чтобы PMG подписывал всю исходящую почту DKIM.

Добавил ssh-ключи серверов DA на серверы PMG (с ограничением по IP DA)
192 — понятно, не мой IP
Код:
root@pmg:~# cat .ssh/authorized_keys
from="192.168.0.1" ssh-rsa ...
Теперь самая хитрая часть в DA — пришлось создать пару скриптов в DA...
Код:
cd /usr/local/directadmin/scripts/custom
mkdir domain_change_post
mkdir domain_create_post
mkdir domain_destroy_post
Замените PMG на hostname вашего PMG-сервера
Замените DA на hostname вашего DA-сервера
Файл: domain_change_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Удаляем $domain из карты транспортов PMG"
ssh PMG /usr/bin/pmgsh delete /config/transport/$domain
echo "Добавляем $newdomain в карту транспортов PMG"
ssh PMG /usr/bin/pmgsh create /config/transport --domain $newdomain --host DA --comment DA_user_$username
Файл: domain_change_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Удаляем $domain из списка реле PMG"
ssh PMG /usr/bin/pmgsh delete /config/domains/$domain
echo "Добавляем $newdomain в список реле PMG"
ssh PMG /usr/bin/pmgsh create /config/domains --domain $newdomain --comment DA_user_$username
Файл: domain_create_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Добавляем $domain в карту транспортов PMG"
ssh PMG /usr/bin/pmgsh create /config/transport --domain $domain --host DA --comment DA_user_$username
Файл: domain_create_post/mx02-dkim.sh
Код:
#!/bin/sh
echo "Добавляем $domain в список DKIM PMG"
ssh PMG /usr/bin/pmgsh create /config/dkim/domains --domain $domain --comment DA_user_$username
Файл: domain_create_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Добавляем $domain в список реле PMG"
ssh PMG /usr/bin/pmgsh create /config/domains --domain $domain --comment DA_user_$username
Файл: domain_destroy_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Удаляем $domain из карты транспортов PMG"
ssh PMG /usr/bin/pmgsh delete /config/transport/$domain
Файл: domain_destroy_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Удаляем $domain из списка реле PMG"
ssh PMG /usr/bin/pmgsh delete /config/domains/$domain
В конце добавьте IP ваших PMG-серверов в DA-сервер в /etc/virtual/whitelist_hosts_ip.
Так вы не получите ерунду с SPF-отклонениями на DA-сервере.
Это не идеально, я знаю... Это не закончено и можно улучшить. Но работает — мы можем создавать домены в DirectAdmin и не думать о ручном добавлении в PMG. Пока что очень даже неплохо. Если кому-то это окажется полезным и я буду что-то менять, обязательно выложу обновления здесь.
С уважением, Ronny
По умолчанию я добавил IP-адреса своих серверов DA в часть mynetworks в PMG, чтобы вся почта с моих серверов DA хотя бы принималась PMG.
Создал DKIM-запись в с настройками ниже, чтобы PMG подписывал всю исходящую почту DKIM.

Добавил ssh-ключи серверов DA на серверы PMG (с ограничением по IP DA)
192 — понятно, не мой IP
Код:
root@pmg:~# cat .ssh/authorized_keys
from="192.168.0.1" ssh-rsa ...
Теперь самая хитрая часть в DA — пришлось создать пару скриптов в DA...
Код:
cd /usr/local/directadmin/scripts/custom
mkdir domain_change_post
mkdir domain_create_post
mkdir domain_destroy_post
Замените PMG на hostname вашего PMG-сервера
Замените DA на hostname вашего DA-сервера
Файл: domain_change_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Удаляем $domain из карты транспортов PMG"
ssh PMG /usr/bin/pmgsh delete /config/transport/$domain
echo "Добавляем $newdomain в карту транспортов PMG"
ssh PMG /usr/bin/pmgsh create /config/transport --domain $newdomain --host DA --comment DA_user_$username
Файл: domain_change_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Удаляем $domain из списка реле PMG"
ssh PMG /usr/bin/pmgsh delete /config/domains/$domain
echo "Добавляем $newdomain в список реле PMG"
ssh PMG /usr/bin/pmgsh create /config/domains --domain $newdomain --comment DA_user_$username
Файл: domain_create_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Добавляем $domain в карту транспортов PMG"
ssh PMG /usr/bin/pmgsh create /config/transport --domain $domain --host DA --comment DA_user_$username
Файл: domain_create_post/mx02-dkim.sh
Код:
#!/bin/sh
echo "Добавляем $domain в список DKIM PMG"
ssh PMG /usr/bin/pmgsh create /config/dkim/domains --domain $domain --comment DA_user_$username
Файл: domain_create_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Добавляем $domain в список реле PMG"
ssh PMG /usr/bin/pmgsh create /config/domains --domain $domain --comment DA_user_$username
Файл: domain_destroy_post/mx02-transport.sh
Код:
#!/bin/sh
echo "Удаляем $domain из карты транспортов PMG"
ssh PMG /usr/bin/pmgsh delete /config/transport/$domain
Файл: domain_destroy_post/mx02-relay.sh
Код:
#!/bin/sh
echo "Удаляем $domain из списка реле PMG"
ssh PMG /usr/bin/pmgsh delete /config/domains/$domain
В конце добавьте IP ваших PMG-серверов в DA-сервер в /etc/virtual/whitelist_hosts_ip.
Так вы не получите ерунду с SPF-отклонениями на DA-сервере.
Это не идеально, я знаю... Это не закончено и можно улучшить. Но работает — мы можем создавать домены в DirectAdmin и не думать о ручном добавлении в PMG. Пока что очень даже неплохо. Если кому-то это окажется полезным и я буду что-то менять, обязательно выложу обновления здесь.
С уважением, Ronny
