Skip to content

Commit 5a42518

Browse files
diklatzeDikla Tzemah Weyl
and
Dikla Tzemah Weyl
authored
Dtzemahweyl/Add new parameter -PrivateRange to New-AzFirewallPolicyIntrusionDetection (#17771)
* add privareRanges * Add tests and help file * change help file * change parameter of cmd * keep the skip * add markdown * add recorded test * update ChangeLog.md Co-authored-by: Dikla Tzemah Weyl <dtzemahweyl@microsoft.com>
1 parent 2c6bbff commit 5a42518

File tree

7 files changed

+464
-323
lines changed

7 files changed

+464
-323
lines changed

src/Network/Network.Test/ScenarioTests/AzureFirewallPolicyTests.ps1

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1436,7 +1436,7 @@ function Test-AzureFirewallPolicyPremiumFeatures {
14361436
# Intrusion Detection Settings
14371437
$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name $bypassTestName -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "10.0.0.0"
14381438
$sigOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny"
1439-
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $sigOverride -BypassTraffic $bypass
1439+
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $sigOverride -BypassTraffic $bypass -PrivateRange @("10.0.0.0/8", "172.16.0.0/12")
14401440

14411441
# Create AzureFirewallPolicy (with Intrusion Detection, TransportSecurity and Identity parameters)
14421442
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -SkuTier $tier -IntrusionDetection $intrusionDetection -UserAssignedIdentityId $identity.Id
@@ -1455,8 +1455,11 @@ function Test-AzureFirewallPolicyPremiumFeatures {
14551455
Assert-AreEqual "Alert" $getAzureFirewallPolicy.IntrusionDetection.Mode
14561456
Assert-NotNull $getAzureFirewallPolicy.IntrusionDetection.Configuration.SignatureOverrides
14571457
Assert-NotNull $getAzureFirewallPolicy.IntrusionDetection.Configuration.BypassTrafficSettings
1458+
Write-Host $getAzureFirewallPolicy.IntrusionDetection.Configuration
1459+
Assert-NotNull $getAzureFirewallPolicy.IntrusionDetection.Configuration.PrivateRanges
14581460
Assert-AreEqual "123456798" $getAzureFirewallPolicy.IntrusionDetection.Configuration.SignatureOverrides[0].Id
14591461
Assert-AreEqual "Deny" $getAzureFirewallPolicy.IntrusionDetection.Configuration.SignatureOverrides[0].Mode
1462+
Assert-AreEqual "10.0.0.0/8" $getAzureFirewallPolicy.IntrusionDetection.Configuration.PrivateRanges[0]
14601463
Assert-AreEqual $bypassTestName $getAzureFirewallPolicy.IntrusionDetection.Configuration.BypassTrafficSettings[0].Name
14611464
Assert-AreEqual "TCP" $getAzureFirewallPolicy.IntrusionDetection.Configuration.BypassTrafficSettings[0].Protocol
14621465
Assert-AreEqual "80" $getAzureFirewallPolicy.IntrusionDetection.Configuration.BypassTrafficSettings[0].DestinationPorts[0]

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.AzureFirewallPolicyTests/TestAzureFirewallPolicyPremiumFeatures.json

Lines changed: 414 additions & 312 deletions
Large diffs are not rendered by default.

src/Network/Network/AzureFirewallPolicy/IntrusionDetection/NewAzureFirewallPolicyIntrusionDetectionCommand.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ public class NewAzureFirewallPolicyIntrusionDetectionCommand : NetworkBaseCmdlet
5555
)]
5656
public PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting[] BypassTraffic { get; set; }
5757

58+
[Parameter(
59+
Mandatory = false,
60+
HelpMessage = "List of IDPS Private IP ranges."
61+
)]
62+
public string[] PrivateRange { get; set; }
63+
5864
public override void Execute()
5965
{
6066
base.Execute();
@@ -64,12 +70,13 @@ public override void Execute()
6470
Mode = this.Mode
6571
};
6672

67-
if (this.SignatureOverride?.Count() > 0 || this.BypassTraffic?.Count() > 0)
73+
if (this.SignatureOverride?.Count() > 0 || this.BypassTraffic?.Count() > 0 || this.PrivateRange?.Count() > 0)
6874
{
6975
intrusionDetection.Configuration = new PSAzureFirewallPolicyIntrusionDetectionConfiguration
7076
{
7177
SignatureOverrides = this.SignatureOverride?.ToList(),
72-
BypassTrafficSettings = this.BypassTraffic?.ToList()
78+
BypassTrafficSettings = this.BypassTraffic?.ToList(),
79+
PrivateRanges = this.PrivateRange?.ToList()
7380
};
7481
}
7582

src/Network/Network/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444

4545
## Version 4.16.1
4646
* Fixed `ArgumentNullException` in `Add-AzureRmRouteConfig` when `RouteTable.Routes` is null.
47+
* Updated `New-AzFirewallPolicyIntrusionDetection` cmdlet:
48+
- Added parameter -PrivateRange
4749

4850
## Version 4.16.0
4951
* Added support for retrieving the state of packet capture even when the provisioning state of the packet capture was failure

src/Network/Network/Models/AzureFirewallPolicy/PSAzureFirewallPolicyIntrusionDetectionConfiguration.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
//
1515

16+
using System;
1617
using System.Collections.Generic;
1718

1819
namespace Microsoft.Azure.Commands.Network.Models
@@ -22,5 +23,8 @@ public class PSAzureFirewallPolicyIntrusionDetectionConfiguration
2223
public List<PSAzureFirewallPolicyIntrusionDetectionSignatureOverride> SignatureOverrides { get; set; }
2324

2425
public List<PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting> BypassTrafficSettings { get; set; }
26+
27+
public List<string> PrivateRanges { get; set; }
28+
2529
}
2630
}

src/Network/Network/Network.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
22

33
<PropertyGroup>
44
<PsModuleName>Network</PsModuleName>

src/Network/Network/help/New-AzFirewallPolicyIntrusionDetection.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Creates a new Azure Firewall Policy Intrusion Detection to associate with Firewa
1515
```
1616
New-AzFirewallPolicyIntrusionDetection -Mode <String>
1717
[-SignatureOverride <PSAzureFirewallPolicyIntrusionDetectionSignatureOverride[]>]
18-
[-BypassTraffic <PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting[]>]
18+
[-BypassTraffic <PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting[]>] [-PrivateRange <String[]>]
1919
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2020
```
2121

@@ -48,13 +48,21 @@ New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroupName TestRg -Sk
4848

4949
This example creates intrusion detection with bypass traffic setting
5050

51+
### Example 4: Create firewall policy with intrusion detection configured with private ranges setting
52+
```powershell
53+
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Deny" -PrivateRange @("167.220.204.0/24", "167.221.205.101/32")
54+
New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroup TestRg -SkuTier "Premium" -IntrusionDetection $intrusionDetection
55+
```
56+
57+
This example creates intrusion detection with bypass traffic setting
58+
5159
## PARAMETERS
5260

5361
### -BypassTraffic
5462
List of rules for traffic to bypass.
5563

5664
```yaml
57-
Type: PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting[]
65+
Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallPolicyIntrusionDetectionBypassTrafficSetting[]
5866
Parameter Sets: (All)
5967
Aliases:
6068

@@ -69,7 +77,7 @@ Accept wildcard characters: False
6977
The credentials, account, tenant, and subscription used for communication with Azure.
7078
7179
```yaml
72-
Type: IAzureContextContainer
80+
Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer
7381
Parameter Sets: (All)
7482
Aliases: AzContext, AzureRmContext, AzureCredential
7583

@@ -84,7 +92,7 @@ Accept wildcard characters: False
8492
Intrusion Detection general state.
8593
8694
```yaml
87-
Type: String
95+
Type: System.String
8896
Parameter Sets: (All)
8997
Aliases:
9098
Accepted values: Off, Alert, Deny
@@ -96,11 +104,26 @@ Accept pipeline input: False
96104
Accept wildcard characters: False
97105
```
98106
107+
### -PrivateRange
108+
List of IDPS Private IP ranges.
109+
110+
```yaml
111+
Type: System.String[]
112+
Parameter Sets: (All)
113+
Aliases:
114+
115+
Required: False
116+
Position: Named
117+
Default value: None
118+
Accept pipeline input: False
119+
Accept wildcard characters: False
120+
```
121+
99122
### -SignatureOverride
100123
List of specific signatures states.
101124
102125
```yaml
103-
Type: PSAzureFirewallPolicyIntrusionDetectionSignatureOverride[]
126+
Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallPolicyIntrusionDetectionSignatureOverride[]
104127
Parameter Sets: (All)
105128
Aliases:
106129

@@ -115,7 +138,7 @@ Accept wildcard characters: False
115138
Prompts you for confirmation before running the cmdlet.
116139
117140
```yaml
118-
Type: SwitchParameter
141+
Type: System.Management.Automation.SwitchParameter
119142
Parameter Sets: (All)
120143
Aliases: cf
121144

@@ -131,7 +154,7 @@ Shows what would happen if the cmdlet runs.
131154
The cmdlet is not run.
132155
133156
```yaml
134-
Type: SwitchParameter
157+
Type: System.Management.Automation.SwitchParameter
135158
Parameter Sets: (All)
136159
Aliases: wi
137160

0 commit comments

Comments
 (0)