Hämta Office 365 IP-adresser via PowerShell

I vissa Office 365 uppsättningar, främst Hybrid behöver man tillåta att Office 365’s tjänster får kommunicera emot sina interna resurser.

Exempelvis behöver man i Exchange Hybrid uppsättningar tillåta IP-adresserna som Exchange Online använder sig utav i en Receive Connector lokalt för att få skicka mail inom samma organisation mellan Office 365 och on-premise. För detta har Microsoft ett inbyggt kommando Get-HybridMailflowDatacenterIPs i PowerShell-modulen för Exchange Online som hämtar ut nödvändiga IP-adresser.

För att automatisera processen med Get-HybridMailflowDatacenterIPs och uppdatera det dynamiskt finns det en bloggpost från Microsoft här som går igenom stegen:
Exchange Online: Keeping your ’Inbound From Office 365’ Receive Connector Current with Microsoft Public IP’s

Det kan däremot finnas andra tillfällen när man vill ha ut samtliga IP-adresser som Office 365 använder sig utav, t.ex om man har ett eget antispam-system eller låsa ner i en brandvägg vilka IP-adresser som får kommunicera med sina interna resurser.

Dessa IP-adresser har Microsoft släppt i en publik lista där samtliga URL:er och IP-adresser som Office 365 och respektive tjänst använder sig utav, Office 365 URLs and IP address ranges som också finns i XML-format, O365IPAddresses.xml

Då adresserna finns tillgänlgigt i XML-format kan man via PowerShell läsa ut dessa och få samtliga adresser i en variabel som kan användas för att automatiskt och dynamiskt uppdatera sina regler. I exemplet nedan läser jag ut samtliga IPv4-adresser som Exchange Online Protection använder sig utav:

Resultatet blir:

$address kan jag sedan använda mig för att göra olika API-anropp till min brandvägg eller tredjepartstjänst och dynamiskt uppdatera mitt regelverk.

Disclaimer: All information on this blog is offered "as is" with no warranty. It is strongly recommended that you verify all information and validate all scripts in isolated test environments before using them in production environments.