Русский
Русский
English
Статистика
Реклама

Mail security

FortiMail конфигурация для быстрого запуска

15.10.2020 08:09:44 | Автор: admin


Приветствуем! Сегодня мы расскажем как сделать первичные настройки почтового шлюза 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://personeltest.ru/away/untroubled.org/spam/). После этого снова перейдем в меню просмотра логов:



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

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

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

Транспортный агент MS Exchange для защиты от вирусов и нежелательной почты

18.06.2021 12:04:53 | Автор: admin

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

Пример зловреда, с которым встроенные механизмы Exchange не справилисьПример зловреда, с которым встроенные механизмы Exchange не справились

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

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

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

Мы в Контуре ежедневно получаем горы вредоносных писем, насмотрелись на разные варианты угроз, и если с вложениями как-то еще было можно бороться, то со ссылками была беда. Поэтому мы решили сделать свой транспортный агент библиотеку для Edge серверов для борьбы с прилетающими по почте вредоносами и фишингом.

История разработки

Сначала мы дописывали StripLinks, который в качестве примера транспортного агента представлен Microsoft, а затем прикрутили к нему функциональность опенсорсного ExchangeAttachmentFilter для фильтрации по имени файлов. Этого нам показалось мало и мы добавили туда анализ контента файлов алгоритмом Ахо-Корасик и регулярками, анализ текста, заголовков и темы письма, а еще обезвреживание автозапуска в pdf.

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

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

Попутно пришлось устранить всякие баги в YARA, из-за которых на сервере через N тысяч операций кончалась память, и служба транспорта падала.

Разработанное мы решили выложить обратно в опенсорс вдруг кому-то послужит с пользой, как нам. Вот ссылка на репозиторий с агентом.

Как это работает

Архитектура агента предполагает модульность: есть кучка небольших компонентов, каждый из которых умеет проверять что-то одно:

  • Совпадение отправителя и получателя письма

  • Опасные шаблоны в теме письма

  • Ссылки в тексте письма

  • Опасные шаблоны в тексте письма

  • Подделку MessageID

  • Потенциально опасные заголовки письма

  • SMTP сессию

  • Проверку вложения по имени

  • Проверку вложения YARA на наличие вредоносных сигнатур

  • Проверку содержимого архивов остальными файловыми модулями

Правила для проверки задаются в формате YARA-правил для файлового анализа и в XML для других модулей. В отличие от встроенных механизмов эксченджа, эти правила дают возможность полного контентного анализа, а не только поверхностного принятия решения на основе расширения файла.

Примеры сработки правил могут быть самые разные: опасные вложения, подмена адресов, наличие ссылок, определенные форматы, белые/черные списки любых параметров письма, определенные хеши, наличие в тексте каких-нибудь указанных кошельков, требование выкупа и так далее, на что фантазии хватит. Есть возможность создания как разрешающих, так запрещающих правил.

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

  • Пропустить

  • Отклонить

  • Добавить в тему письма надпись "опасно"

  • Добавить в письмо служебный заголовок, на который обратят внимание следующие инструменты защиты

Модули по заданным правилам могут логировать происходящее. Лог сохраняется в локальный файл в формате JSON. Например, полезно собирать инфу об урлах или статистические данные вроде количества похожих писем для разных получателей. У нас лог отправляется в elasticsearch, откуда мы уже забираем данные для дальнейшего анализа. Собранные данные можно отдельно прогонять по репутационным базам или проводить ретроспективный поиск при расследовании инцидентов.

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

Что мы хотим от публикации в опенсурс?

  • Идеи, как можно было бы улучшить/поправить инструмент

  • Помощь энтузиастов в развитии агента

  • Дать коллегам по цеху инструменты и идеи, как можно оградить своих пользователей от почтовых угроз

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru