По статистике за 2020 год до 45% сотрудников организаций открывают фишинговые письма, 20-30% переходят по нежелательным ссылкам в таких письмах, а от 10 до 15% вводят свои учетные данные на фишинговых ресурсах. Данные процентные соотношения взяты с учетом следующих факторов: фишинговые письма обходят все спам-фильтры и доставлены до целей (жертв) письма содержат актуальную информацию для сотрудников той или иной организации в определенный промежуток времени. Поэтому в целях предотвращения утечки данных сотрудников может проводиться заблаговременное социотехническое тестирование. Представленный цикл статей будет посвящен рассмотрению основных этапов в рамках проведения такого вида тестирования. Первая часть данного цикла посвящена подготовительному этапу при проведении тестирования  методами социальной инженерии. Так, будет рассмотрено, как правильно сконфигурировать smtp-сервер с rDNS записью для отправки фишинговых писем,  какие DNS-записи необходимо настроить для дальнейшего обхода спам-фильтров, а также как добавить авторизацию на почтовом сервере. В процессе проведения тестирования методами социальной инженерии мы использовали услуги VPS в основном из-за наличия «белого» IP. Весь процесс настройки будет производиться на Ubuntu 18.04.5 LTS c использованием:  Postfix 3.3.0-1 OpenDKIM 2.11.0 Dovecot 2.2.33.2 Certbot 0.27.0 В качестве примера будет использоваться доменное имя "example.com" и сеть 192.168.10.0/24. Для отправки почтовых писем будет использоваться smtp-сервер Postfix. Установка smtp-сервера Postfix производится командой: Для упрощения процесса конфигурирования во время установки Postfix в пользовательском интерфейсе в списке типов конфигурации сервера необходимо выбрать «Internet Site» для автоматической генерации файла конфигурации main.cf После установки Postfix производим его базовую настройку. Для этого в терминале прописываем команды по изменению доменного имени и сети, из которой будет отправляться почта.  Теперь, когда базовая конфигурация Postfix закончена, необходимо провести дальнейшие настройки, чтобы уменьшить вероятность попадания в спам писем, отправляемых с нашего smtp-сервера. Начнем с настройки DKIM для Postfix. Это цифровая подпись, которая подтверждает подлинность отправителя и гарантирует целостность доставленного письма. Для ее настройки нам понадобится OpenDKIM - открытая реализация системы аутентификации отправителя по DKIM. Установка OpenDKIM производится командой: Cоздаем директорию /etc/opendkim/example.com и генерируем приватный и публичный ключ RSA.  Примечание: для генерации ключей использовался более стабильный openssl, т.к. ключи, которые получались с помощью opendkim-genkey, не проходили проверки на сервисах тестирования записи DKIM.   Далее создаем файл доверенных узлов /etc/opendkim/TrustedHosts и делаем в нем запись следующего вида: В файле /etc/opendkim/signingtable, который будет содержать список подписей, применяемых к сообщениям согласно адресу, указанному в поле заголовка From, создаем запись следующего вида: Файл /etc/opendkim/keytable, который будет содержать таблицу ключей, приводим к следующему виду: Далее открываем конфигурационный файл /etc/opendkim.conf и приводим его к следующему виду: Немного поподробнее про поля, которые были прописаны в файле выше: Domain: параметр, определяющий имя используемого домена KeyFile: параметр, описывающий путь до приватного ключа RSA, полученного с помощью openssl UserID: параметр, который определяет под каким пользователем должен работать процесс OpenDKIM ExternalIgnoreList: параметр, определяющий внешние хосты, которые могут отправлять почту через сервер в качестве одного из доменов подписания без полномочий. InternalHosts: параметр, который определяет перечень внутренних хостов, чьи письма не должны быть проверены, но должны быть подписаны KeyTable: таблица с параметрами подписи SigningTable: список подписей, чтобы применить к сообщению на основе адреса, указанному в поле "От:" заголовка PidFile: путь к PID файлу, который содержит идентификационный номер процесса SignatureAlgorithm: алгоритм создания подписи Socket: определяет параметры сервера OpenDKIM. Postfix будет отправлять сообщения на проверки и подпись через указанный в этом параметре сокет Для взаимодействия Postfix и OpenDKIM в терминале прописываем следующие команды: После настройки Postfix и OpenDKIM проверяем отсутствие ошибок в конфигурационных файлах. Делаем это с помощью команд: Если в ходе проверок не было обнаружено ошибок, то перезапускаем сервисы Postfix и OpenDKIM и проверяем их статусы: *Примечание  Если в ходе проверки статуса OpenDKIM возникает ошибка, связанная с отсутствием pid-файла opendkim.pid, то переходим в /lib/systemd/system/opendkim.service и комментируем следующую строку: После чего еще раз перезапускаем OpenDKIM. После настройки OpenDKIM и создания приватных и публичных ключей переходим к настройке DNS-записей. Подробнее про них можно прочитать на данном ресурсе.  Для SPF создаем DNS-запись следующего вида: В приведенной записи: v - версия, всегда устанавливается как SPF1 ip4 - добавляет IP-адрес сервера, имеющего разрешение отправлять письма a - позволяет отправлять письма с адреса, который указан в записи А на домене mx - позволяет отправлять письма с адреса, который указан в записи MX на домене ~all - определяет, что всем остальным ip-адресам присвоить режим мягкого возврата (попадание в папку «спам»). Для DKIM создаем следующую DNS-запись: В приведенной записи: v - версия, всегда устанавливается как DKIM1 k – тип ключа, всегда указывается как RSA p - сам открытый ключ  Примечание: процесс создания открытого ключа RSA  был описан в предыдущем разделе. Ключ находится /etc/opendkim/<имя используемого домена>/dkimpublic.key Далее для DMARC подписи создаем следующую DNS-запись: В приведенной записи: v - версия, всегда устанавливается как DMARC1 p - правило для домена, none - означает "не делает ничего, кроме подготовки отчетов" aspf - проверка соответствия записей, r - означает, что проверка осуществляется в мягком режиме  sp - правило для субдомена, none - означает "не делает ничего, кроме подготовки отчетов" После добавления всех описанных записей можно сделать проверку, что они действительны. Сделать это можно на известном сервисе Mxtoolbox. Заключительной настройкой на подготовительном этапе будет конфигурирование Dovecot и Certbot. Dovecot в нашем случае необходим, чтобы настроить авторизацию на smtp-сервере. Certbot же позволит управлять SSL-сертификатами от Let's Encrypt. Для установки Dovecot и Certbot используем следующую команду: Для создания сертификатов Let's Encrypt прописываем в терминале следующую команду: После завершения процесса сертификаты будут храниться в /etc/letsencrypt/live/examle.com Далее производим дополнительную настройку Postfix. Для этого в терминале прописываем следующие команды: Следует немного прояснить, что обозначают некоторые параметры в приведенных выше командах: smtpd_tls_cert_file - параметр, отвечающий за местонахождение сертификата сервера smtpd_tls_key_file - параметр, отвечающий за местонахождение закрытого ключа сервера smtp_sasl_auth_enable - параметр, который отвечает за включение поддержки sasl для проверки подлинности почтовых серверов smtpd_sasl_path - параметр, который определяет путь до плагина аутентификации по механизму SASL smtp_sasl_security_options - параметр безопасности, запрещающий механизмы, которые выполняют анонимную проверку подлинности. noplaintext - обозначает не использовать механизмы, которые передают незашифрованное имя пользователя и пароль smtp_sasl_type - тип плагина sasl, используемый для проверки подлинности   smtpd_recipient_restrictions - параметр, отвечающий за список ограничений  Подробно с каждым параметром также можно ознакомиться в документации Postfix. Также можно создать список виртуальных имен. Для этого прописываем следующие строки в конфигурационном файле /etc/postfix/main.cf: Далее открываем файл /etc/postfix/virtual и приводим его к следующему виду: Также в /etc/postfix/master.cf раскомментируем данные строки: Переходим к настройке Dovecot. Открываем файл /etc/dovecot/conf.d/10-auth.conf и прописываем следующие строки: Далее открываем файл /etc/dovecot/conf.d/10-mail.conf и приводим его к следующему виду: В файле /etc/dovecot/conf.d/10-master.conf находим селектор service auth и прописываем следующие строки: Файл /etc/dovecot/conf.d/10-ssl.conf приводим к следующему виду: *Примечание: пути до ключей указываем те, что создались в процессе генерации сертификатов с помощью Certbot выше. Проверяем правильность конфигураций Postfix и Dovecot, после чего перезапускаем данные сервисы и проверяем их статусы: Для проверки корректной настройки Postfix, Opendkim, Dovecot можно использовать сервис Mail-Tester, который позволит протестировать, попадают ли в дальнейшем письма, отправляемые с нашего почтового сервера, в спам. На этом подготовительный этап закончен. В следующей части цикла исследуем процесс разработки тематик фишинговых писем для более эффективных результатов, процесс формирования целевых групп, а также рассмотрим, какие средства лучше всего подойдут для создания фишинговых веб-ресурсов и разных типов писем.