Известно, что компании по мере своего роста начинают использовать все более и более эффективные ИТ-инструменты. Начинаться все может с небольшой одноранговой сети и почтового сервера, работающего под 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.
Подводим итоги
Как мы видим, процедура миграции с бесплатного почтового Linux-сервера на Microsoft Exchange Server 2010 относительно проста даже в том случае, если она совмещена с развертыванием домена и Active Directory, поэтому не стоит ее бояться. Переход на Microsoft Exchange Server 2010 может потребовать всего лишь небольшого простоя офиса. Зато в результате сотрудники получат гораздо больше коммуникативных возможностей, которые позволят увеличить эффективность бизнес-процессов компании. Приобрести Microsoft Exchange Server 2010 можно у партнеров 1Софт.
Марат Давлетханов
Все права защищены. По вопросам использования статьи обращайтесь к администраторам сайта