我想创建Windows Server VM,它具有使用Powershell进行源过滤的RDP端口。
New-AzureRmVM和Add-AzureRmNetworkSecurityRuleConfig部分地为我工作。
New-AzureRmVM使用nsg规则为允许任何源的默认RDP端口创建VM。运行脚本后,我必须删除它们。
我尝试将-OpenPorts选项设置为$ null或无。
这可能吗?还是其他实现此目的的方法?
答案 0 :(得分:1)
不幸的是,当您使用PowerShell命令New-AzureRmVM创建VM时,似乎无法通过将-OpenPorts设置为$ null或None来删除RDP NGS规则。
-OpenPorts
要在创建的VM的网络安全组(NSG)上打开的端口的列表。默认值取决于图像的类型 选择(即Windows:3389、5985和Linux:22)。
创建Windows VM时,将根据映像类型打开默认端口。但是您可以在创建时更改NSG规则以过滤流量。
# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Allow
# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
根据需要设置-SourceAddressPrefix
,-SourcePortRange
,-DestinationAddressPrefix
和-Access
,以过滤流量。有关更多详细信息,请参见Create a fully configured virtual machine with PowerShell。
答案 1 :(得分:0)
您可以更改Azure VM默认RDP端口。有关更多详细信息,请参阅blog。
Write-host "What Port would you like to set for RDP: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "RDP HighPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow