«Exim4» и «Windows Active Directory Принудительный захват ролей умершего мастера операций»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Vix
Нет описания правки
 
imported>Vix
Нет описания правки
 
Строка 1: Строка 1:
'''Установка и настройка'''
Не секрет, что в AD есть операции которые возлагаются лишь на один домен-контроллер в лесу, именуемый мастером операции. Например в AD только один контроллер назначается первичным хранителем схемы каталога.


Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt:
В случае умирания такого сервера по любой из технических или нетехнических причин, возникает ситуация, когда второй DC в связке не позволяет вам полноценно управлять доменом. В таких случаях поможет следующий рецепт, который позволит перенести существующие роли мастера операций на уцелевший контроллер. Рецепт довольно известный, тем не менее, я посчитал полезным выложить подробную инструкцию на хабр, так как у меня первой реакцией была паника.
apt-get update


Для установки выполните команду:
Рассматривается конфигурация домена с двумя контроллерами. Одному из них назначены роли мастера операций и глобального каталога и в нашем сценарии он умирает. Для переназначения всех ролей, администратор должен быть членом группы Enterprise Admins. Процедура состоит из двух этапов: захват ролей и назначение глобального каталога.
apt-get install exim4


Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy:
Желающие почерпнуть теорию по мастерам операций читают этот содержательный пост, ну а мы приступаем.
apt-get install exim4-daemon-heavy


Чтобы перейти к настройке, выполните команду:
Захват ролей
dpkg-reconfigure exim4-config


Нажмите Ok для начала настройки.
Нажмите кнопку Start, выберите пункт Run, введите ntdsutil, и нажмите ENTER.<br>
'''РЕШЕНИЕ ПРОБЛЕМ'''
1. Подключение<br>
<hr>
1.1. В приглашении ntdsutil: введите roles и нажмите ENTER.<br>
* '''defer (-53): retry time not reached for any host'''
1.2. В приглашении fsmo maintenance: введите connections и нажмите ENTER.<br>
Повреждены ваши exim db Это возможно связанно с недоступостью почтового сервера какой-то время.
1.3. В приглашении server connections: введите connect to server имя_сервера (где имя_сервера является именем контроллера домена, который возьмет на себя роль хозяина операций), и нажмите ENTER.<br>
1.4. После того как вы получите подтверждение соединения, введите quit и нажмите ENTER.<br>
2. В зависимости от роли, которую вы хотите взять в приглашении fsmo maintenance: введите соответствующую команду из таблицы ниже и нажмите ENTER.<br>
3. Введите quit и нажмите ENTER. Повторите опять, чтобы выйти из ntdsutil.<br>


'''решение:'''
Система запрашивает подтверждение. Затем она пытается передать указанные роли. Во время этого может быть выведено несколько сообщений об ошибках, но захват продолжится. После завершени будет выведен список ролей и LDAP-ноды ответственных серверов. Во время захвата RID мастера, текущий мастер должен попытаться синхронизироваться с партнером по репликации, но партнер мертв, поэтому будет выведено предупреждение и нужно будет подтвердить операцию.


  cd /var/spool/exim/db
Команды для захвата<br>
  rm -f retry retry.lockfile
Роль Необходимые привилегии Команда<br>
  rm -f wait-remote_smtp wait-remote_smtp.lockfile
Domain naming master Enterprise Admins seize domain naming master
  service exim restart
  Schema master Enterprise Admins seize schema master
  Infrastructure master Domain Admins seize infrastructure master
  PDC emulator Domain Admins seize pdc
  RID master Domain Admins seize rid master


В дальнейшим имеет смысл: внести изменения в /etc/exim/exim.conf
Надеюсь, статья спасет кому нибуть добрую тонну нервов.
в раздел


begin retry
UPD:
*                      rcpt_451    F,1h,15m
*                      refused    F,1h,2m
*                      timeout_connect    F,2h,2m; F,6h,1h; F,4d,6h
*                      *          F,2h,2m; G,16h,1h,1.5; F,4d,6h


также обратите внимание на запуск с какой опцией он стартует: -q5m
В Win2k8R2 команды немного другие:
* [https://www.linuxshop.ru/forum/f7/t31431--resheno-remote-smtp-defer-53-retry-time-not-reached-for-any-host-exchange-exim.html взято тут]


* '''Для решения проблемы с ssl в exim4.conf.template изменить''':
fsmo maintenance:?
...
REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = *


на
? — Вывод этой справочной информации
  ...
Connections — Подключение к определенному DC/LDS-экземпляру AD
  REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = !*
Help — Вывод этой справочной информации
Quit — Возврат к предыдущему меню
Seize infrastructure master — Перезаписать роль инфраструктуры на подключенном сервере
Seize naming master — Перезаписать роль хозяина именования на подключенном сервере
Seize PDC — Перезаписать роль PDC на подключенном сервере
Seize RID master — Перезаписать роль RID на подключенном сервере
Seize schema master — Перезаписать роль схемы на подключенном сервере
Select operation target — Выбор сайтов, серверов, доменов, ролей, контекстов именования
Transfer infrastructure master — Сделать подключенный сервер хозяином инфраструктуры
Transfer naming master — Сделать подключенный сервер хозяином именования
Transfer PDC — Сделать подключенный сервер PDC
  Transfer RID master — Сделать подключенный сервер хозяином RID
  Transfer schema master — Сделать подключенный сервер хозяином схемы


* Если нужно жестко указать порт smtp, то:
ИСТОЧНИКИ:
...
dc_smarthost='mail.myhost.ru::25'
...
<hr>
'''* Ошибка или проблема:'''
cat /var/log/exim/mail.log
..
.. 1p6kIP-0004lE-V2 Message is frozen
.. 1p76lx-0004wX-IM Message is frozen
..
'''* Решение:'''
exipick -zi | xargs exim -Mrm
и перезапуск exim.
'''ИСТОЧНИКИ:'''
<hr>
<hr>
* [https://qna.habr.com/q/146009 Exim и внешний SMTP сервер, как заставить ходить почту?]
* [https://habr.com/en/post/145221/ Принудительный захват ролей умершего мастера операций]
* [https://1cloud.ru/help/linux/nastrojka-exim4 Настройка EXIM4 для отправки почтовых сообщений в Linux]
* [http://pyatilistnik.org/kak-peredat-fsmo-roli-drugomu-kontrolleru-domena-active-directory/ Как передать fsmo роли другому контроллеру домена Active Directory]
* [https://serverspace.by/support/help/nastroika-exim-4-na-ubuntu/ Ubuntu. Настройка Exim4]
* [https://windowsnotes.ru/activedirectory/peredacha-i-zaxvat-rolej-fsmo/ Передача и захват ролей FSMO]
* [http://pyatilistnik.org/kak-pravilno-perezapuskat-active-directory-domain-services/ Как правильно перезапускать Active Directory Domain Services]

Версия от 18:25, 29 июня 2020

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

В случае умирания такого сервера по любой из технических или нетехнических причин, возникает ситуация, когда второй DC в связке не позволяет вам полноценно управлять доменом. В таких случаях поможет следующий рецепт, который позволит перенести существующие роли мастера операций на уцелевший контроллер. Рецепт довольно известный, тем не менее, я посчитал полезным выложить подробную инструкцию на хабр, так как у меня первой реакцией была паника.

Рассматривается конфигурация домена с двумя контроллерами. Одному из них назначены роли мастера операций и глобального каталога и в нашем сценарии он умирает. Для переназначения всех ролей, администратор должен быть членом группы Enterprise Admins. Процедура состоит из двух этапов: захват ролей и назначение глобального каталога.

Желающие почерпнуть теорию по мастерам операций читают этот содержательный пост, ну а мы приступаем.

Захват ролей

Нажмите кнопку Start, выберите пункт Run, введите ntdsutil, и нажмите ENTER.
1. Подключение
1.1. В приглашении ntdsutil: введите roles и нажмите ENTER.
1.2. В приглашении fsmo maintenance: введите connections и нажмите ENTER.
1.3. В приглашении server connections: введите connect to server имя_сервера (где имя_сервера является именем контроллера домена, который возьмет на себя роль хозяина операций), и нажмите ENTER.
1.4. После того как вы получите подтверждение соединения, введите quit и нажмите ENTER.
2. В зависимости от роли, которую вы хотите взять в приглашении fsmo maintenance: введите соответствующую команду из таблицы ниже и нажмите ENTER.
3. Введите quit и нажмите ENTER. Повторите опять, чтобы выйти из ntdsutil.

Система запрашивает подтверждение. Затем она пытается передать указанные роли. Во время этого может быть выведено несколько сообщений об ошибках, но захват продолжится. После завершени будет выведен список ролей и LDAP-ноды ответственных серверов. Во время захвата RID мастера, текущий мастер должен попытаться синхронизироваться с партнером по репликации, но партнер мертв, поэтому будет выведено предупреждение и нужно будет подтвердить операцию.

Команды для захвата
Роль Необходимые привилегии Команда

Domain naming master 	Enterprise Admins 	seize domain naming master
Schema master 	Enterprise Admins 	seize schema master
Infrastructure master 	Domain Admins 	seize infrastructure master
PDC emulator 	Domain Admins 	seize pdc
RID master 	Domain Admins 	seize rid master

Надеюсь, статья спасет кому нибуть добрую тонну нервов.

UPD:

В Win2k8R2 команды немного другие:

fsmo maintenance:?

? — Вывод этой справочной информации
Connections — Подключение к определенному DC/LDS-экземпляру AD
Help — Вывод этой справочной информации
Quit — Возврат к предыдущему меню
Seize infrastructure master — Перезаписать роль инфраструктуры на подключенном сервере
Seize naming master — Перезаписать роль хозяина именования на подключенном сервере
Seize PDC — Перезаписать роль PDC на подключенном сервере
Seize RID master — Перезаписать роль RID на подключенном сервере
Seize schema master — Перезаписать роль схемы на подключенном сервере
Select operation target — Выбор сайтов, серверов, доменов, ролей, контекстов именования
Transfer infrastructure master — Сделать подключенный сервер хозяином инфраструктуры
Transfer naming master — Сделать подключенный сервер хозяином именования
Transfer PDC — Сделать подключенный сервер PDC
Transfer RID master — Сделать подключенный сервер хозяином RID
Transfer schema master — Сделать подключенный сервер хозяином схемы

ИСТОЧНИКИ: