Некоторые картинки не загружаются из РФ и РК, используйте VPN.
Показаны сообщения с ярлыком Exchange. Показать все сообщения
Показаны сообщения с ярлыком Exchange. Показать все сообщения

вторник, 18 июля 2023 г.

Exchange ECP not login after change certificates

После смены сертификата, из-за ошибки ,я не обратил внимания на то, что вход в ECP перестал работать (просто обновлялась страница входа), так как редко пользуюсь, да и DAG обычно посылал на другой сервер.  Поковырявшись я обнаружил вот такую заметку:

During the setup process, a self-signed certificate called Microsoft Exchange is bound to the Exchange Backend website on port 444. The certificate is for communication between the Default Web Site and Exchange Back End websites. When the certificate is removed, the Default Web Site can't proxy connections to the Exchange Back End website.

Хм, интересно. Открыл IIS => Site => Exchange Back End => Edit Bindings => 444 и тут действительно был указан старый сертификат. Для пущей уверенности сравнил со вторым сервером, там был другой сертификат. Установил верную привязку, iis reset не потребовался, так как вход заработал сразу



среда, 12 июля 2023 г.

Exchange 403 4.7.0 TLS handshake failed

Обратили внимание, что отчеты из консоли nexcloud приходят через день. Решил разобраться, в итоге выяснилось, что отчет не приходит только в те дни, когда ведущий сервер mail3, а не Mail2 (кластер из двух серверов Exchange). При этом в логах наблюдается такая запись:

Jul 11 23:29:47 nxtcloud sm-mta[1432736]: 36BGo5fO1427601: to=<aa@domain.ru>, ctladdr=<user@nxtcloud.domain.ru> (1000/1000), delay=03:39:42, xdelay=00:00:00, mailer=esmtp, pri=2100378, relay=mail.domain.ru. [10.20.0.222], dsn=4.0.0, stat=Deferred: 403 4.7.0 TLS handshake failed.

Тестовое подключение проваливается:

user@nextcloud:~$ openssl s_client -starttls smtp -connect mail3.domain.ru:465
CONNECTED(00000003)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 406 bytes and written 341 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

Порты открыты.

При этом к imap подключается как положено

суббота, 1 июля 2023 г.

NGINX + f2b для предавторизации OWA

Использовать VPN - вот мой ответ на большинство вопросов о доступе к ресурсам внутри организации. Но порой VPN не подходят и ставится задача получить прямой доступ. В данном случае запросили доступ к веб интерфейсу сервера Exchange. Я чесал репу и подумал, а не это ли тот самый момент когда стоит окунуться в мир NGINX и Reverse Proxy? Быстрый гугел мне подсказал, что можно на базе NGINX организовать авторизацию, значит "дальше будем действовать мы"...

Library:

четверг, 11 мая 2023 г.

Exchange команды для управления отключенными/удаленными ящиками

Эта заметка по необходимым командам при работе с отключенными/удаленными ящиками

Как посмотреть размер БД (databasesize) и свободное в ней место (availablenewmailboxspace)? (удаленные письма/ПЯ не уменьшают размер базы, а освобождают место под новые письма)

Get-MailboxDatabase -Status | ft name,databasesize, availablenewmailboxspace -auto

Отключенные или удаленные по-умолчанию не удаляются сразу, настройка лимита возможна через ECP в свойствах базы (limits-Keep deleted mailboxes for days)

Как посмотреть список пя со статусом отключен во всех БД

Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как посмотреть список пя со статусом отключен в одной БД (MAIN-DB)

Get-MailboxStatistics –database MAIN-DB | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как посмотреть список удаленных ПЯ со статусом SoftDelete

Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "SoftDeleted" } | ft DisplayName,Database,DisconnectDate,MailboxGUID

Как окончательно удалить почтовый ящик. Identity берем из предыдущих команд (MailboxGUID). Указание MailboxState обязательное, неправильное указание MailboxState приведет к исключению. Дананя команда не удалит почтовый ящик, если он не имеет указанный MailboxState

Remove-StoreMailbox -Database MAIN-DB  -Identity "2556944e-8ccb-4c7e-8bd3-ee2a223b071e" -MailboxState Disabled

Удаление всех ПЯ во всех БД со статусом Disabled

Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -eq "Disabled"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled}

Удаление всех ПЯ в определенной БД (MAIN-DB) со статусом Softdeleted. Напоминаю, –Whatif позволяет посмотреть что будет при выполнении команды, без ее выполнения

Get-MailboxStatistics –Database MAIN-DB  | Where-Object {$_.DisconnectReason –eq “Softdeleted”} | ForEach {Remove-StoreMailbox –Database $_.database –identity $_.mailboxguid –MailboxState Softdeleted}

Возможно потребуется использвать не -eq, а -like и $_.database.name вместо $_.database

Get-MailboxStatistics –Database MAIN-DB | Where-Object {$_.DisconnectReason –like “Softdeleted”} | ForEach {Remove-StoreMailbox –Database $_.database.name –identity $_.mailboxguid –MailboxState Softdeleted}

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

Get-MailboxStatistics -Database MAIN-DB | ForEach {Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false}

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

Connect-Mailbox -Identity "AA" -Database MAIN-DB  -User AA

Восстановить содержимое отключенного пя в другой ящик

New-MailboxRestoreRequest -SourceDatabase MAIN-DB  -SourceStoreMailbox "AA" -TargetMailbox "Admin"

Для очистки свободного пространства (т.н. WhiteSpace) потребуется выполнить дефрагментацию, которая по сути является обычным переносом в пустую базу. Для выполнения операции нужно минимум 110% свободного места на диске от размера БД. Для выполнения операции используется Eseutil /d. Логика проста - переходим в каталог БД, размонтируем БД, запускаем дефрагментацию, монтируем ящик обратно.

cd F:\Mailbox\base\
Dismount-Database MAIN-DB
Eseutil /d base.edb /t E:\temp\temp.edb
Mount-Database MAIN-DB

У меня БД MAIN-DB весит 1,5Тб, а диск всего 2, поэтому для темп используется другая локация. Стоит также обратить внимание на то, что скорость выполнения зависит от многих факторов, например 1,5Тб может фрагментироваться больше суток.