Мигрируем с бесплатного почтового Linux-сервера на Microsoft Exchange Server 2010

Строго говоря, существует несколько сценариев для миграции с бесплатного почтового сервера, работающего под управлением операционной системы семейства Linux, на программное обеспечение Microsoft Exchange Server 2010. Выбор подходящего варианта зависит от текущего состояния инфраструктуры компании.

Известно, что компании по мере своего роста начинают использовать все более и более эффективные ИТ-инструменты. Начинаться все может с небольшой одноранговой сети и почтового сервера, работающего под Linux, однако со временем для обеспечения бизнес-процессов приходится переходить на другие продукты, в частности, на Microsoft Exchange Server 2010. Сегодня мы рассмотрим, как это сделать наиболее быстрым и эффективным способом.

Строго говоря, существует несколько сценариев для миграции с бесплатного почтового сервера, работающего под управлением операционной системы семейства Linux, на Microsoft Exchange Server 2010. Выбор подходящего варианта зависит от текущего состояния инфраструктуры компании. Одно дело, если в сети уже поднят домен, и почтовый сервер мирно сосуществует с Active Directory. В этом случае можно запустить Microsoft Exchange Server 2010 параллельно действующему "почтовику" и потом постепенно перемещать группы пользователей с одного на другой. Однако если говорить честно, такая инфраструктура встречается нечасто. Обычно в момент принятия решения о миграции корпоративная сеть представляет собой обычную рабочую группу, поэтому процедура перехода на Microsoft Exchange Server 2010 выполняется параллельно развертыванию домена и Active Directory. Именно этот вариант мы и будем сегодня рассматривать.

Этап 1. Подготовка новой инфраструктуры

Начинается процесс миграции с подготовки новой инфраструктуры. В первую очередь на отдельный сервер устанавливаем Microsoft Windows Server и "поднимаем" на нем внутренний домен (его название, в принципе, не играет особой роли, пусть будет test.com) и Active Directory. Сразу отметим, что контроллер должен работать в режиме Windows Server 2003 или выше. Также на подготавливаемом сервере нужно развернуть и другие службы, необходимые для работы корпоративной информационной системы: DNS-сервер, DHCP-сервер и пр. Останавливаться на этом мы не будем, поскольку данный материал выходит за рамки нашей статьи. Единственное, что здесь можно отметить – необходимость создания DNS-зоны с доменом, используемым в существующих сетевых сервисах. После подготовки контроллер домена можно подключить к локальной сети. При этом нужно перенастроить рабочие станции так, чтобы они использовали DHCP-сервер и DNS из Active Directory.

Следующий этап миграции – подготовка почтового сервера. Оптимальным вариантом будет его инсталляция на отдельный компьютер, работающий под управлением ОС Microsoft Windows Server. Обратите внимание, что и компьютер, и операционная система должны быть 64-битные. На подготовленный сервер устанавливаем Microsoft Exchange Server 2010. После завершения инсталляции наш будущий почтовый сервер также подключаем к сети.

Описанные выше операции никак не влияют на работу пользователей в локальной сети, то есть администратор может выполнять их, не останавливая бизнес-процессы в офисе компании. После этого процесс усложняется. Сначала нам надо настроить Microsoft Exchange Server 2010 на использование того почтового домена, который применялся на старом сервере. Делается это следующим образом: мы запускаем консоль управления и подключаемся к Microsoft Exchange Server 2010. Находим в дереве и открываем раздел "Конфигурация организации->Транспортный сервер-концетратор". Затем переходим на вкладку "Обслуживаемые домены" и выбираем в меню "Действие" пункт "Создать обслуживаемый домен". В открывшемся окне вводим домен, который обслуживался на Linux-сервере (к примеру, mycompany.ru) и его название (отображается в консоли управления).

Далее создаем политику формирования почтовых адресов сотрудников компании. Очень хорошо, если такая политика была настроена на Linux-сервере. Это избавит нас от заметного объема рутинной работы. Итак, находим в консоли управления раздел "Конфигурация организации->Транспортный сервер-концетратор", переходим на вкладку "Политики адресов электронной почты" и выбираем в меню "Действие" пункт "Создать политику адресов электронной почты". При этом открывается специальный пошаговый мастер. На первом его этапе вводим название создаваемой политики и выбираем с помощью кнопки обзор контейнер, к которому она будет применяться (выбираем пункт Users, чтобы политика действовал на всех пользователей). Шаг "Условия" мы пропускаем, а на третьем этапе создаем правило генерации адресов. Для этого нажимаем на кнопку "Добавить", выбираем в открывшемся окне нужный тип формирования (он должен совпадать с политикой, действующей на Linux-сервере), устанавливаем переключатель в положение "Выберите принятый домен для адресов электронной почты" и указываем домен mycompany.ru. Этап с расписанием мы пропускаем, а в следующем окне мастера нажимаем на кнопку "Создать".

После этого необходимо настроить Microsoft Exchange Server 2010 на отправку и прием писем из внешних почтовых ящиков. Для этого находим в консоли раздел "Конфигурация организации->Транспортный сервер-концетратор" и переходим в нем на вкладку "Соединители отправки". Затем в меню "Действия" открываем пункт "Создать соединитель отправки". На первом этапе открывшегося мастера вводим название коннектора и указываем наш почтовый домен. На втором шаге нажимаем на кнопку "Добавить" и вводим в строку "Адресное пространство" символ "*". На третьем этапе устанавливаем переключатель в положение "Использовать MX-записи DNS для автоматической маршрутизации электронной почты". После этого переходим далее и нажимаем на кнопку "Создать".

Затем открываем в консоли пункт "Настройка серверов->Транспортный сервер-концентратор". Находим там соединитель с названием Default и дважды кликаем по нему мышкой. В открывшемся окне вносим следующие правки в свойства: на вкладке "Общие" изменяем доменное имя по умолчанию на реальное, на вкладке "Проверка подлинности" отключаем чекбокс "Проверка подлинности Exchange Server", а на вкладке "Группы разрешений" активируем чекбокс "Анонимные пользователи".

Этап 2. Перенос почтовых ящиков

Следующий этап миграции заключается в переносе всех аккаунтов со старого почтового сервера на Microsoft Exchange Server 2010 с созданием соответствующих учетных записей в Active Directory. В принципе, эту процедуру можно выполнить вручную, то есть создать учетные записи, соответствующие уже существующим почтовым ящикам. Однако такой подход приемлем только в том случае, если в сети работает не более десятка пользователей. В противном случае процедура ручного переноса может занять много времени, хотя, безусловно, нельзя отнимать у нее права на существование.

Второй вариант – автоматический перенос пользователей. Он позволяет существенно облегчить процедуру миграции на Microsoft Exchange Server 2010. Общая схема данного способа выглядит следующим образом. Сначала нужно подготовить файл формата CSV, в котором содержится список всех пользователей и дополнительная информация о них. Потом этот файл с помощью PowerShell загружается в систему, которая создает учетные записи. Для хранения учетных записей пользователей в большинстве UNIX-подобных операционных систем используется файл /etc/passwd. Это текстовый файл, в котором в определенном порядке записаны нужные нам данные. Обратите внимание, что в нем размещается только информация об учетных записях, но никак не пароли. Ключевые слова содержатся в отдельном недоступном файле (обычно это /etc/shadow).

Итак, копируем этот файл на какой-либо из носителей и начинаем с ним разбираться. В принципе, файл passwd – это файл формата CSV, вот только в нем вместо стандартного разделителя ";" используется знак ":". Поэтому в первую очередь нам нужно исправить это досадное недоразумение. Для этого нам потребуется любой текстовый редактор, например, "Блокнот" или встроенный редактор программы FAR. Открываем файл в редакторе и делаем поиск с заменой, в ходе которого и меняем все ":" на ";".

Теперь у нас есть самый обычный файл формата CSV, который можно открыть в Microsoft Excel. После открытия мы видим, что каждому пользователю соответствует одна строка, состоящая из семи колонок: имя пользователя, хеш его пароля, идентификатор, расширенный комментарий (обычно в него вписывают ФИО пользователя), домашний каталог и регистрационная оболочка. Как мы видим, фактически, нам нужны только два столбца. Это имя пользователя и расширенный комментарий (если, конечно же, он заполнялся при вводе пользователей). Остальные колонки нам не нужны, а поэтому можно смело их удалить. Далее необходимо обратить внимание на строки. Далеко не все они соответствуют сотрудникам компании. Среди них есть и служебные учетные записи, которые нам, естественно, не нужны. Поэтому такие строки мы тоже удаляем.

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

Следующий шаг в процессе подготовки файла - установка заголовка для всех колонок. Для этого создаем в нем новую строку так, чтобы она была первой, и в соответствующих ячейках вводим названия столбцов. Они должны быть написаны латинскими буквами и не содержать пробелов и спецсимволов. В нашем примере мы создали следующие колонки:

  • UserName – псевдоним пользователя в Active Directory;
  • DisplayName – краткое имя пользователя;
  • FirstName – имя пользователя;
  • LastName – фамилия пользователя;
  • OfficePhone – внутренний телефон пользователя;

Понятно, что это далеко не предел. Каждый администратор сам должен выбрать поля, которые ему необходимо заполнить.

Собственно говоря, на этом подготовку файла можно считать законченной, и теперь можно приступать к переносу пользователей. Для этого мы будем использовать возможности PowerShell, поскольку только данная оболочка позволяет всего несколькими командами массово занести в Active Directory любое количество пользователей. Итак, копируем подготовленный нами файл любым способом на сервер, на котором установлен Microsoft Exchange Server 2010 и запускаем Exchange Management Shell. При этом происходит подключение оболочки к почтовому серверу. После появления командной строки можно приступать к работе.

В первую очередь, необходимо задать пароль, который будет установлен всем пользователям для первого входа в систему. Проблема заключается в том, что указать его простой строкой нельзя. Тут нужен специальный объект типа SecureString (секретная строка). Поэтому действовать будем через переменную. Вводим и запускаем следующую команду:

$P=read-host "Введите пароль " –AsSecureString

После ее запуска в оболочке появится приглашение к вводу строки. Это и будет наш будущий пароль. Обратите внимание, что при вводе символы не отображается, вместо них на экран выводятся "звездочки". Кстати, тут необходимо отметить один очень важный момент. Дело в том, что задаваемый пароль должен соответствовать текущим политикам безопасности, заданным в Active Directory. В противном случае создать учетные записи не получится – будет выдано сообщение об ошибке. Причем заранее проверить пароль нельзя, поэтому при его вводе будьте внимательны.

Далее вводим и запускаем вот такую команду:

Import-CSV ("C:\passwd.csv") -Delimiter ";" | ForEach-Object -Process {New-Mailbox -Alias $_.UserName -Name $_.userName -UserPrincipalName "$($_.UserName)@test.com" -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -OrganizationalUnit "test.com/Users" -Password $P -ResetPasswordOnNextLogon $true}

В процессе ее выполнения в системе будут созданы требуемые учетные записи. В ходе работы они будут отображаться на экране.

Теперь давайте сделаем небольшое отступление и разберем использованный скрипт, чтобы в случае необходимости была возможность внести в него свои коррективы. Итак, командлет Import-CSV загружает указанный в кавычках CSV-файл и создает из него набор объектов. Далее командлет ForEach-Object осуществляет перебор полученных строк и выполняет для каждой действия, указанные в фигурных скобках.

Мы указали в фигурных скобках всего один командлет – New-Mailbox. Он предназначен для создания нового пользователя Active Directory и включения для него почтового ящика в Microsoft Server Exchange 2010. При этом были использованы следующие параметры.

  • -Alias – псевдоним пользователя. В его качестве используются значения из колонки UserName нашего файла.
  • -Name – имя пользователя, которое отображается в Active Directory. В его качестве используются значения из колонки UserName нашего файла.
  • -UserPrincipalName – логин пользователя, который используется для входа в систему. Состоит из имени пользователя и имени домена, к которому он относится. В нашем случае берутся значения из колонки UserName, к которым прибавляется символ "@" и имя домена Active Directory (обратите внимание, используется именно test.com, а не mycompany.ru).
  • -DisplayName – краткое имя пользователя. В его качестве используются значения из колонки DisplayName нашего файла.
  • -FirstName – имя пользователя. В его качестве используются значения из колонки FirstName нашего файла.
  • -LastName – фамилия пользователя. В его качестве используются значения из колонки LastName нашего файла.
  • -OrganizationalUnit – контейнер, в котором будет создан пользователь. В его качестве мы использовали стандартный контейнер "Пользователи" домена Active Directory.
  • -Password – первоначальный пароль пользователя. Мы используем переменную, в которую предварительно с клавиатуры ввели нужно значение.
  • -ResetPasswordOnNextLogon – свойство указывает на необходимость смены пользователем пароля при следующем входе в систему.

Понятно, что мы использовали не все возможные параметры. При необходимости можно, например, указать почтовую базу данных (если их на сервере несколько) и пр. Полный список параметров можно найти в справочной системе Microsoft Server Exchange 2010.

Итак, после завершения работы скрипта мы сможем увидеть следующую картину. В Active Directory созданы необходимые пользователи. Для первого входа в корпоративную сеть они смогут использовать логин стандартного вида (к примеру, IvanK@test.com) и заданный пароль, который им придется поменять. Каждому из пользователей будет присвоен почтовый ящик, адрес которого сгенерируется автоматически с учетом заданной нами ранее политики (например, IvanK@mycompany.ru).

Однако на этом наша работа не закончена. Дело в том, что далеко не всю информацию о пользователе можно ввести в командлете New-Mailbox. В нашем примере мы хотим указать у каждого пользователя внутренний телефонный номер. Это можно сделать с помощью другого командлета - Set-User. Он предназначен для установки различных полей учетных записей пользователей. В нашем примере для решения описанной задачи нужно выполнить следующую команду:

Import-CSV ("C:\passwd.csv") -Delimiter ";" | ForEach-Object -Process {Set-User $_.UserName –Phone $_.OfficePhone}

Как мы видим, здесь используются уже знакомые нам конструкции. Команда переберет все исходные строки указанного файла и каждому пользователю, имя которого соответствует полю UserName, присвоит телефон из поля OfficePhone. Результаты выполнения этой команды можно увидеть в свойствах учетных записей Active Directory.

Этап 3. Переключение на новую инфраструктуру

Третий этап заключается в окончательном переводе рабочих станций на новую инфраструктуру. Он, в отличие от всех предыдущих, требует остановки работы офиса. Поэтому его можно выполнить либо в нерабочее время, либо тогда, когда нагрузка на сотрудников минимальна. В первую очередь необходимо внести компьютеры работников в созданный домен.

Далее нужно изменить зону нашего домена в DNS-сервере. Вместо IP-адреса старого почтового сервера необходимо указать адрес компьютера, на котором работает Microsoft Exchange Server 2010. После этого остается только установить и настроить на рабочие станции почтовые клиенты. В принципе, можно использовать любые программы, работающие с протоколами SMTP и POP3, однако максимальную отдачу даст продукт Microsoft Outlook, который поддерживает все возможности Microsoft Exchange Server 2010.

Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010

Подводим итоги

Как мы видим, процедура миграции с бесплатного почтового Linux-сервера на Microsoft Exchange Server 2010 относительно проста даже в том случае, если она совмещена с развертыванием домена и Active Directory, поэтому не стоит ее бояться. Переход на Microsoft Exchange Server 2010 может потребовать всего лишь небольшого простоя офиса. Зато в результате сотрудники получат гораздо больше коммуникативных возможностей, которые позволят увеличить эффективность бизнес-процессов компании. Приобрести Microsoft Exchange Server 2010 можно у партнеров 1Софт.

Марат Давлетханов

Все права защищены. По вопросам использования статьи обращайтесь к администраторам сайта