Индексация и Exchange 2016


Меня страшно ругали в комментариях: мол спустись на землю уже и пиши про проблемы “простой нарот”. Пишу. Налетели на крайне интересное поведение в 2016. На одном из почтовых серверов в DAG перестал работать поиск. Как понятно, была применена классическая инструкция TR, и состояние статуса индексов писало в ЕСР “Исправен“. Но оно и до проблемы так писало, т.е. не поменялось ничего. Странность проявилась в том, что папки со гуидами на диске не создавались. Видели вы когда-нибудь такое? И по-прежнему было сообщение “Healthy”.

Continue reading “Индексация и Exchange 2016”

ShadowMessagePreferenceSetting и его друзья


Администратор одной почтовой системы обратился ко мне с вопросом, и описал свою среду. У него имелись (для простоты) два сайта AD, и по 2 сервера в каждом сайте. Были собраны 2 DAG’a и растянуты между сайтами,  SiteAMBX1 был  в одной группе с SiteВMBX1 и аналогично, SiteAMBX2 вместе с SiteВMBX2. И возник довольно простой вопрос, почему же теневые копии писем отправляются не на локальный, “домашний” сайт сервера, который их отправил, а по WAN каналу в удаленный? (казалось бы)

Screenshot_7Если мы обратим взор на параметры транспорта, то увидим настройки для теневых копий по умолчанию,

из которых следует, что для создания теневой копии по умолчанию будет использоваться параметр PreferRemote, который будет стараться предпочитать удаленный сайт, и только в том случае, если это не удастся, будет использован локальный сайт.

Сделано это для повышения надежности транспорта, и надо признать, надежность транспорта в 2013 версии была сильно увеличена, по сравнению с предыдущими версиями.

Все остальные параметры теневых копий (RemoteOnly, LocalOnly)  и не только их можно подсмотреть тут: https://technet.microsoft.com/en-us/library/bb124151%28v=exchg.160%29.aspx

Вспомнить, как что работает, помогут вот эти ссылки:

http://www.msexchange.org/articles-tutorials/exchange-server-2013/planning-architecture/exchange-2013-mail-flow-part1.html

http://www.msexchange.org/articles-tutorials/exchange-server-2013/high-availability-recovery/transport-high-availability-exchange-2013-part1.html

https://technet.microsoft.com/en-us/library/aa996349%28v=exchg.150%29.aspx

Вот такие вопросы и такие ответы на них были даны. Задавайте почаще разные вопросы себе, сомневайтесь, и проверяйте практикой, как и что работает- и все будет работать отлично!

 

 

Обновляйте свои почтовые серверы…


хотя бы периодически.

Кейс сегодня такой- коллега обратился с проблемой: после смены почтового домена на другой, который долгое время переходного периода был не дополнительным, а стал основным, ActiveSync устройства стали отправлять дополнительные копии сообщений. Причина проста:

Senders receive a message copy after they click “Reply to All” in Exchange ActiveSync

This problem occurs because the client is receiving multiple PrimarySmtpAddress values in the response to the Settings command from the server that is running Exchange Server. When the user clicks Reply to All, the client does not detect the second PrimarySmtpAddress value within the recipient list. Therefore, the client includes the sender as a recipient.
The second PrimarySmtpAddress value is any SMTP address for the mailbox that is prefixed by an all-capitalized code value. The most common examples of such a value are the “SIP” address for Microsoft Lync and the “NOTES” address for Lotus Notes.

Решение: обновляем вовремя почтовые серверы, чтобы не наступать на закрытые грабли.

Или Workaround, предложенный в той же статье:

To work around this problem, manually change any existing address that is not the Primary address to all-lowercase characters.

Правильно планируйте почтовые адреса, чтобы они были не Ivanov.Ivan, a ivanov.ivan 🙂

Настройка antispam в Exchange 2013 часть 2


lightbox_email-marketing-not-spam

Жарким летом часто приходится работать со спамом. Сегодня в программе: работаем с настройками фильтров и смотрим на результаты сражений. Итак,

#добавим пачку доменов на основе анализа писем.
set-senderfilterconfig  -BlockedDomains @() -BlockedDomainsAndSubdomains ‘veco.ru’,’soft-shop.ru’,’time-speed.ru’,’fssprus.ru’,’auto35.ru’,
‘meridianyachts.com’,’kuponator.ru’,’org.ru’,’dawap.ru’,’samsungservice.ru’,
’emarsys.net’,’medialand.ru’,’dessy.ru’,’ycc.ru’,’collectmail.ru’,’lesta.ru’,’kards.ru’,’gu-sta.ru’,’shopv.ru’,’at’,’mx’,
‘etna-mebel.ru’,’sclub.ru’,’il’,’groupon.ru’,’de’,’email4u.ru’,’asana.com’,’sovmusic.ru’,’khab-msc.ru’,’g-zocm.ru’,’ideavl.ru’,
‘megatl.ru’,’tomsk.ru’,’uaservera.me’,’ukrhost1.org’,’pavlovsk-spb.ru’,’hensel-electric.ru’,’subscribe.ru’,’telecet.ru’,’bizhelp.ru’,
‘brok-kredit.ru’,’ar’,’a-book.ru’,’simpaceboss3.com’,’elita-mineral.ru’,’venere.ru’,’vitra-russia.ru’,’contrada.ru’,’mporum.ru’,’adviser.ru’,
‘akadeti.ru’,’me’,’fotostrana.ru’,’commandocenter.ru’,’facebookmail.com’,’lamoda.ru’,’ebay.com’,’resurs-trading.ru’,’medialt.ru’,’booking.com’,
‘bezdorog.ru’,’irkgaz.ru’,’vladfood.ru’,’ponyexpress.net’,’budgetplaces.com’,’fashion.asos.com’,’dpd.ru’,’avaaz.org’,’ufa-msc.ru’,’mnogo.ru’,
‘msxboss2.info’,’aviacor.ru’,’info’,’in’,’nhosppharma.ru’,’tekora.ru’,’name’,’ua’,’ca’,’metrogistics.com’,’ostrovok.ru’,’helinger.com.ua’,’cp20.com’,
‘ibl.ru’,’usndr.com’,’postila.ru’,’yahoo.com’,’bk.ru’,’kupon.ru’,’imarket2.ru’,’sxboss2.org’,’bounce.studio-moderna.mkt5269.com’,’mikrokupon.ru’,
‘biglion.ru’,’cccampaigns.com’,’metaltrade.ru’,’wikimart.ru’,’kupivip.ru’,’grouponmail.ru’,’business.ru’,’macstalone.org’,’retailrocket.net’,’moldran.com’,
‘dantachase.com’,’pensionlawyers.com’,’ipyro.me’,’highgrove.net’,’comure.ru’,’gomana.ru’,’libtrade.com’,’in.ua’

Снимок

======================================================================

Компания, которая использует фильтр сразу и абсолютно точно не ждет писем из Мексики, Аргентины, других стран. Она просто с ними не работает, поэтому можно сразу же не принимать письма от таких доменов.

Можем добавить несколько фраз, по которым будем отсекать рекламные письма

add-contentfilterphrase -Phrase ‘Плати’
add-contentfilterphrase -Phrase ‘Кузбасс’

Будем блокировать домены  отправителей нехорошего . Сохраним код в ps.1 для удобства.

$blckdomain = Read-Host “Какой домен будем блокировать?”;
Set-SenderFilterconfig -BlockedDomainsAndSubdomains @{Add=”$blckdomain”};
Get-SenderFilterConfig | fl blocked*;
pause

Снимок

Если допущена ошибка, то выпилить случайно затесавшийся домен можно так:

Set-SenderFilterConfig -BlockedDomainsAndSubdomains @{remove=”domain.ru”}

Заблокируем IP подсеть Continue reading “Настройка antispam в Exchange 2013 часть 2”

Http redirect Exchange 2013


Всем привет.

Я уже писал о том, что крайне удобно сделать перенаправление http для пользователей Exchange  в организации, да и не только. Этот метод применим и к другим часто посещаемым  пользователями порталам, и особенно помогает при доступе с планшетов и прочих устройств.

Настроить его совсем не трудно, а вот обновлять проблематично- ведь при каждом обновлении сервера теряется вся кастомная конфигурация, которую Вы настроили. Как же быть? Конечно, призвать на помощь Powershell!

С помощью onelinerов ниже Вы легко вернете (или настроите) redirect для своих сайтов Exchange.

Set-WebConfiguration system.webServer/httpRedirect “IIS:\sites\Default Web Site” -Value @{enabled=“true”;destination=https://razbornov.ru/owa”;exactDestination=“false”;httpResponseStatus=“Found”;childOnly=“true”}

Set-WebConfiguration system.webServer/httpRedirect “IIS:\sites\Default Web Site\ecp” -Value @{enabled=“false”}

Set-WebConfiguration -Location “Default Web Site/” -Filter ‘system.webserver/security/access’ -Value “None”

Set-WebConfiguration -Location “Default Web Site/Autodiscover” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/aspnet_client” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/ecp” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/EWS” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/owa” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/Microsoft-Server-ActiveSync” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/OAB” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/PowerShell” -Filter ‘system.webserver/security/access’ -Value “None”

Set-WebConfiguration -Location “Default Web Site/Rpc” -Filter ‘system.webserver/security/access’ -Value “Ssl”

Set-WebConfiguration -Location “Default Web Site/mapi” -Filter ‘system.webserver/security/access’ -Value “Ssl”

При этом настройки должны принять следующий вид:

ssl1 ssl2

ssl3

 

Справочная таблица:

Vitual Directory SSL enabled HTTP Redirect
Default website NO Yes
aspnet_client Yes NO
Autodiscover Yes NO
ecp Yes NO
EWS Yes NO
owa Yes NO
Microsoft-Server-ActiveSync Yes NO
OAB Yes NO
PowerShell NO NO
Rpc Yes NO

Создаем цифровую подпись Dkim в Exchange 2013


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

Не так давно еще крупные игроки использовали мягкую политику записей, т.н. soft fail.

“By contrast, Microsoft uses a soft fail. Many third-party vendors who send email messages on behalf of Microsoft for surveys, newsletters, and so on are outside the SPF record that Microsoft uses. Because Microsoft does not own that IP space but still wants those organizations to be able to send email messages on behalf of Microsoft, Microsoft uses a soft fail.”

Цитата из

https://support.microsoft.com/en-us/kb/2640313

А самые внимательные администраторы наверное заметили изменение, произошедшие в этом плане в 2015 году- хотя статья  заливает заявляет про soft fail, на самом деле политика в начале года слегка ужесточилась в сторону reject. И еще добавилась цифровая подпись для сообщений. На outlook.com политика пока мягче, поскольку значительно используется пересылка почты, которая reject не любит.

Снимок

Еще одно изменение- появилась цифровая подпись у писем, о чем говорит наличие открытого ключа в той же TXT записи.

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

Цифровая подпись

DKIM (Domain Keys Identified Mail) — технология удостоверения подлинности отправителя при помощи цифровой подписи, связанной с именем домена. Наличие данной подписи подтверждает, что письмо не было перехвачено и изменено после отправки с почтового сервера отправителя.

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

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

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

Сегодня я бы хотел поговорить о проекте dkim-exchange,который не требует Linux решений и финансовых затрат.

Решение построено на базе транспортного агента, устанавливающегося в дополнение к остальным агентам транспорта, и оказывается проще простого в установке и применении. Итак, скачиваем дистрибутив.

Внимательно смотрим справку и содержимое.

Программа состоит из конфигурационного файла  configuration-dkimsigner-exe-config, в формате xml, в который записываются настройки, и файла программы, запустим его, открыв EMS с повышенными привилегиями, и запустив Configuration.DkimSigner.exe

Убедимся также, что политика разрешает выполнение скриптов

Set-ExecutionPolicy Unrestricted

dkim1

Особенных трудностей интерфейс не составляет, и для тех, кто желает, можно делать все скриптом, не пользуясь мастером. Continue reading “Создаем цифровую подпись Dkim в Exchange 2013”

Настройка antispam в Exchange 2013


AntiSpam_img1

В новом (пока еще :)) Exchange 2013 администрирование функциями анти спама целиком и полностью, как и грозились, перешло на Powershell. Но это может расстроить только тех администраторов, которые не читают библиотеку технет, и раздел , посвященный борьбе с нежелательной почтой в Exchange  2013. Те администраторы, которые и ранее изучали соответствующие статьи, найдут для себя мало нового, а все их домашние заготовки будут работать точно так же. Итак, представим, что мы только что развернули сервер,  и еще не успели настроить защиту. Приступим, открыв консоль EMS.

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

Continue reading “Настройка antispam в Exchange 2013”

Ms-Exch-SMTP-Accept-Authoritative-Domain-Sender и Exchange 2013


Не так давно Exchange 2013 преподнес довольно неприятный сюрприз.

Дело в том, что в Exchange 2013 версии выше, чем SP1 не работает корректно разрешение Ms-Exch-SMTP-Accept-Authoritative-Domain-Sender,  отвечающие за прием сообщений от своего домена. Довольно часто в среде Exchange, начиная еще с 2007 многие администраторы использовали это разрешение, чтобы предотвратить отправку писем от своего домена.

Увы, если мы используем версию выше, чем SP1, то письма от нашего домена будут игнорировать это разрешение, и приходить в организацию. Если Вы используете простейшую инсталляцию без дополнительных средств защиты, то набираемся терпения, и ждем, когда эта досадная ошибка будет исправлена в будущих релизах. (Или пишем транспортное правило для обхода проблемы)

Самое время начинать тестировать решения защиты от спама от внешних поставщиков, у многих из которых есть пробный временный период 🙂

train_wreck

CU7


Краткая заметка про обновление.

dag3

Что понравилось:

1) Ставится быстро, и без проблем- установка заняла ровно 2 часа, в следующий раз запущу инсталлятор из бани 🙂

2) Вновь работает переключение баз с “нижней” версии CU6 и обратно. Я обновлял среду из двух серверов, и по привычке решил проверить это дело. В этот раз чутьё не подвело: база в DAG из двух членов спокойно переезжает с одного члена группы на другого.

На скриншоте видно, что серверы имеют разную версию, и в то же время одна база, которая только что была на “старом” сервере спокойно катается туда и обратно.

dag1dag2

3) Про падение POP3 на серверах после обновления даже не стоит упоминать- привычно поднял сломанную обновлением службу, не обращая особого внимания, поскольку вижу это уже в третий раз:

cas4

Симптоматика проста- сервер не отдает баннера по 110 порту, показывая вместо него курсор, но тем не менее, как порядочный подключается и гордо его показывает. Служба в это время работает, но забрать почту у клиентов разумеется не получается. Лечим просто- переводим компонент в активное состояние.

Set-ServerComponentState -Identity EX01 -Component PopProxy -Requester HealthAPI -State Active

проверяем состояние вновь:

Get-ServerComponentState -Identity EX01

компонент активен, служба тоже отдает баннер

cas3

Что касается других адских хинтов обновления, то был совет от Ильи обновить перед установкой серверы последними патчами безопасности. На одном сервере это прошло хорошо- установив 6 обновлений, сервер попросился на перезагрузку, и после перезагрузки быстро установил обновление  CU7. Со вторым сервером повезло меньше-точно так же его обновив, сервер отказывался устанавливать CU на проверке реквизитов, говоря, что есть апдейты для которых нужна перезагрузка. Перезагрузку пришлось провести четыре раза, после этого сервер успокоился. Вывод, который можно сделать из этого: сначала установим CU, а потом можно обновить сервер, все равно перезагружать придется. Но не 4 раза 🙂

Как бороться с нехваткой места на диске Exchange 2013?


Один из способов- не хранить журналы логов транспорта, если, конечно это позволяет “политика” 🙂

Ограничение в 7 дней вполне подойдет для практики реальной жизни.

Get-TransportService SVEX01 |Set-TransportService -ConnectivityLogMaxDirectorySize 500MB
Get-TransportService SVEX01 |Set-TransportService -MessageTrackingLogMaxDirectorySize 500MB
Get-TransportService SVEX01 |Set-TransportService -IrmLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -ServerStatisticsLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -ActiveUserStatisticsLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -MessageTrackingLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -TransportSyncHubHealthLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -SendProtocolLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -ReceiveProtocolLogMaxAge 7.00:00:00
Get-TransportService SVEX01 |Set-TransportService -TransportSyncHubHealthLogMaxDirectorySize 500MB

Get-TransportService SVEX01 |Set-TransportService -TransportSyncLogMaxDirectorySize 500MB

Также напомню, что если что-то ненужно, то не нужно и не можно это и собирать.

Get-EventLogLevel | where { $_.EventLevel -ge 1} | Set-EventLogLevel -Level 0

Что касается дисков с логами самих служб, я бы привел простенький oneliner:

gci ‘C:\Program Files\Microsoft\Exchange Server\V15\Logging’,’C:\inetpub\logs’ -Directory | gci -Include ‘*.log’,’*.blg’ -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-1) | Remove-Item

Другой вариант решения проблемы- у Ильи в блоге