среда, 29 ноября 2017 г.

Настройка DKIM записи домена на Exchange 2010/2013/2016

   Всем привет, столкнулся с проблемой что не всегда письма доходят получателям. Письма валились в спам получателя.

SPF и DMARC записи были настроены ранее. Инфы по ним полно. Каждый делает согласно своим требованиям)

Итак поехали, Exchange не имеет на борту решение для подписи писем DKIMом.

1. Качаем https://github.com/Pro/dkim-exchange/releases/latest
2. Запускаем Configuration.DkimSigner.exe
3. Ругнеться на то что нету конфиг файла ( что не удивительно ) Жмем кнопку Install и ждемс
4. В процессе установки будет перезапущена служба транспорта Exchange

5. Это уже установленный DKIM Signer. Жмем Configure и смотрим что бы наша программа была в самом внизу цепочки отправки письма. Должно быть примерно так:



6. Идем на вкладку DKIM Settings, и видим что будет подписано подписью. В принципе я тут ничего не менял.

7. Идем на вкладку Domain Settings
    

   7.1 Жмем кнопку Add
   7.2 Domain Name - Сюда пишем Ваш домен
   7.3 Selection - вписуем mail
   7.4  Жмем Generate new key, ключ будети сгенерирован и предложит его сохранить куда то.
   7.5 Клацаем Сохранить домен.

Теперь идем в настройки DNS вашего домена
Добавляем TXT записи следующего характера

_domainkey.<имя_вашего_домена>. TXT "t=s; o=~;"

и

mail._domainkey.<имя_вашего_домена>. TXT "<сюда вставляем значение что выдала нам программа, копируем все с поля Suggested DNS record>"

Будьте внимательны, если вы ключ генерировали, он длинный, скопировать нужно все.

После применении изменений на записях вашего Домена
   
7.6 Жмем Check, у Вас должна появиться зеленная надпись что все ок)

Я Вас поздравляю, теперь у Вас письма подписуются что есть несомненым + в карму вашего сервера для мира))) 

Проверить можно отправив письмо на gmail.com и посмотрев заголовки письма, нужно найти DKIM PASS 

так же можно проверить на по следующей ссылке googleapps Check DNS
обязательно при проверке напишите ваш Селектор, потому что проверка будет провалена. 

среда, 7 июня 2017 г.

Настройка DAG на Exchange 2013 (отказоустойчивый кластер для почты)

       Сегодня мне бы хотелось поделиться опытом настройки DAG на сервере с Exchange и проблемами с которыми я столкнулся при его настройке.
Условия:

1. У вас должно быть поднято два сервера с Exchange
2. Диски на серверах должны быть одинаковыми. К примеру. на Сервере А один диск обьемом 500Гб, на втором должно быть тоже самое, один диск с 500Гб. Это нужно для того, что бы базы данных почтовых ящиков хранились в одних и тех же местах.
3. Сервер смотритель. У меня таким сервером выступил Контролер Домена.

Итак, поехали:

Создаем в группе вашего леса компьютер с именем будущего DAG, после создания, сразу же задизейблим его. После чего открываем его свойства, и

После чего открываем его свойства, и добавим ему полные права для серверов Exchange и так же добавим его в группу Exchange Trusted Subsystem

Так же нужно группу Exchange Trusted Subsystem добавить в группу Администраторов:
Если у вас не домен, то нужно добавить в группу локальных Администраторов.


Далее нужно настроить сеть для репликации базы данных. К вашим серверам ексчендж добавляете вторые сетевые карты, которые смотрят только внутри себя. (Это при условии что у вас сервера крутятся на Гипервизоре) 

Настраиваете на каждом сервере ексченджа свой айпи, к примеру Сервер А 10.0.0.1, Сервер В 10.0.0.2, так же народ рекомендует отключить регистраицю днс на єтих интерфейсах.

PS Лично я делал репликацию по внутреней сети Hyper-V не использовав доп интерфейсов. Потому как Сетевая карта будет виртуальной, и нагрузку сетевая карта все равно получит в не зависимости она будет отдельная или нет. По вопросу безопасности, у меня сеть изолирована от внешнего мира. По этому поступил именно так.


Еще нужно на сервере свидетеле создать каталог, который будем указывать при создании DAG. У меня это папка DAGWitness в корне диска C: на контроллере домена.


Подготовительные работы мы закончили, начинаем создание DAG

Идем в консоль управления Exchange (ECP), заходим Servers => Database Availability Groups, и жмем +.




Заполняем все поля. Обратите внимание на IP, здесь вы должны указать IP для сервера ДАГ. Что я имею в виду, смотрите свою сеть, выбираете любой свободный, удобный для вас IP, и вписуете его. В Дальнейшем по этому IP вы сможете пинговать и проверять свой кластер.  И жмем Save.


Далее становитесь на ваш созданый ДАГ и жмете на шестеренку
Выбираем наши сервера с Ексченджем и жмем Save.

Начнется проверка параметров Серверов и установка и настройка ДАГ выглядит это так.
Вот тут у меня началось самое интересное. Постоянно выбивало ошибки, не знаю с чем они были связанные, но я сервера и перегружал, и настраивал вторый сетевые карты. Решение не мог найти, пока не попал на статью, о том что нужно проверить установлена ли служба  WindowsFeature FailoverCluster
Что бы это проверить заходим в PowerShell на каждом сервере с Ексченджем и вводим команду Get-WindowsFeature Failover*
Должны на выводе получить:
Если же у вас состояние службы светиться как не установлено то кластер вам не поднять. Вам нужно установить службу командой 
Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools
После чего сервер попросит перезагрузку что мы ему любезно разрешим, и после того как запуститься проверяем установились ли службы, той же командой что была написана выше Get-WindowsFeature Failover*

ЗЫ Эти службы должны были сами установиться, почему этого у меня не произошло, я не выяснил.
После того как вы проверите оба сервера Ексченджа и службы будут установлены открываем еще раз админ панель Ексченджа, заходим на ДАГ, добавляем сервера, и жмем сохранить. После того как он проверит и не обнаружит ошибок он создаст ДАГ
После этого этапа у вас будет созданный ДАГ Кластер. 

Перейдем к следующему шагу. 
Теперь нам нужно создать копии баз данных на втором сервере, для этого заходим Servers => Database, нажимаем три точки, чтобы увидеть доп. меню и в нем выбираем Add database copy
В мастере выбираем, на какой сервер будем реплицировать
и Ждем завершения создания копии Базы данных
Но у меня выскочила ошибка, о том что невозможно прочитать файл базы данных. 
Решить ее можно банальным способом. Открываем опять Servers => Database,
Жмем кнопку "Обновить" она будет на месте где сейчас у меня кнопка "активировать" и жмем повтор операции на сохранение, после этого база начнет чудесно копироваться, Если у вас выскочит повторно ошибка, повторите действия. Так же при нажатии кнопки сейв, вам выскочит сообщение что перед продолжением, вам требуется удалить старую копию БД, на что вы любезно соглашаетесь,, и процес пойдет в нужном русле. 

Таким образом добавляете копии всех БД что у вас есть на вашем основном сервере. 


Итак, я вас поздравляю! Вы настроили Отказоустойчивый DAG кластер на вашей почте. 
Важный момент, что бы случае отказа Сервера А, письма ходили и дальше, вам нужно правильно настроить DNS записи вашего домена. Или использовать балансировщик нагрузки. Но обо всем этом в следующих статьях. Спасибо за внимание. 

понедельник, 24 апреля 2017 г.

Hyper-V 2012 Core Высокий пинг на VM Дополнено

Добрый день!
Три дня борол Сервер с Hyper-V 2012 Core
Суть проблемы. При настройке интерфйса на самом сервере пинг нормальный.
Но когда пробрасываем сетевой порт на Виртуальную Машину (ВМ) сразу рос пинг, не понятно почему... Итак решение:

1. Нужно отключить все что связано с VMQ на самих ВМ
2. Так же нужно отключить VMQ на Самом Hyper-V для этого:
    -В командной строке пишем powershell
    -PS C:\> Get-NetAdapterVmq Name * | Where-Object -FilterScript { $_.Enabled }
Этой командой вы получите список интерфейсов где включен VMQ
    Cледующим шагом отключаем VMQ
    -PS C:\> Disable-NetAdapterVmq Name
После нажатия Ентер, вам нужно будет ввести имена сетевых интерфейсов (у меня это было NIC1...4)
когда по порядку ввели все интерфейсы, жмем просто ентер. И команда отрабатываеться. 

Проверяем остались ли интерфейсы с включенным VMQ командой:
Get-NetAdapterVmq Name * | Where-Object -FilterScript { $_.Enabled }

Если пусто, я Вас поздравляю!!)) 

Дополнение:
Победа была не длительной)) Через какое то время началось тоже самое, я неделю убил на поиски причины, поставил уже другую сетевую карту серверную, но она не помогла. 
Решение пришло от датацентра)) За что им огромное спасибо. Они прислали письмо с темой что наш внешний IP попал в спам базу. Это вызвало у меня недоумение, так как на сервере еще не крутились сервера, а только парочка тестовых. У меня в качестве роутера выступает ВМ Керио Контрол, когда я его открыл, то я увидел более 3000 подключений с внешних Айпи. Потом я залез в IP конфигурацию. Оказалось! Что когда я пытался попбороть пинг, я включал и выключал опции керио. Таким образом я мало того что открыл прозрачный прокси, так и разрешил ходить любому трафику через мой сервер. Тут же каким то образом злоумышленики выцепили мой сервер, и начали с него слать письма. Вот такие дела) 
Закрыл прокси, и пинг залетал! теперь это в районе 1-2мс. Спасибо!

четверг, 2 марта 2017 г.

Exchange 2013 Настройка СПАМ Фильтрации Способ №2

Установка Агентов анти-спама Exchange 2013 производится из powershell. Используется относительная ссылка на установочный дистрибутив, но если его нету нужно указать точный адрес.

& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1

После установки агентов обязательно нужно перезапустить службу Транспорта Exchange, либо полностью ОС.

Restart-Service MSExchangeTransport

Чтобы внутри домашней сети почта ходила без фильтрации нужно обязательно указать адреса внутреннего smtp:

Set-TransportConfig -InternalSMTPServers @{Add="0.0.0.0","1.1.1.1"}
Get-TransportConfig | Format-List InternalSMTPServers


Первым делом нужно включить фильтрацию по spf записи. Это убьет 99% бредового спама.

Set-SenderIdConfig -Enabled $true
Set-SenderIdConfig -SpoofedDomainAction Delete


Если вдруг появится почтовый домен с которого нужно пропустить проверку spf — нужно его добавить в список такой командой:


Set-SenderIdConfig -BypassedSenderDomains @{Add="microsoft.com"}


Следом стоит включить фильтр получателей. Почта адресованная несуществующим пользователям перестанет обрабатываться.

Set-RecipientFilterConfig -Enabled $true
Set-RecipientFilterConfig -RecipientValidationEnabled $true



Как вариант можно использовать фильтр по оценке контента.

Set-ContentFilterConfig -ExternalMailEnabled $true
Set-ContentFilterConfig -SCLDeleteEnabled $true -SCLDeleteThreshold 9 -SCLRejectEnabled $true -SCLRejectThreshold 7 -SCLQuarantineEnabled $true -SCLQuarantineThreshold 6 -QuarantineMailbox:spam@domain.ru


Чтобы удалить агенты анти-спама:


& $env:ExchangeInstallPath\Scripts\uninstall-AntispamAgents.ps1 



Так же полезная команда которая отобразит активные агенты 
Get-TransportAgent


Информация любезно copy-pasted с ссылки http://arozhk.ru/blog/soft/anti-spam-exchange-2013

Exchange 2013 Настройка СПАМ Фильтрации

Для настройки SPAM Фильтра запускаем PowerShell на нашем Exchange.

установим встроенные анти спам агенты:
& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1

Перезапустим Транспортную службу:
Restart-Service MSExchangeTransport

Добавим пару провайдеров с ЧЕРНЫМ списком доменов
Add-IPBlockListProvider -name bl.spamcop.net -lookupdomain bl.spamcop.net
Add-IPBlockListProvider -name zen.spamhaus.org -lookupdomainzen.spamhaus.org    
Add-IPBlockListProvider -Name dnsbl.sorbs.net -LookupDomain dnsbl.sorbs.net

Добавим настройку для агентов, так же перед этим действием вам нужно создать ящик для "отклоненных писем" например spam@yourdomain.com
Set-SenderIDConfig -SpoofedDomainAction Delete
Set-SenderReputationConfig -SenderBlockingEnabled $true -SrlBlockThreshold 6 -SenderBlockingPeriod 36
Set-SenderFilterConfig -BlankSenderBlockingEnabled $true
Set-ContentFilterConfig -SCLQuarantineThreshold 6
Set-ContentFilterConfig -SCLDeleteEnabled $true
Set-ContentFilterConfig -SCLQuarantineEnabled $true -QuarantineMailbox 
spam@yourdomain.com
Set-ContentFilterConfig -SCLRejectEnabled $false

Добавим пару провайдеров с БЕЛЫМ Списком Доменов
Add-IPAllowListProvider -name swl.spamhaus.org -lookupdomain swl.spamhaus.org
Add-IPAllowListProvider -name iadb.isipp.com -lookupdomain iadb.isipp.com
Add-IPAllowListProvider -name query.bondedsender.org -lookupdomain query.bondedsender.org
Add-IPAllowListProvider -name hul.habeas.com -lookupdomain hul.habeas.com

Финальным штрихом является добавление IP ваших smtp серверов
Set-TransportConfig -InternalSMTPServers @{Add="0.0.0.0","1.1.1.1 "}

_________
Вдруг вам понадобиться удалить Агентов Антиспама, выполняем команду:
& $env:ExchangeInstallPath\Scripts\uninstall-AntispamAgents.ps1


ТАК же есть другой метод настройки,
смотрите по следующей ссылке:
ТЫЦЬ

LOGOFF – завершение сеанса пользователя Windows

  LOGOFF – завершение сеанса пользователя Windows . Команда MODE используется для завершения сеанса пользователя (выхода из Windows). Формат...