Connection filtering procedures on Edge Transport servers

Connection filtering is an antispam feature that's provided by the Connection Filtering agent, which is available only on Edge Transport servers in Exchange Server. Connection filtering enables the following features:

  • IP blocklist
  • IP blocklist providers
  • IP allowlist
  • IP allowlist providers

Each of these features can be enabled or disabled separately.

For more information about connection filtering, see Connection filtering on Edge Transport servers.

What do you need to know before you begin?

  • Estimated time to complete each procedure: 5 minutes.

  • You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the "Antispam features" entry in the Antispam and anti-malware permissions topic.

  • You can only use PowerShell to perform this procedure. To learn how to open the Exchange Management Shell in your on-premises Exchange organization, see Open the Exchange Management Shell.

  • For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

Tip

Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

Use the Exchange Management Shell to enable or disable connection filtering

To completely enable or disable connection filtering, you enable or disable the Connection Filtering agent. The change takes effect after you restart the Microsoft Exchange Transport service. When you restart the Microsoft Exchange service on an Edge Transport server, mail flow on the server is temporarily interrupted.

To disable connection filtering, run the following command:

Disable-TransportAgent "Connection Filtering Agent"

To enable connection filtering, run the following command:

Enable-TransportAgent "Connection Filtering Agent"

To make the change take effect, restart the Microsoft Exchange Transport service by running the following command:

Restart-Service MSExchangeTransport

How do you know this worked?

To verify that you successfully enabled or disabled connection filtering, run the following command to verify the Enabled property value.

Get-TransportAgent "Connection Filtering Agent" | Format-List Enabled

IP blocklist procedures

These procedures apply to the IP blocklist that you manually configure. They don't apply to IP blocklist providers.

Use the IPBlockListConfig cmdlets to view and configure how connection filtering uses the IP blocklist. Use the IPBlockListEntry cmdlets to view and configure the IP addresses in the IP blocklist.

Use the Exchange Management Shell to view the configuration of the IP blocklist

To view the configuration of the IP blocklist, run the following command:

Get-IPBlockListConfig | Format-List *Enabled,*Response

Use the Exchange Management Shell to enable or disable the IP blocklist

To disable the IP blocklist, run the following command:

Set-IPBlockListConfig -Enabled $false

To enable the IP blocklist, run the following command:

Set-IPBlockListConfig -Enabled $true

For more information, see Set-IPBlockListConfig.

How do you know this worked?

To verify that you successfully enabled or disabled the IP blocklist, run the following command to verify the Enabled property value.

Get-IPBlockListConfig | Format-List Enabled

Use the Exchange Management Shell to configure the IP blocklist

To configure the IP blocklist, use the following syntax:

Set-IPBlockListConfig [-ExternalMailEnabled <$true | $false>] [-InternalMailEnabled <$true | $false> -MachineEntryRejectionResponse "<Custom response text>"] [-StaticEntryRejectionResponse "<Custom response text>"]

This example configures the IP blocklist with the following settings:

  • The IP blocklist filters incoming connections from internal and external mail servers. By default, connections are filtered from external mail servers only (ExternalMailEnabled is set to $true, and InternalMailEnabled is set to $false). Non-authenticated connections and authenticated connections from external partners are considered external.

  • The custom response text for connections that were filtered by IP addresses that were automatically added to the IP blocklist by the sender reputation feature of the Protocol Analysis agent is set to the value "Connection from IP address {0} was rejected by sender reputation."

  • The custom response text for connections that were filtered by IP addresses that were manually added to the IP blocklist is set to the value "Connection from IP address {0} was rejected by connection filtering."

Set-IPBlockListConfig -InternalMailEnabled $true -MachineEntryRejectionResponse "Connection from IP address {0} was rejected by sender reputation." -StaticEntryRejectionResponse "Connection from IP address {0} was rejected by connection filtering."

For more information, see Set-IPBlockListConfig.

How do you know this worked?

To verify that you successfully configured the IP blocklist, run the following command to verify the property values.

Get-IPBlockListConfig | Format-List *MailEnabled,*Response

Use the Exchange Management Shell to view IP blocklist entries

To view all IP blocklist entries, run the following command:

Get-IPBlockListEntry

Note that each IP blocklist entry is identified by an integer value. The identity integer is assigned in ascending order when you add entries to the IP blocklist and the IP allowlist.

To view a specific IP blocklist entry, use the following syntax:

Get-IPBlockListEntry <-Identity IdentityInteger | -IPAddress IPAddress>

For example, to view the IP blocklist entry that contains the IP address 192.168.1.13, run the following command:

Get-IPBlockListEntry -IPAddress 192.168.1.13

For more information, see Get-IPBlockListEntry.

Note

When you use the IPAddress parameter, the resulting IP blocklist entry can be an individual IP address, an IP address range, or a Classless InterDomain Routing (CIDR) IP. To use the Identity parameter, you specify the integer value that's assigned to the IP blocklist entry.

Use the Exchange Management Shell to add IP blocklist entries

To add IP blocklist entries, use the following syntax:

Add-IPBlockListEntry <-IPAddress IPAddress | -IPRange IP range or CIDR IP> [-ExpirationTime <DateTime>] [-Comment "<Descriptive Comment>"]

This example adds the IP blocklist entry for the IP address range 192.168.1.10 through 192.168.1.15 and configures the IP blocklist entry to expire on July 4, 2018 at 15:00.

Add-IPBlockListEntry -IPRange 192.168.1.10-192.168.1.15 -ExpirationTime "7/4/2018 15:00"

For more information, see Add-IPBlockListEntry.

How do you know this worked?

To verify that you successfully added an IP blocklist entry, run the following command and verify that the new IP blocklist entry is displayed.

Get-IPBlockListEntry

Use the Exchange Management Shell to remove IP blocklist entries

To remove IP blocklist entries, use the following syntax:

Remove-IPBlockListEntry <IdentityInteger>

This example removes the IP blocklist entry that has the Identity value 3.

Remove-IPBlockListEntry 3

This example removes the IP blocklist entry that contains the IP address 192.168.1.12 without using the Identity integer value. Note that the IP blocklist entry can be an individual IP address or an IP address range.

Get-IPBlockListEntry -IPAddress 192.168.1.12 | Remove-IPBlockListEntry

For more information, see Remove-IPBlockListEntry.

How do you know this worked?

To verify that you successfully removed an IP blocklist entry, run the following command and verify that the IP blocklist entry you removed is gone.

Get-IPBlockListEntry

IP blocklist provider procedures

These procedures apply to IP blocklist providers. They don't apply to the IP blocklist.

Use the IPBlockListProvidersConfig cmdlets to view and configure how connection filtering uses all IP blocklist providers. Use the IPBlockListProvider cmdlets to view, configure, and test IP blocklist providers.

Use the Exchange Management Shell to view the configuration of all IP blocklist providers

To view how connection filtering uses all IP blocklist providers, run the following command:

Get-IPBlockListProvidersConfig | Format-List *Enabled,Bypassed*

For more information, see Get-IPBlockListProvidersConfig.

Use the Exchange Management Shell to enable or disable all IP blocklist providers

To disable all IP blocklist providers, run the following command:

Set-IPBlockListProvidersConfig -Enabled $false

To enable all IP blocklist providers, run the following command:

Set-IPBlockListProvidersConfig -Enabled $true

For more information, see Set-IPBlockListProvidersConfig.

How do you know this worked?

To verify that you enabled or disabled all IP blocklist providers, run the following command to verify the value of the Enabled property:

Get-IPBlockListProvidersConfig | Format-List Enabled

Use the Exchange Management Shell to configure all IP blocklist providers

To configure how connection filtering uses all IP blocklist providers, use the following syntax:

Set-IPBlockListProvidersConfig [-BypassedRecipients <recipient1,recipient2...>] [-ExternalMailEnabled <$true | $false>] [-InternalMailEnabled <$true | $false>]

This example configures all IP blocklist providers with the following settings:

  • IP blocklist providers filter incoming connections from internal and external mail servers. By default, connections are filtered from external mail servers only (ExternalMailEnabled is set to $true, and InternalMailEnabled is set to $false). Non-authenticated connections and authenticated connections from external partners are considered external.

  • Messages sent to the internal recipients chris@fabrikam.com and michelle@fabrikam.com are excluded from filtering by IP blocklist providers. Note that if you want to add recipients to the list without affecting existing recipients, use the syntax, @{Add="<recipient1>","<recipient2>"...}.

Set-IPBlockListProvidersConfig -BypassedRecipients chris@fabrikam.com,michelle@fabrikam.com -InternalMailEnabled $true

For more information, see Set-IPBlockListProvidersConfig.

How do you know this worked?

To verify that you successfully configured all IP blocklist providers, run the following command to verify the property values:

Get-IPBlockListProvidersConfig | Format-List *MailEnabled,Bypassed*

Use the Exchange Management Shell to view IP blocklist providers

To view the summary list of all the IP blocklist providers, run the following command:

Get-IPBlockListProvider

To view the details of a specific provider, use the following syntax:

Get-IPBlockListProvider <IPBlockListProviderIdentity>

This example shows the details of the provider named Contoso IP blocklist Provider.

Get-IPBlockListProvider "Contoso IP blocklist Provider" | Format-List Name,Enabled,Priority,LookupDomain,*Match,*Response

For more information, see Get-IPBlockListProvider.

Use the Exchange Management Shell to add an IP blocklist provider

To add an IP blocklist provider, use the following syntax:

Add-IPBlockListProvider -Name "<Descriptive Name>" -LookupDomain <FQDN> [-Priority <Integer>] [-Enabled <$true | $false>] [-AnyMatch <$true | $false>] [-BitmaskMatch <IPAddress>] [-IPAddressesMatch <IPAddressStatusCode1,IPAddressStatusCode2...>] [-RejectionResponse "<Custom Text>"]

This example creates an IP blocklist provider named "Contoso IP blocklist Provider" with the following options:

  • FQDN to use the provider: rbl.contoso.com

  • Bitmask code to use from the provider: 127.0.0.1

Add-IPBlockListProvider -Name "Contoso IP blocklist Provider" -LookupDomain rbl.contoso.com -BitmaskMatch 127.0.0.1

Note

When you add a new IP blocklist provider, it's enabled by default (the value of Enabled is $true), and the priority value is incremented (the first entry has the Priority value 1).

For more information, see Add-IPBlockListProvider.

How do you know this worked?

To verify that you successfully added an IP blocklist provider, run the following command and verify that the new IP blocklist provider is displayed.

Get-IPBlockListProvider

Use the Exchange Management Shell to enable or disable an IP blocklist provider

To enable or disable a specific IP blocklist provider, use the following syntax:

Set-IPBlockListProvider <IPBlockListProviderIdentity> -Enabled <$true | $false>

This example disables the provider named Contoso IP blocklist Provider.

Set-IPBlockListProvider "Contoso IP blocklist Provider" -Enabled $false

This example enables the provider named Contoso IP blocklist Provider.

Set-IPBlockListProvider "Contoso IP blocklist Provider" -Enabled $true

For more information, see Set-IPBlockListProvider.

How do you know this worked?

To verify that you successfully enabled or disabled an IP blocklist provider, run the following command to verify the value of the Enabled property:

Get-IPBlockListProvider | Format-Table -Auto Name,LookupDomain,Priority,Enabled

Use the Exchange Management Shell to configure an IP blocklist provider

The configuration options that are available on the Set-IPBlockListProvider cmdlet are identical to those on the Add-IPBlockListProvider cmdlet.

To configure an existing IP blocklist provider, use the following syntax:

Set-IPBlockListProvider <IPBlockListProviderIdentity> -Name "<Descriptive Name>" -LookupDomain <FQDN> [-Priority <Integer>] [-AnyMatch <$true | $false>] [-BitmaskMatch <IPAddress>] [-IPAddressesMatch <IPAddressStatusCode1,IPAddressStatusCode2...>] [-RejectionResponse "<Custom Text>"]

For example, to add the IP address status code 127.0.0.1 to the list of existing status codes for the provider named Contoso IP blocklist Provider, run the following command:

Set-IPBlockListProvider "Contoso IP blocklist Provider" -IPAddressesMatch @{Add="127.0.0.1"}

For more information, see Set-IPBlockListProvider.

How do you know this worked?

To verify that you successfully configured an IP blocklist provider, run the following command to verify the property values. Be sure to replace <IPBlockListProviderIdentity> with the name of the IP blocklist provider.

Get-IPBlockListProvider <IPBlockListProviderIdentity> | Format-List

Use the Exchange Management Shell to test an IP blocklist provider

To test an IP blocklist provider, use the following syntax:

Test-IPBlockListProvider <IPBlockListProviderIdentity> -IPAddress <IPAddressToTest>

This example tests the provider named Contoso IP blocklist Provider by looking up the IP address 192.168.1.1.

Test-IPBlockListProvider "Contoso IP blocklist Provider" -IPAddress 192.168.1.1

For more information, see Test-IPBlockListProvider.

Use the Exchange Management Shell to remove an IP blocklist provider

To remove an IP blocklist provider, use the following syntax:

Remove-IPBlockListProvider <IPBlockListProviderIdentity>

This example removes the IP blocklist provider named Contoso IP blocklist Provider.

Remove-IPBlockListProvider "Contoso IP blocklist Provider"

For more information, see Remove-IPBlockListProvider.

How do you know this worked?

To verify that you successfully removed an IP blocklist provider, run the following command and verify that the IP blocklist provider you removed is gone.

Get-IPBlockListProvider

IP allowlist procedures

These procedures apply to the IP allowlist that you manually configure. They don't apply to IP allowlist providers.

Use the IPAllowListConfig cmdlets to view and configure how connection filtering uses the IP allowlist. Use the IPAllowListEntry cmdlets to view and configure the IP addresses in the IP allowlist.

Use the Exchange Management Shell to view the configuration of the IP allowlist

To view the configuration of the IP allowlist, run the following command.

Get-IPAllowListConfig | Format-List *Enabled

For more information, see Get-IPAllowListConfig.

Use the Exchange Management Shell to enable or disable the IP allowlist

To disable the IP allowlist, run the following command:

Set-IPAllowListConfig -Enabled $false

To enable the IP allowlist, run the following command:

Set-IPAllowListConfig -Enabled $true

How do you know this worked?

To verify that you successfully enabled or disabled the IP allowlist, run the following command to verify the value of the Enabled property:

Get-IPAllowListConfig | Format-List Enabled

Use the Exchange Management Shell to configure the IP allowlist

To configure the IP allowlist, use the following syntax:

Set-IPAllowListConfig [-ExternalMailEnabled <$true | $false>] [-InternalMailEnabled <$true | $false>

This example configures the IP allowlist to filter incoming connections from internal and external mail servers. By default, connections are filtered from external mail servers only (ExternalMailEnabled is set to $true, and InternalMailEnabled is set to $false). Non-authenticated connections and authenticated connections from external partners are considered external.

Set-IPAllowListConfig -InternalMailEnabled $true

For more information, see Set-IPAllowListConfig.

How do you know this worked?

To verify that you successfully configured the IP allowlist, run the following command to verify the property values:

Get-IPAllowListConfig | Format-List *MailEnabled

Use the Exchange Management Shell to view IP allowlist entries

To view all IP allowlist entries, run the following command:

Get-IPAllowListEntry

Note that each IP allowlist entry is identified by an integer value. The identity integer is assigned in ascending order when you add entries to the IP blocklist and the IP allowlist.

To view a specific IP allowlist entry, use the following syntax:

Get-IPAllowListEntry <-Identity IdentityInteger | -IPAddress IPAddress>

For example, to view the IP allowlist entry that contains the IP address 192.168.1.13, run the following command:

Get-IPAllowListEntry -IPAddress 192.168.1.13

For more information, see Get-IPAllowListEntry.

Note

When you use the IPAddress parameter, the resulting IP allowlist entry can be an individual IP address, an IP address range, or a Classless InterDomain Routing (CIDR) IP. To use the Identity parameter, you specify the integer value that's assigned to the IP allowlist entry.

Use the Exchange Management Shell to add IP allowlist entries

To add IP allowlist entries, use the following syntax:

Add-IPAllowListEntry <-IPAddress IPAddress | -IPRange IP range or CIDR IP> [-ExpirationTime <DateTime>] [-Comment "<Descriptive Comment>"]

This example adds the IP allowlist entry for the IP address range 192.168.1.10 through 192.168.1.15 and configures the IP allowlist entry to expire on July 4, 2018 at 15:00.

Add-IPAllowListEntry -IPRange 192.168.1.10-192.168.1.15 -ExpirationTime "7/4/2018 15:00"

For more information, see Add-IPAllowListEntry.

How do you know this worked?

To verify that you successfully added an IP allowlist entry, run the following command and verify that the new IP allowlist entry is displayed.

Get-IPAllowListEntry

Use the Exchange Management Shell to remove IP allowlist entries

To remove IP allowlist entries, use the following syntax:

Remove-IPAllowListEntry <IdentityInteger>

This example removes the IP allowlist entry that has the Identity value 3.

Remove-IPAllowListEntry 3

This example removes the IP allowlist entry that contains the IP address 192.168.1.12 without using the Identity integer value. Note that the IP allowlist entry can be an individual IP address or an IP address range.

Get-IPAllowListEntry -IPAddress 192.168.1.12 | Remove-IPAllowListEntry

For more information, see Remove-IPAllowListEntry.

How do you know this worked?

To verify that you successfully removed an IP allowlist entry, run the following command and verify that the IP allowlist entry you removed is gone.

Get-IPAllowListEntry

IP allowlist provider procedures

These procedures apply to IP allowlist providers. They don't apply to the IP allowlist.

Use the IPAllowListProvidersConfig cmdlets to view and configure how connection filtering uses all IP allowlist providers. Use the IPAllowListProvider cmdlets to view, configure, and test IP allowlist providers.

Use the Exchange Management Shell to view the configuration of all IP allowlist providers

To view how connection filtering uses all IP allowlist providers, run the following command:

Get-IPAllowListProvidersConfig | Format-List *Enabled

For more information, see Get-IPAllowListProvidersConfig.

Use the Exchange Management Shell to enable or disable all IP allowlist providers

To disable all IP allowlist providers, run the following command:

Set-IPAllowListProvidersConfig -Enabled $false

To enable all IP allowlist providers, run the following command:

Set-IPAllowListProvidersConfig -Enabled $true

For more information, see Set-IPAllowListProvidersConfig.

How do you know this worked?

To verify that you enabled or disabled all IP allowlist providers, run the following command to verify the Enabled property value:

Get-IPAllowListProvidersConfig | Format-List Enabled

Use the Exchange Management Shell to configure all IP allowlist providers

To configure how connection filtering uses all IP allowlist providers, use the following syntax:

Set-IPAllowListProvidersConfig [-ExternalMailEnabled <$true | $false>] [-InternalMailEnabled <$true | $false>]

This example configures all IP allowlist providers to filter incoming connections from internal and external mail servers. By default, connections are filtered from external mail servers only (ExternalMailEnabled is set to $true, and InternalMailEnabled is set to $false). Non-authenticated connections and authenticated connections from external partners are considered external.

Set-IPAllowListProvidersConfig -InternalMailEnabled $true

For more information, see Set-IPAllowListProvidersConfig.

How do you know this worked?

To verify that you successfully configured all IP allowlist providers, run the following command to verify the property values:

Get-IPAllowListProvidersConfig | Format-List *MailEnabled

Use the Exchange Management Shell to view IP allowlist providers

To view the summary list of all the IP allowlist providers, run the following command.

Get-IPAllowListProvider

To view the details of a specific provider, use the following syntax:

Get-IPAllowListProvider <IPAllowListProviderIdentity>

This example shows the details of the provider named Contoso IP allowlist Provider.

Get-IPAllowListProvider "Contoso IP allowlist Provider" | Format-List Name,Enabled,Priority,LookupDomain,*Match

For more information, see Get-IPAllowListProvider.

Use the Exchange Management Shell to add an IP allowlist provider

To add an IP allowlist provider, use the following syntax:

Add-IPAllowListProvider -Name "<Descriptive Name>" -LookupDomain <FQDN> [-Priority <Integer>] [-Enabled <$true | $false>] [-AnyMatch <$true | $false>] [-BitmaskMatch <IPAddress>] [-IPAddressesMatch <IPAddressStatusCode1,IPAddressStatusCode2...>]

This example creates an IP allowlist provider named "Contoso IP allowlist Provider" with the following options:

  • FQDN to use the provider: allow.contoso.com

  • Bitmask code to use from the provider: 127.0.0.1

Add-IPAllowListProvider -Name "Contoso IP allowlist Provider" -LookupDomain allow.contoso.com -BitmaskMatch 127.0.0.1

Note

When you add a new IP allowlist provider, it's enabled by default (the value of Enabled is $true), and the priority value is incremented (the first entry has the Priority value 1).

For more information, see Add-IPAllowListProvider.

How do you know this worked?

To verify that you successfully added an IP allowlist provider, run the following command and verify that the new IP allowlist provider is displayed.

Get-IPAllowListProvider

Use the Exchange Management Shell to enable or disable an IP allowlist provider

To enable or disable a specific IP allowlist provider, use the following syntax:

Set-IPAllowListProvider <IPAllowListProviderIdentity> -Enabled <$true | $false>

This example disables the provider named Contoso IP allowlist Provider.

Set-IPAllowListProvider "Contoso IP allowlist Provider" -Enabled $false

This example enables the provider named Contoso IP allowlist Provider.

Set-IPAllowListProvider "Contoso IP allowlist Provider" -Enabled $true

For more information, see Set-IPAllowListProvider.

How do you know this worked?

To verify that you successfully enabled or disabled an IP allowlist provider, run the following command to verify the Enabled property value:

Get-IPAllowListProvider | Format-Table -Auto Name,LookupDomain,Priority,Enabled

Use the Exchange Management Shell to configure an IP allowlist provider

The configuration options that are available on the Set-IPAllowListProvider cmdlet are identical to those on the Add-IPAllowListProvider cmdlet.

To configure an existing IP allowlist provider, use the following syntax:

Set-IPAllowListProvider <IPAllowListProviderIdentity> -Name "<Descriptive Name>" -LookupDomain <FQDN> [-Priority <Integer>] [-AnyMatch <$true | $false>] [-BitmaskMatch <IPAddress>] [-IPAddressesMatch <IPAddressStatusCode1,IPAddressStatusCode2...>]

For example, to add the IP address status code 127.0.0.1 to the list of existing status codes for the provider named Contoso IP allowlist Provider, run the following command:

Set-IPAllowListProvider "Contoso IP allowlist Provider" -IPAddressesMatch @{Add="127.0.0.1"}

For more information, see Set-IPAllowListProvider.

How do you know this worked?

To verify that you successfully configured an IP allowlist provider, run the following command. Be sure to replace <IPAllowListProviderIdentity> with the name of the IP allowlist provider.

Get-IPAllowListProvider <IPAllowListProviderIdentity> | Format-List

Use the Exchange Management Shell to test an IP allowlist provider

To test an IP allowlist provider, use the following syntax:

Test-IPAllowListProvider <IPAllowListProviderIdentity> -IPAddress <IPAddressToTest>

This example tests the provider named Contoso IP allowlist Provider by looking up the IP address 192.168.1.1.

Test-IPAllowListProvider "Contoso IP allowlist Provider" -IPAddress 192.168.1.1

For more information, see Test-IPAllowListProvider.

Use the Exchange Management Shell to remove an IP allowlist provider

To remove an IP allowlist provider, use the following syntax:

Remove-IPAllowListProvider <IPAllowListProviderIdentity>

This example removes the IP allowlist provider named Contoso IP allowlist Provider.

Remove-IPAllowListProvider "Contoso IP allowlist Provider"

For more information, see Remove-IPAllowListProvider.

How do you know this worked?

To verify that you successfully removed an IP allowlist provider, run the following command and verify that the IP allowlist provider you removed is gone.

Get-IPAllowListProvider