Exchange 2019: Endringer
| Oppdatert: | 25. februar 2025 |
|---|
Dette dokumentet innholder en beskrivelse av endringer som er gjort etter at Exchange 2019 kom i produksjon.
Innhold:
1 Sikkerhet
Det er nå anbefalt å skru av RemotePowershell for alle som ikke er admin. Foreøpig er det satt på alt av lenkede kontoer dvs. mailbrukere):
$Users = Get-User -ResultSize unlimited -Filter { IsLinked -eq $true }
$Users | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
Når Exchange installeres opprettes det en mailboks for brukeren som gjør installasjonen. Vi ønsker ikke at administrator-brukerne skal ha en mailboks, samtidig vil vi ikke fjerne AD-brukeren. Derfor:
Disable-Mailbox bore_drift Disable-Mailbox trotsai_drift ... Disable-Mailbox iv_drift
Resten av brukerne er gått igjennom og fjernet med noe alla:
$others = get-user -ResultSize unlimited -Filter { RemotePowerShellEnabled -eq $true -and RecipientType -eq "UserMailbox"}
$ohters | ft Identity,RecipientType*
...
$others | where { $_.RecipientTypeDetails -ne "RoomMailbox" } | Set-User -RemotePowerShellEnabled $false
$others | where { $_.RecipientTypeDetails -ne "SharedMailbox" } | Set-User -RemotePowerShellEnabled $false
TODO: Oppdater Cererbrum-modulen så nye brukere automatisk får dette satt.
2 Disk
OS-disken bruker mye mer på logging, samt at mail.que kan vokse seg stor. Vi har derfor bedt om mer disk til OSet og C-disken er nå på 500 GB. Selve utvidelsen gjøres enkelt med diskpart:
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 NTFS Partition 2047 GB Healthy
C:\disks\n\
Volume 2 NTFS Partition 2047 GB Healthy
C:\disks\o\
...
Volume 12 C NTFS Partition 399 GB Healthy Boot
Volume 13 Recovery NTFS Partition 499 MB Healthy Hidden
Volume 14 FAT32 Partition 99 MB Healthy System
...
Siden OS-disken er volum 12, så velges den. Man kan også dobbeltverifisere det med detail volume (da ser man også at det er ledig plass for utvidelse):
DISKPART> select volume 12
Volume 12 is the selected volume.
DISKPART> detail volume
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
* Disk 3 Online 500 GB 99 GB *
Read-only : No
Hidden : No
No Default Drive Letter: No
Shadow Copy : No
Offline : No
BitLocker Encrypted : No
Installable : Yes
Volume Capacity : 399 GB
Volume Free Space : 46 GBi
Først utvider man volumet, så filsystemet. Ingen argumenter er nødvendig - standardinnstillingene gjør at uallokert disk fylles opp:
DISKPART> extend
DiskPart successfully extended the volume.
DISKPART> extend filesystem
DiskPart successfully extended the file system on the volume.
Ferdig.
3 Autodiscover
Vi har tidligere ikke eksplisitt satt Autodiscover-URL av to grunner. Det har fungert fint å la Exchange autogenerere den og det var ikke mulig å sette den.
Det har nå dukket opp et tilfelle hvor Exchange ikke greier seg på egenhånd, og det er om Autodiscover versjon 2 (autodiscover.json) skal «nedgradere» seg selv til opprinnelig/gammel versjon. Test f.eks. med:
https://mail.uio.no/autodiscover/autodiscover.json?Email=iv@uio.no&Protocol=Autodiscoverv1
Dette gir en 500 Internal server error med mindre URLen til autodiscover.xml er satt. Siden vi prøvde å sette URL sist har det vist seg at Microsoft, med sin uendelige visdom, kun har gjort det mulig kjøre Set-AutodiscoverVirtualDirectory med intern og ekstern fra Snapin, ikke i Exchange Management Shell.
Dokumentasjon er oppdatert, og endring gjort i januar 2023.
4 SMTP-domene / Modern Authentication
Selv om dokumentasjonen ikke sier noe om det, og det ikke burde være relevant, så tilsier testing at det å eksplisitt definere alle domener vi har primæradresser i som SMTP-domener gjør at Exchange tilbyr OAuth / Modern Authentication til Outlook (MAPI over HTTP).
Er i første omgang gjort for følgende e-postdomener:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Snapin New-AcceptedDomain -Name it.uio.no -DomainName it.uio.no -DomainType InternalRelay
Deretter ble alle e-postdomener med adresser knyttet til brukere i Exchange aktivert som SMTP-domener i mars 2023. Se utrullingsplanen for detaljert liste.
5 Certificate signing of PowerShell serialization payload
Certificate signing of PowerShell serialization payload
Sett ny innstilling på en tjener (gjort på mail-ex25.exprod.uio.no):
LaunchEMS
New-SettingOverride -Name "EnableSigningVerification" `
-Component Data -Section EnableSerializationDataSigning `
-Parameters @("Enabled=true") -Reason "Enabling Signing Verification"
Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService `
-Component VariantConfiguration -Argument Refresh
Restart-Service -Name W3SVC, WAS -Force
Verifisert at innstillingen er satt ved å kjøre på en annen tjener:
LaunchEMS Get-SettingOverride | ft SectionName, Reason, Status SectionName Reason Status ----------- ------ ------ EnableSerializationDataSigning Enabling Signing Verification Accepted
6 Exclude Exchange stuff from anti-virus
Skulle vært gjort for år siden, men nå har MS laget et verktøy/skript for unnta Exchange fra antivirusprogramvaren.
Dette er kjørt i både EXTEST og EXPROD på hver enkelt Exchangetjener. I tillegg er den delte mappen som brukes av witness unntatt. F.eks. på mail-testmgt2.extest.uio.no:
Set-MpPreference -ExclusionPath C:\DAGWitness\mail-dagtest02.extest.uio.no
Tilsvarende på mail-witness02.exprod.uio.no:
Set-MpPreference -ExclusionPath "C:\DAGWitness2\"
Kjøringen er gjort med:
# Dryrun .\Set-ExchAVExclusions.ps1 -ListRecommendedExclusions # Execute .\Set-ExchAVExclusions.ps1 -Filename .\Exclusions.txt # Verify part 1
7 Install HotFix KB5037224
Denne fikser en haug ting <https://support.microsoft.com/en-us/topic/hotfix-update-for-exchange-server-2019-and-2016-april-23-2024-kb5037224-35eddea8-4828-4e38-b462-db89ea1100c9> samt gir støtte for ECC-sertifikater og Modern Authentication for OWA og ECP. Nedsiden er at installasjonen kræser ofte og det har vært litt pes og manuelt rydde opp og fikse.
7.1 Foreløpig metode for installasjon
Start med å sette nedetid i Zabbix, samt ta ut tjeneren med følgende kommando fra mail-exmgmt02.exprod.uio.no i Administrator Powershell:
C:\bin\enter-maintenance-mode-2019.ps1 -Server mail-ex21 C:\bin\enter-maintenance-mode-2019.ps1 -Server mail-ex21 -statusonly -verbose (Get-DatabaseAvailabilityGroup -Status).ServersInMaintenance.Name
Deretter bør tjeneren restartes før man kjører:
powershell Set-MpPreference -DisableRealtimeMonitoring:$true C:\Temp\Exchange2019-KB5037224-x64-en.exe
Om filer er låst, og verken å drepe prosessene eller restarte tjeneren fungerer, velg "ignore" for å få installert. TODO: Må sjekkes opp.
Om installasjonen feiler, så har den alltid feilet på nytt om ikke følgende tjeneste startes først:
Get-Service winmgmt | Set-Service -StartupType Automatic Get-Service winmgmt | Start-Servic Restart-Computer C:\Temp\Exchange2019-KB5037224-x64-en.exe
Hvis installasjonen feilet, så vil ikke ting komme opp riktig. Sjekk status på tjenester med f.eks.:
# De to POP3-tjenestene skal være deaktivert og ikke kjøre.
# wsbexchange (backup-ting?) skal være satt til manuell og ikke kjøre.
ForEach ($service in 'FMS', 'hostcontrollerservice', 'IISAdmin', 'MSExchange*', 'pla', 'RemoteRegistry', 'SearchExchangeTracing', 'W3Svc', 'WinMgmt', 'wsbexchange') { Get-Service $service | Select Status,Name,StartType }
# Fiks ting som ikke er Exchange først
ForEach ($service in 'FMS', 'hostcontrollerservice', 'IISAdmin', 'pla', 'RemoteRegistry', 'SearchExchangeTracing', 'W3Svc', 'WinMgmt') { Get-Service $service | Set-Service -StartupType Automatic }
ForEach ($service in 'FMS', 'hostcontrollerservice', 'IISAdmin', 'pla', 'RemoteRegistry', 'SearchExchangeTracing', 'W3Svc', 'WinMgmt') { Get-Service $service | Start-Service }
# Der etter Exchange
Get-Service MSExchange* | Set-Service -StartupType Automatic
Get-Service MSExchangePop* | Set-Service -StartupType Disabled
Get-Service wsbexchange | Set-Service -StartupType Manual
Get-Service MSExchange* | Where { $_.Name -notlike "*pop3*" } | Start-Service
Skru på antivirusskanning igjen:
Set-MpPreference -DisableRealtimeMonitoring:$false Get-MpPreference | FL DisableRealtimeMonitoring
Sett i produksjon, f.eks. på mail-exmgmt02.exprod.uio.no:
.\enter-production-mode-2019.ps1 -Verbose -Server mail-ex21 .\enter-production-mode-2019.ps1 -Verbose -Server mail-ex21 -StatusOnly
7.2 Oppdaterte tjenere
Følgende tjenere skal være oppdatert:
- mail-extest16
- mail-extest17
- mail-testmgt2
- mail-exmgmt02
- mail-ex21
- mail-ex22
- mail-ex23
- mail-ex24
- mail-ex25
- mail-ex31
- mail-ex32
- mail-ex33
- mail-ex34
- mail-ex35