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

Начнем с текущего макета. Он представлен на рисунке ниже.


Cправа мы видим компьютер внешнего пользователя, с которого мы будем отсылать почту пользователю во внутреннюю сеть. Во внутренней сети расположен компьютер пользователя, контроллер домена с поднятым на нем DNS сервером и почтовый сервер. На границе сети стоит межсетевой экран — FortiGate, главной особенностью которого является настройка проброса SMTP и DNS трафика.

Уделим особое внимание DNS.

Для маршрутизации электронной почты в Интернете используются две DNS записи — A запись и MX запись. Обычно данные DNS записи настраиваются на публичном DNS сервере, но из-за ограничений макетирования мы просто пробрасываем DNS через межсетевой экран (то есть у внешнего пользователя в качестве DNS сервера прописан адрес 10.10.30.210).

MX запись — запись, содержащая имя почтового сервера, обслуживающего домен, а также приоритет данного почтового сервера. В нашем случае она выглядит так: test.local -> mail.test.local 10.

A запись — запись, преобразующая доменное имя в IP адрес, у нас это: mail.test.local -> 10.10.30.210.

Когда наш внешний пользователь попытается отправить письмо на адрес an@test.local, он запросит у своего DNS сервера MX запись домена test.local. Наш DNS сервер ответит именем почтового сервера — mail.test.local. Теперь пользователю необходимо получить IP адрес данного сервера, поэтому он снова обращается к DNS за A записью и получает IP адрес 10.10.30.210 (да, снова его:) ). Можно отправлять письмо. Поэтому он пытается установить соединение с полученным IP адресом по 25 порту. С помощью правил на межсетевом экране это подключение пробрасывается на почтовый сервер.

Проверим работоспособность почты в текущем состоянии макета. Для этого на компьютере внешнего пользователя воспользуемся утилитой swaks. С её помощью можно протестировать работоспособность SMTP, отправив получателю письмо с набором различных параметров. Предварительно, на почтовом сервере уже заведен пользователь с ящиком an@test.local. Попробуем отправить ему письмо:



Теперь перейдем на машину внутреннего пользователя и убедимся, что письмо пришло:



Письмо действительно пришло (оно выделено в списке). Значит, макет работает корректно. Самое время перейти к FortiMail. Дополним наш макет:



FortiMail можно развернуть в трех режимах:

  • Gateway — действует как полноценный MTA: принимает всю почту на себя, проверяет её, а после пересылает на почтовый сервер;
  • Transparent — или по другому, прозрачный режим. Устанавливается перед сервером и проверяет входящую и исходящую почту. После этого передает её на сервер. Не требует изменений в конфигурации сети.
  • Server — в данном случае FortiMail является полноценным почтовым сервером с возможностью заведения почтовых ящиков, приёма и отправки почты, а также с другим функционалом.

Мы будем разворачивать FortiMail в режиме Gateway. Зайдем в настройки виртуальной машины. Логин — admin, пароль не задан. При первом входе необходимо задать новый пароль.

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

config system interface
edit port 1
set ip 192.168.1.40 255.255.255.0
set allowaccess https http ssh ping
end

Теперь настроим маршрутизацию. Для этого необходимо ввести следующие команды:

config system route
edit 1
set gateway 192.168.1.1
set interface port1
end

Вводя команды, можно использовать табуляцию, чтобы не печатать их полностью. Также, если вы забыли, какая команда должна идти следующей, можно воспользоваться клавишей “?”.
Теперь проверим подключение к Интернету. Для этого пропингуем гугловский DNS:



Как видим, Интернет у нас появился. Первоначальные настройки, характерные для всех устройств Fortinet выполнены, теперь можно переходить к конфигурации через веб-интерфейс. Для этого откроем страницу управления:



Обратите внимание, переходить нужно по ссылке в формате <ip адрес>/admin. Иначе вы не сможете попасть на страницу управления. По умолчанию страница находится в стандартном режиме конфигурирования. Для настроек нам понадобится Advanced режим. Перейдем в меню admin->View и переключим режим на Advanced:



Теперь нам необходимо загрузить триальную лицензию. Сделать это можно в меню License Information > VM > Update:



Если у вас нет триальной лицензии, вы можете запросить её, обратившись к нам.

После ввода лицензии устройство должно перезагрузиться. В дальнейшем оно начнет подтягивать обновления своих баз с серверов. Если этого не происходит автоматически, можно перейти в меню System > FortiGuard и во вкладках Antivirus, Antispam нажать на кнопку Update Now.



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



Настроим верный часовой пояс, это пригодится при исследовании логов. Для этого перейдем в меню System > Configuration:



Также настроим DNS. В качестве основного DNS сервера мы настроим внутренний DNS сервер, а в качестве резервного — оставим DNS сервер, который предоставляет Fortinet.



Теперь перейдем к самому интересному. Как вы, наверное, заметили, по умолчанию у устройства установлен режим Gateway. Поэтому нам менять его не нужно. Перейдем в поле Domain & User > Domain. Создадим новый домен, который необходимо защищать. Здесь нам нужно указать только название домена и адрес почтового сервера (можно также указать его доменное имя, в нашем случае mail.test.local):



Теперь нам нужно указать имя для для нашего почтового шлюза. Оно будет использоваться в MX и A записях, которые нам нужно будет поменять позже:



Из пунктов Host Name и Local Domain Name составляется FQDN, которое используется в DNS записях. В нашем случае FQDN = fortimail.test.local.

Теперь настроим правило получения. Нам необходимо, чтобы все письма, которые приходят извне и назначаются пользователю в домене, пересылались на почтовый сервер. Для этого перейдем в меню Policy > Access Control. Пример настройки приведен ниже:



Посмотрим на вкладку Recipient Policy. Здесь можно устанавливать определенные правила проверки писем: если почта приходит с домена example1.com, нужно проверять её механизмами, настроенными специально под этот домен. Там уже установлено правило по умолчанию для всей почты, и на данный момент оно нас устраивает. Ознакомиться с данным правилом можно на рисунке ниже:



На этом настройку на FortiMail можно считать законченной. На самом деле возможных параметров намного больше, но если мы начнем рассматривать их все — можно будет написать книгу:) А наша цель — с минимальными усилиями запустить FortiMail в тестовом режиме.

Осталось две вещи — изменить MX и A записи, а также изменить правила проброса портов на межсетевом экране.

MX запись test.local -> mail.test.local 10 необходимо поменять на test.local -> fortimail.test.local 10. Но обычно во время пилотов добавляется вторая MX запись с более высоким приоритетом. Например:

test.local -> mail.test.local 10
test.local -> fortimail.test.local 5

Напомню, что чем меньше порядковый номер предпочтения почтового сервера в MX записи, тем выше её приоритет.

A запись изменить нельзя, поэтому просто создадим новую: fortimail.test.local -> 10.10.30.210. Внешний пользователь будет обращаться на адрес 10.10.30.210 по 25 порту, и межсетевой экран будет пробрасывать соединение на FortiMail.

Для того, чтобы поменять правило проброса на FortiGate, необходимо изменить адрес в соответствующем объекте Virtual IP:



Все готово. Давайте проверим. Снова отправим письмо с компьютера внешнего пользователя. Теперь перейдем на FortiMail в меню Monitor > Logs. В поле History можно увидеть запись о том, что письмо было принято. Для получение дополнительной информации можно кликнуть на запись правой кнопкой мыши и выбрать пункт Details:



Для полноты картины проверим, может ли FortiMail в текущей конфигурации блокировать письма, содержащие спам и вирусы. Для этого отправим тестовый вирус eicar и тестовое письмо, найденное в одной из баз спам писем (http://untroubled.org/spam/). После этого снова перейдем в меню просмотра логов:



Как видим, и спам, и письмо с вирусом были успешно опознаны.

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

Если у вас возникли сложности или вопросы по решению, пишите их в комментариях, мы постараемся оперативно на них ответить.

Заявку на запрос триальной лицензии для тестирования решения вы можете оставить здесь.

Автор: Алексей Никулин. Инженер по информационной безопасности Fortiservice.