Hálózati forgalom szűrése hálózati biztonsági csoporttal a PowerShell használatával
A virtuális hálózatok alhálózatainak bejövő vagy kimenő hálózati forgalmát hálózati biztonsági csoport segítségével szűrheti. A hálózati biztonsági csoportok biztonsági szabályokat tartalmaznak, amelyek IP-cím, port és protokoll szerint szűrik a hálózati forgalmat. A biztonsági szabályok az egyes alhálózatokban üzembe helyezett erőforrásokra vonatkoznak. Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Hálózati biztonsági csoport és biztonsági szabályok létrehozása
- Virtuális hálózat létrehozása és hálózati biztonsági csoport hozzárendelése egy alhálózathoz
- Virtuális gépek üzembe helyezése egy alhálózaton
- Forgalomszűrők tesztelése
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Azure Cloud Shell
Az Azure által üzemeltetett Azure Cloud Shell egy interaktív felület, amelyet a böngészőből használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. A Cloud Shell előre telepített parancsaival futtathatja a jelen cikkben szereplő kódot anélkül, hogy bármit telepítenie kellene a helyi környezetben.
Az Azure Cloud Shell indítása:
Lehetőség | Példa/hivatkozás |
---|---|
Válassza a Kipróbálás lehetőséget egy kód vagy parancsblokk jobb felső sarkában. A Kipróbálás lehetőség választása nem másolja automatikusan a kódot vagy a parancsot a Cloud Shellbe. | |
Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. | |
Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. |
Az Azure Cloud Shell használata:
Indítsa el a Cloud Shellt.
A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).
Illessze be a kódot vagy parancsot a Cloud Shell-munkamenetbe a Windows és Linux rendszeren a Ctrl Shift+V billentyűkombinációval+, vagy a Cmd+Shift+V macOS rendszeren való kiválasztásával.
A kód vagy parancs futtatásához válassza az Enter lehetőséget .
Ha a PowerShell helyi telepítése és használata mellett dönt, ehhez a cikkhez az Azure PowerShell-modul 1.0.0-s vagy újabb verziójára van szükség. A telepített verzió azonosításához futtassa a következőt: Get-Module -ListAvailable Az
. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, akkor emellett a Connect-AzAccount
futtatásával kapcsolatot kell teremtenie az Azure-ral.
Hálózati biztonsági csoport létrehozása
A hálózati biztonsági csoportok biztonsági szabályokat tartalmaznak. A biztonsági szabályok egy forrást és egy célt határoznak meg. A források és célok lehetnek alkalmazásbiztonsági csoportok.
Alkalmazásbiztonsági csoportok létrehozása
Először hozzon létre egy erőforráscsoportot a cikkben létrehozott összes erőforráshoz a New-AzResourceGroup használatával. A következő példa létrehoz egy erőforráscsoportot az eastus helyen:
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
Hozzon létre egy alkalmazásbiztonsági csoportot a New-AzApplicationSecurityGroup használatával. Az alkalmazásbiztonsági csoportok lehetővé teszik, hogy csoportokba rendezze a hasonló portszűrési követelményekkel rendelkező kiszolgálókat. Az alábbi példa két alkalmazásbiztonsági csoportot hoz létre.
$webAsg = New-AzApplicationSecurityGroup `
-ResourceGroupName myResourceGroup `
-Name myAsgWebServers `
-Location eastus
$mgmtAsg = New-AzApplicationSecurityGroup `
-ResourceGroupName myResourceGroup `
-Name myAsgMgmtServers `
-Location eastus
Biztonsági szabályok létrehozása
Hozzon létre egy biztonsági szabályt a New-AzNetworkSecurityRuleConfig használatával. Az alábbi példa egy olyan szabályt hoz létre, amely engedélyezi az internetről a myWebServers alkalmazásbiztonsági csoportba bejövő forgalmat a 80-as és 443-as porton keresztül.
$webRule = New-AzNetworkSecurityRuleConfig `
-Name "Allow-Web-All" `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix Internet `
-SourcePortRange * `
-DestinationApplicationSecurityGroupId $webAsg.id `
-DestinationPortRange 80,443
The following example creates a rule that allows traffic inbound from the internet to the *myMgmtServers* application security group over port 3389:
$mgmtRule = New-AzNetworkSecurityRuleConfig `
-Name "Allow-RDP-All" `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 110 `
-SourceAddressPrefix Internet `
-SourcePortRange * `
-DestinationApplicationSecurityGroupId $mgmtAsg.id `
-DestinationPortRange 3389
Ebben a cikkben az RDP (3389-as port) elérhető az interneten a myAsgMgmtServers virtuális gép számára. Éles környezet esetében a 3389-es port közvetlenül az internetre való csatlakoztatása helyett javasolt VPN vagy privát hálózati kapcsolat használatával csatlakozni a kezelni kívánt Azure-erőforrásokhoz.
Hálózati biztonsági csoport létrehozása
Hozzon létre egy hálózati biztonsági csoportot a New-AzNetworkSecurityGroup használatával. Az alábbi példa egy myNsg nevű hálózati biztonsági csoportot hoz létre:
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myNsg `
-SecurityRules $webRule,$mgmtRule
Virtuális hálózat létrehozása
Hozzon létre egy virtuális hálózatot a New-AzVirtualNetwork használatával. Az alábbi példa egy myVirtualNetwork virtuális hálózatot hoz létre:
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork `
-AddressPrefix 10.0.0.0/16
Hozzon létre egy alhálózat-konfigurációt a New-AzVirtualNetworkSubnetConfig használatával, majd írja be az alhálózat konfigurációját a virtuális hálózatba a Set-AzVirtualNetwork használatával. Az alábbi példa egy mySubnet nevű alhálózatot ad hozzá a virtuális hálózathoz, és hozzárendeli a myNsg hálózati biztonsági csoportot.
Add-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-VirtualNetwork $virtualNetwork `
-AddressPrefix "10.0.2.0/24" `
-NetworkSecurityGroup $nsg
$virtualNetwork | Set-AzVirtualNetwork
Virtuális gépek létrehozása
A virtuális gépek létrehozása előtt kérje le a virtuális hálózati objektumot az alhálózattal a Get-AzVirtualNetwork használatával:
$virtualNetwork = Get-AzVirtualNetwork `
-Name myVirtualNetwork `
-Resourcegroupname myResourceGroup
Hozzon létre egy nyilvános IP-címet minden egyes virtuális géphez a New-AzPublicIpAddress használatával:
$publicIpWeb = New-AzPublicIpAddress `
-AllocationMethod Dynamic `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myVmWeb
$publicIpMgmt = New-AzPublicIpAddress `
-AllocationMethod Dynamic `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myVmMgmt
Hozzon létre két hálózati adaptert a New-AzNetworkInterface használatával, és rendeljen hozzá egy nyilvános IP-címet a hálózati adapterhez. Az alábbi példa létrehoz egy hálózati adaptert, hozzárendeli a myVmWeb nyilvános IP-címet, és felveszi azt a myAsgWebServers alkalmazásbiztonsági csoport tagjai közé:
$webNic = New-AzNetworkInterface `
-Location eastus `
-Name myVmWeb `
-ResourceGroupName myResourceGroup `
-SubnetId $virtualNetwork.Subnets[0].Id `
-ApplicationSecurityGroupId $webAsg.Id `
-PublicIpAddressId $publicIpWeb.Id
Az alábbi példa létrehoz egy hálózati adaptert, hozzárendeli a myVmMgmt nyilvános IP-címet, és felveszi azt a myAsgMgmtServers alkalmazásbiztonsági csoport tagjai közé:
$mgmtNic = New-AzNetworkInterface `
-Location eastus `
-Name myVmMgmt `
-ResourceGroupName myResourceGroup `
-SubnetId $virtualNetwork.Subnets[0].Id `
-ApplicationSecurityGroupId $mgmtAsg.Id `
-PublicIpAddressId $publicIpMgmt.Id
Hozzon létre két virtuális gépet a virtuális hálózatban, hogy érvényesíthesse majd a fogalom szűrését egy később lépésben.
Hozzon létre egy virtuálisgép-konfigurációt a New-AzVMConfig használatával, majd hozza létre a virtuális gépet a New-AzVM használatával. Az alábbi példa egy virtuális gépet hoz létre, amely webkiszolgálóként fog szolgálni. Az -AsJob
kapcsoló a háttérben hozza létre a virtuális gépet, így Ön eközben folytathatja a következő lépéssel.
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfig = New-AzVMConfig `
-VMName myVmWeb `
-VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName myVmWeb `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface `
-Id $webNic.Id
New-AzVM `
-ResourceGroupName myResourceGroup `
-Location eastus `
-VM $webVmConfig `
-AsJob
Hozzon létre egy felügyeleti kiszolgálóként szolgáló virtuális gépet:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
# Create the web server virtual machine configuration and virtual machine.
$mgmtVmConfig = New-AzVMConfig `
-VMName myVmMgmt `
-VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName myVmMgmt `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface `
-Id $mgmtNic.Id
New-AzVM `
-ResourceGroupName myResourceGroup `
-Location eastus `
-VM $mgmtVmConfig
A virtuális gép létrehozása néhány percet vesz igénybe. Ne ugorjon a következő lépésre, amíg az Azure be nem fejezte a virtuális gép létrehozását.
Forgalomszűrők tesztelése
A Get-AzPublicIpAddress használatával adja vissza a virtuális gép nyilvános IP-címét. Az alábbi példa a myVmMgmt virtuális gép nyilvános IP-címét adja vissza:
Get-AzPublicIpAddress `
-Name myVmMgmt `
-ResourceGroupName myResourceGroup `
| Select IpAddress
Az alábbi parancs használatával hozzon létre egy távoli asztali munkamenetet a myVmMgmt virtuális géppel a helyszíni számítógépéről. Cserélje ki a <publicIpAddress>
kifejezést az előző parancs által visszaadott nyilvános IP-címre.
mstsc /v:<publicIpAddress>
Nyissa meg a letöltött RDP-fájlt. Ha a rendszer kéri, válassza a Csatlakozás lehetőséget.
Adja meg a virtuális gép létrehozásakor megadott felhasználónevet és jelszót (előfordulhat, hogy a virtuális gép létrehozásakor beírt hitelesítő adatok megadásához ki kell választania a További lehetőségek, majd a Másik fiók használata elemet), majd válassza az OK gombot. A bejelentkezés során egy figyelmeztetés jelenhet meg a tanúsítvánnyal kapcsolatban. Válassza az Igen lehetőséget a csatlakozás folytatásához.
A kapcsolat sikeresen létrejön, mert a 3389-es porton engedélyezve van az internetről a myAsgMgmtServers alkalmazásbiztonsági csoportba (amelyben a myVmMgmt virtuális géphez csatlakoztatott hálózati adapter található) bejövő forgalom.
Az alábbi parancs PowerShellben történő használatával hozzon létre egy távoli asztali kapcsolatot a myVmWeb virtuális géppel a myVmMgmt virtuális gépről:
mstsc /v:myvmWeb
A kapcsolat sikeresen létrejön, mert az egyes hálózati biztonsági csoportokon belüli alapértelmezett biztonsági szabály minden porton keresztül engedélyezi a forgalmat a virtuális hálózaton belüli összes IP-cím között. Nem hozhat létre távoli asztali kapcsolatot a myVmWeb virtuális géppel az internetről, mert a myAsgWebServers biztonsági szabálya nem engedélyezi az internetről bejövő forgalmat a 3389-es porton keresztül.
Az alábbi parancs PowerShellben történő használatával telepítse a Microsoft IIS-t a myVmWeb virtuális gépre:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Az IIS telepítésének befejezése után csatlakozzon le a myVmWeb virtuális gépről. Így csak a myVmMgmt virtuális géppel létesített távoli asztali kapcsolat marad. Az IIS üdvözlőképernyőjének megtekintéséhez nyisson meg egy webböngészőt, és keresse meg a http://myVmWeb.
Csatlakozzon le a myVmMgmt virtuális gépről.
A számítógépén írja be az alábbi parancsot a PowerShellben a myVmWeb kiszolgáló nyilvános IP-címének lekéréséhez.
Get-AzPublicIpAddress `
-Name myVmWeb `
-ResourceGroupName myResourceGroup `
| Select IpAddress
Annak megerősítéséhez, hogy eléri a myVmWeb webkiszolgálót az Azure-on kívülről is, nyisson meg egy webböngészőt a számítógépen, és lépjen a következő helyre: http://<public-ip-address-from-previous-step>
. A kapcsolat sikeresen létrejön, mert a 80-as porton engedélyezve van az internetről a myAsgWebServers alkalmazásbiztonsági csoportba (amelyben a myVmWeb virtuális géphez csatlakoztatott hálózati adapter található) bejövő forgalom.
Az erőforrások eltávolítása
Ha már nincs rá szükség, a Remove-AzResourceGroup használatával eltávolíthatja az erőforráscsoportot és az összes benne lévő erőforrást:
Remove-AzResourceGroup -Name myResourceGroup -Force
Következő lépések
Ebben a cikkben létrehozott egy hálózati biztonsági csoportot, és hozzárendelte egy virtuális hálózati alhálózathoz. A hálózati biztonsági csoportokkal kapcsolatos további információ: Hálózati biztonsági csoportok áttekintése és Hálózati biztonsági csoportok kezelése.
Az Azure alapértelmezés szerint irányítja a forgalmat az alhálózatok között. Ehelyett lehetősége van arra, hogy egy virtuális gépen keresztül irányítsa a forgalmat az alhálózatok között, amely így például tűzfalként is szolgálhat. További információ: Útvonaltábla létrehozása.