Как фильтровать отправителей без ввода полного домена в get-messagetrackinglog?

Как фильтровать отправителей без ввода полного домена в get-messagetrackinglog?
by Pavel Nagaev on 13/05/2016 in PowerShellТрекинг сообщений
В Microsoft Exchange Server существует несколько способов отслеживания сообщений. Самым эффективным и гибким из них является трекинг с помощью командлета Get-MessageTrackingLog. Вся гибкость поиска сообщений проявляется если администратор имеет определенные навыки при работе в PowerShell, но у Get-MessageTrackingLog есть один недостаток.  Встроенная фильтрация по отправителю или получателю требует ввода полного адреса отправителя, wildcard символы, типа звёздочек не поддерживаются.
Это очень неудобно, т.к. зачастую пользователи обращаются с просьбой посмотреть не приходило ли письмо от какого-нибудь туристического агенства или фирмы у которых известен только домен. Но в PowerShell конечно же есть решение.Давайте рассмотрим пример использования звёздочек.
Get-MessageTrackingLog -Start "05/23/2011" -Sender "*travel*"
Но получаем ошибку.
Specified proxy address «*travel*» is invalid: «*travel*» isn’t a valid SMTP address. The domain name can’t contain spaces and it has to have a prefix and a suffix, such as example.com.
Поскольку «напрямую » это неудобно, то можно воспользоваться командой where-object
Get-MessageTrackingLog -Start “03/01/2014” -ResultSize Unlimited |where-object {$_.Sender -like "*travel*"}|
select-object timestamp,eventid,messageid,sender,recipients,messagesubject | out-gridview
В вышеприведенном коде мы отбираем все записи из трекинга сообщений, начиная с 1 марта 2014 года, затем выбираем из них те, у которого отправитель содержит подстроку «*travel*» и выводим определенные поля в графическую таблицу.
Средство Out-gridview даст нам возможность удобно прокручивать, сортировать и фильтровать данные. Чтобы out-grid работал, необходимо установить оболочку PowerShell ISE.
Выглядит это примерно так:




проверка SMTP сервера через Telnet

Для авторизации на почтовом сервер с с помощью AUTH LOGIN, нам нужно преобразовать имя и пароль пользователя, из-под которого будет отправляться письмо в формат Base64. Это можно сделать с помощью скриптов или онлайн сервисов. Я воспользоваться сайтом https://www.base64encode.org/ или https://calcus.ru/base64.

Имя пользователя:  testuser@contoso.com, в кодировке  Base64 получилось: dGVzdHVzZXJAY29udG9zby5jb20=

Пароль: $up3RsTr)ng — в Base64 JHVwM1JzVHIpbmc=

конвертация имени и пароля в формат base64

Теперь в командой строке с помощью Telnet подключаемся на 25(SMTP) порт нашего почтового сервера (вводимые команды я буду выделять синим цветов):

telnet mail.contoso.com 25

Если это Exchange, он вернет что-то вроде;

220 mail.contoso.com Microsoft ESMTP MAIL Service ready at Thu, 10 Aug 2015 14:25:30 +0300

Представимся:

ehlo sender.contoso.com

Сервер вернет список поддерживаемых типов авторизаций и возможностей. Как вы видите базовая авторизация (AUTH LOGIN) в списке имеется.

250-mail.contoso.com Hello [192.168.100.15]
250-SIZE 36700160
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH LOGIN
250-8BITMIME
250-BINARYMIME
250 CHUNKING

Сообщаем SMTP серверу, что мы хотим авторизоваться с помощью имеющейся учетной записи:

AUTH LOGIN

Сервер должен ответить:
334 VXNlcm5hbWU6

Теперь вставляем имя пользователя в формате Base64, которое мы закодировали ранее:
dGVzdHVzZXJAY29udG9zby5jb20=

Сервер должен ответить:

334 UGFzc3dvcmQ6.

Теперь пора вставить пароль в формате Base64:
JHVwM1JzVHIpbmc=

Если имя и пароль пользователя верны, сервер ответит.
235 2.7.0 Authentication successful

Если нет:

535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6

отправка письма из telnet с smtp аутентификацией - 235 2.7.0 Authentication successful

Теперь можно заполнить стандартные поля письма:

mail from: testuser@contoso.com
250 2.1.0 Sender OK
rcpt to: admin@contoso.com
250 2.1.5 Recipient OK
data
354 Start mail input; end with .
from: TestUserovich <testuser@contoso.com>
to: TheAdmin < admin@contoso.com >
Subject: Test BASE SMTP Authenticated via Telnet
This is test
.
250 2.6.0 <ae80548d-cb8a-4c79-ad80-55b1190df753@mail.contoso.com> [InternalId=6384384] Queued mail for delivery

отправка письма из командной строки с выполнением ауторизации на сервере smtp

QUIT

221 2.0.0 Closing connection.
Connection closed by foreign host.




Запрет отправки писем с внешнего IP от имени своего домена.

Prevent Spam Mail From Your Own Domain in Exchange 2007

One of the biggest bug-bears with spam is the spam that comes from (or supposedly comes from) random_username@yourdomain.com or even your_username@yourdomain.com. This is known as spoofed mail and is a common technique that spammers use to try to get mail past Anti-Spam software.

From the Anti-Spam logs on my own server in the last 24-hours, I have received 1,974 emails (out of 17,432 in total) where the sender domain matched the recipient domain. This is about 11.3% of all mail that hit my server, so it is a relatively large problem. Factor that up to a year’s worth of mail and you get 720,510 a year.

To prevent this from happening, you simply need to remove a specific permission that allows anonymous senders to use your internal domain names in the Mail From section of an email. If anyone tries to do this (anonymous users only) they will receive a “550 5.7.1 Client does not have permissions to send as this sender” message.

The syntax to remove the permission should be entered as follows in the Exchange Management Console:

Get-ReceiveConnector “My Internet Receive Connector” | Get-ADPermission -user “NT AUTHORITY\Anonymous Logon” | where {$_.ExtendedRights -like “ms-exch-smtp-accept-authoritative-domain-sender”} | Remove-ADPermission

(You need to change the “My Internet Receive Connector” part in the above syntax)

Having run this command successfully, test using Telnet to your mail server from an external computer and see what happens if you try to send mail as one of your internal domain names. You should receive the 550 5.7.1 Message.

N.B. To put the permission back (in case you need to), please run the following:
Get-ReceiveConnector “My Internet Receive Connector” | Get-ADPermission -user “NT AUTHORITY\Anonymous Logon” | where {$_.ExtendedRights -like “ms-exch-smtp-accept-authoritative-domain-sender”} | Add-ADPermission

If you have internal photocopiers and other hardware that needs to relay via your Exchange 2007 server and you cannot configure them with a username / password, then removing the above permissions will prevent you from relaying and will cause you problems.




Принудительное обновление глобальной адресной книги.

Принудительное обновление глобальной адресной книги.

 В этой статье хочу остановиться на Offline Address Book (OAB) в Exchange2010, а именно где в Exchange 2010 настраивается OAB, как настроить обновление OAB на MS Outlook

Автономная адресная книга (OAB) — это копия адресной книги, загружаемая в MS Outlook для того, чтобы после отключения от сети, пользователь мог продолжать использовать записи, хранящиеся в ней .
Существует два способа распространения OAB — это:
•    Веб-распространение (актуально для Outlook 2007 и выше) ;
•    Распространение через Public Folders (актуально для Outlook 2003 и ниже).

Для того, что бы посмотреть какой из способов у вас используется или включить\ отключить один из  способ, достаточно зайти «Organization Configuration- Mailbox- Offline Address Book» правой кнопкой на вашу OAB выбираем «Свойства- вкладка Distribution»


Как посмотреть на какие URL адреса опубликована OAB. Для этого необходимо зайти в «Client Access- Offline Address Book Distribution» правой кнопкой по OAB выбираем «Properties- вкладка URLs».

В конфигурации Ms Exchange 2010 имеется так же, глобальная адресная книга будет обновляться каждые 24 часов в 5 утра по умолчанию. Но это можно поменять если зайти «Organization Configuration- Mailbox- Offline Address Book» правой кнопкой на вашу OAB выбираем «Свойства- вкладка Generals- кнопка Customize».

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

Чтобы решить эту проблему выполните следующее:

Запустите команду в powershell:
Get-OfflineAddressbook | Update-OfflineAddressbook
Или зайдите в «Organization Configuration- Mailbox- Offline Address Book» правой кнопкой на вашу OAB выбираем «Update»

Затем выполните команды powershell на почтовом(ых) сервере(ах) с ролью MAILBOX:
net stop MSExchangeSA & net start MSExchangeSA
или подключаетесь к Exchange серверу с ролью Mailbox, заходим в «Server Manager- Configuration- Services» правой кнопкой по службе Microsoft Exchange System Attendat и выбираем «Restart».

НА серверах CAS команду powershell:
net stop MSExchangeFDS & net start MSExchangeFDS
или подключаетесь к Exchange серверу с ролью CAS, заходим в «Server Manager- Configuration- Services-» правой кнопкой по службе Microsoft Exchange File Distribution и выбираем «Restart».

После этого в Outlook 2010 нажимаете «Файл- Настройка учетных записей- Загрузить адресную книгу».

Откроется окно Автономная адресная книга, смотрим, что бы стояла галочка «Загрузить последние обновления»  и нажимаем«ОК»

Для Outlook 2007 –«меню Сервис — Отправить/получить — Загрузить адресную книгу».

 

Я очень надеюсь, моя статья помогла Вам! Просьба поделиться ссылкой с друзьями: