Gyakorlat – Hálózati biztonsági csoportok létrehozása és kezelése
A gyártó cég megoldástervezőjeként úgy döntött, hogy az ERP-alkalmazást és az adatbázis-kiszolgálókat szeretné áttelepíteni az Azure-ba. Első lépésként két kiszolgálóval fogja tesztelni a hálózati biztonsági tervet.
Ebben a leckében egy hálózati biztonsági csoportot fog konfigurálni olyan biztonsági szabályokkal, amelyekkel korlátozható az adott kiszolgálókra irányuló hálózati forgalom. Azt szeretné, hogy az alkalmazáskiszolgáló HTTP-n keresztül csatlakozhasson az adatbázis-kiszolgálóhoz. Azt viszont nem szeretné, hogy az adatbázis-kiszolgáló HTTP-n keresztül tudjon csatlakozni az alkalmazáskiszolgálóhoz.
Egy virtuális hálózat és egy hálózati biztonsági csoport létrehozása
Először a virtuális hálózatot és az alhálózatokat fogja létrehozni a kiszolgálói erőforrásokhoz. Ezután egy hálózati biztonsági csoportot fog létrehozni.
Az Azure Cloud Shellben futtassa a következő parancsot a tesztkörnyezet erőforráscsoportjának a változóhoz
rg
való hozzárendeléséhez:rg="<rgn>[sandbox resource group name]</rgn>"
Az ERP-kiszolgálók virtuális hálózatának és az Alkalmazások alhálózatának létrehozásához futtassa a következő parancsot a Cloud Shellben:
az network vnet create \ --resource-group $rg \ --name ERP-servers \ --address-prefixes 10.0.0.0/16 \ --subnet-name Applications \ --subnet-prefixes 10.0.0.0/24
Az Adatbázisok alhálózat létrehozásához futtassa a következő parancsot a Cloud Shellben:
az network vnet subnet create \ --resource-group $rg \ --vnet-name ERP-servers \ --address-prefixes 10.0.1.0/24 \ --name Databases
Az ERP-Standard kiadás RVERS-NSG hálózati biztonsági csoport létrehozásához futtassa a következő parancsot a Cloud Shellben:
az network nsg create \ --resource-group $rg \ --name ERP-SERVERS-NSG
Ubuntut futtató virtuális gépek létrehozása
A következő lépésben két virtuális gépet (AppServer és DataServer) fog létrehozni. A központi AppServer az Applications alhálózaton, a DataServer pedig a Databases alhálózaton lesz üzembe helyezve. Adja hozzá a virtuális gépek hálózati adaptereit az ERP-SERVERS-NSG nevű hálózati biztonsági csoporthoz. Ezután a virtuális gépek használatával végezze el a hálózati biztonsági csoport tesztelését.
Az AppServer virtuális gép létrehozásához futtassa a következő parancsot a Cloud Shellben. A rendszergazdai fiók esetében cserélje le
<password>
egy összetett jelszóra.wget -N https://raw.githubusercontent.com/MicrosoftDocs/mslearn-secure-and-isolate-with-nsg-and-service-endpoints/master/cloud-init.yml && \ az vm create \ --resource-group $rg \ --name AppServer \ --vnet-name ERP-servers \ --subnet Applications \ --nsg ERP-SERVERS-NSG \ --image Ubuntu2204 \ --size Standard_DS1_v2 \ --generate-ssh-keys \ --admin-username azureuser \ --custom-data cloud-init.yml \ --no-wait \ --admin-password <password>
A DataServer virtuális gép létrehozásához futtassa a következő parancsot a Cloud Shellben. A rendszergazdai fiók esetében cserélje le
<password>
egy összetett jelszóra.az vm create \ --resource-group $rg \ --name DataServer \ --vnet-name ERP-servers \ --subnet Databases \ --nsg ERP-SERVERS-NSG \ --size Standard_DS1_v2 \ --image Ubuntu2204 \ --generate-ssh-keys \ --admin-username azureuser \ --custom-data cloud-init.yml \ --no-wait \ --admin-password <password>
Eltarthat néhány percig, amíg a virtuális gépek futó állapotba kerülnek. A virtuális gépek futásának ellenőrzéséhez futtassa a következő parancsot a Cloud Shellben:
az vm list \ --resource-group $rg \ --show-details \ --query "[*].{Name:name, Provisioned:provisioningState, Power:powerState}" \ --output table
Ha a virtuális gép létrehozása befejeződött, a következő kimenetnek kell megjelennie:
Name Provisioned Power ---------- ------------- ---------- AppServer Succeeded VM running DataServer Succeeded VM running
Az alapértelmezett kapcsolat ellenőrzése
Most minden egyes virtuális géphez egy SSH-munkamenetet fog megnyitni. Ne feledje, eddig egy hálózati biztonsági csoportot helyezett üzembe alapértelmezett szabályokkal.
A virtuális gépekhez való csatlakozáshoz SSH-t használjon közvetlenül a Cloud Shellből. Ehhez szüksége lesz a virtuális gépekhez rendelt nyilvános IP-címekre. A virtuális gépekhez való csatlakozáshoz használt IP-címek listázásához futtassa a következő parancsot a Cloud Shellben:
az vm list \ --resource-group $rg \ --show-details \ --query "[*].{Name:name, PrivateIP:privateIps, PublicIP:publicIps}" \ --output table
Ha a gyakorlat további részében szeretné megkönnyíteni a virtuális gépekhez való csatlakozást, akkor a nyilvános IP-címeket változókhoz kell rendelnie. Ha az AppServer és a DataServer nyilvános IP-címét egy változóba szeretné menteni, futtassa a következő parancsot a Cloud Shellben:
APPSERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name AppServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" DATASERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name DataServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Annak ellenőrzéséhez, hogy tud-e csatlakozni az AppServer virtuális géphez, futtassa a következő parancsot a Cloud Shellben:
ssh azureuser@$APPSERVERIP -o ConnectTimeout=5
Ekkor egy
Connection timed out
üzenetet fog kapni.Annak ellenőrzéséhez, hogy tud-e csatlakozni a DataServer virtuális géphez, futtassa a következő parancsot a Cloud Shellben:
ssh azureuser@$DATASERVERIP -o ConnectTimeout=5
Ekkor ugyanaz a sikertelen csatlakozásról tájékoztató üzenet fog megjelenni.
Ne feledje, hogy az alapértelmezett szabályok a virtuális hálózat minden bejövő forgalmát letiltják, hacsak az adott forgalom nem ugyanarról a virtuális hálózatról érkezik. A Minden bejövő adatforgalom tiltása szabály elutasította az imént kezdeményezett SSH-kapcsolatokat.
Bejövő
Név | Prioritás | Forrás IP-címe | Cél IP-címe | Access |
---|---|---|---|---|
VNet bejövő forgalmának engedélyezése | 65000 | VIRTUAL_NETWORK | VIRTUAL_NETWORK | Engedélyezve |
Minden bejövő forgalom letiltása | 65500 | * | * | Megtagadás |
Biztonsági szabály létrehozása az SSH-hoz
Amint láthatta, az ERP-SERVERS-NSG hálózati biztonsági csoport alapértelmezett szabályai között egy Minden bejövő forgalom letiltása szabály is szerepel. Most egy szabályt fog hozzáadni, hogy használhassa az SSH-t az AppServer és a DataServer nevű virtuális gépekhez való csatlakozáshoz.
Ha új bejövő biztonsági szabályt szeretne létrehozni az SSH-hozzáférés engedélyezéséhez, futtassa a következő parancsot a Cloud Shellben:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name AllowSSHRule \ --direction Inbound \ --priority 100 \ --source-address-prefixes '*' \ --source-port-ranges '*' \ --destination-address-prefixes '*' \ --destination-port-ranges 22 \ --access Allow \ --protocol Tcp \ --description "Allow inbound SSH"
Annak ellenőrzéséhez, hogy tud-e csatlakozni az AppServer virtuális géphez, futtassa a következő parancsot a Cloud Shellben:
ssh azureuser@$APPSERVERIP -o ConnectTimeout=5
A hálózati biztonsági csoport szabályának érvénybe lépése eltarthat egy-két percig. Ha kapcsolathiba üzenet jelenik meg, várjon egy kis időt, és próbálkozzon újra.
Most már tudni fog csatlakozni. Az
Are you sure you want to continue connecting (yes/no)?
üzenet után írja be ayes
kifejezést.Adja meg a virtuális gép létrehozásakor megadott jelszót.
Az AppServer-munkamenet bezárásához írja be a következőt
exit
: .Annak ellenőrzéséhez, hogy most már csatlakozhat-e a DataServer virtuális géphez, futtassa a következő parancsot a Cloud Shellben:
ssh azureuser@$DATASERVERIP -o ConnectTimeout=5
Most már tudni fog csatlakozni. Az
Are you sure you want to continue connecting (yes/no)?
üzenet után írja be ayes
kifejezést.Adja meg a virtuális gép létrehozásakor megadott jelszót.
A DataServer munkamenetének bezárásához írja be a következőt:
exit
.
Biztonsági szabály létrehozása a webes hozzáférés megakadályozása céljából
Most egy szabályt fog hozzáadni, hogy az AppServer HTTP-n keresztül kommunikálhasson a DataServer virtuális gépel, de a DataServer ne tudjon HTTP-n keresztül kommunikálni az AppServer virtuális géppel. Az említett kiszolgálókhoz tartozó belső IP-címek a következők:
Kiszolgálónév | IP address |
---|---|
AppServer | 10.0.0.4 |
DataServer | 10.0.1.4 |
Ha új bejövő biztonsági szabályt szeretne létrehozni a HTTP-hozzáférés megtagadásához a 80-as porton keresztül, futtassa a következő parancsot a Cloud Shellben:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name httpRule \ --direction Inbound \ --priority 150 \ --source-address-prefixes 10.0.1.4 \ --source-port-ranges '*' \ --destination-address-prefixes 10.0.0.4 \ --destination-port-ranges 80 \ --access Deny \ --protocol Tcp \ --description "Deny from DataServer to AppServer on port 80"
Virtuális gépek közötti HTTP-kapcsolat tesztelése
Most azt fogja ellenőrizni, hogy működik-e az új szabály. Az AppServer virtuális gépnek tudnia kell HTTP-n keresztül kommunikálni a DataServer virtuális géppel. A DataServer virtuális gépnek nem szabadna tudnia HTTP-n keresztül kommunikálni az AppServer virtuális géppel.
Az AppServer virtuális géphez való csatlakozáshoz futtassa a következő parancsot a Cloud Shellben. Ellenőrizze, hogy az AppServer virtuális gépn tud-e HTTP-n keresztül kommunikálni a DataServer virtuális géppel.
ssh -t azureuser@$APPSERVERIP 'wget http://10.0.1.4; exit; bash'
Adja meg a virtuális gép létrehozásakor megadott jelszót.
A válaszban szerepelni fog egy
200 OK
üzenetnek.A DataServer virtuális géphez való csatlakozáshoz futtassa a következő parancsot a Cloud Shellben. Ellenőrizze, hogy a DataServer virtuális gép tud-e HTTP-n keresztül kommunikálni az AppServer virtuális géppel.
ssh -t azureuser@$DATASERVERIP 'wget http://10.0.0.4; exit; bash'
Adja meg a virtuális gép létrehozásakor megadott jelszót.
Ez nem fog sikerülni, mivel már letiltotta a 80-as porton keresztüli hozzáférést. Néhány perc elteltével egy
Connection timed out
üzenetet kap. A parancs időtúllépés előtti leállításához nyomja le a Ctrl+C billentyűkombinációt.
Alkalmazásbiztonsági csoport üzembe helyezése
Ezután hozzon létre egy alkalmazásbiztonsági csoportot az adatbázis-kiszolgálókhoz, hogy a csoport összes kiszolgálója ugyanazokat a beállításokat rendelhesse hozzá. Több adatbázis-kiszolgáló üzembe helyezését tervezi, és szeretné megakadályozni, hogy ezek a kiszolgálók HTTP-n keresztül elérhessék az alkalmazáskiszolgálókat. Ha forrásokat rendel az alkalmazásbiztonsági csoporthoz, akkor nem kell manuálisan kezelnie a hálózati biztonsági csoport IP-cím-listáját. Ehelyett a kezelni kívánt virtuális gépek hálózati adapterét az alkalmazásbiztonsági csoporthoz rendeli hozzá.
Az ERP-DB-Standard kiadás RVERS-ASG nevű új alkalmazásbiztonsági csoport létrehozásához futtassa a következő parancsot a Cloud Shellben:
az network asg create \ --resource-group $rg \ --name ERP-DB-SERVERS-ASG
A DataServer alkalmazásbiztonsági csoporthoz való társításához futtassa a következő parancsot a Cloud Shellben:
az network nic ip-config update \ --resource-group $rg \ --application-security-groups ERP-DB-SERVERS-ASG \ --name ipconfigDataServer \ --nic-name DataServerVMNic \ --vnet-name ERP-servers \ --subnet Databases
Az ERP-Standard kiadás RVERS-NSG hálózati biztonsági csoport HTTP-szabályának frissítéséhez futtassa a következő parancsot a Cloud Shellben. Ennek az ERP-DB-Servers alkalmazásbiztonsági csoportra kell hivatkoznia.
az network nsg rule update \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name httpRule \ --direction Inbound \ --priority 150 \ --source-address-prefixes "" \ --source-port-ranges '*' \ --source-asgs ERP-DB-SERVERS-ASG \ --destination-address-prefixes 10.0.0.4 \ --destination-port-ranges 80 \ --access Deny \ --protocol Tcp \ --description "Deny from DataServer to AppServer on port 80 using application security group"
A frissített HTTP biztonsági szabály tesztelése
Az AppServer virtuális géphez való csatlakozáshoz futtassa a következő parancsot a Cloud Shellben. Ellenőrizze, hogy az AppServer virtuális gépn tud-e HTTP-n keresztül kommunikálni a DataServer virtuális géppel.
ssh -t azureuser@$APPSERVERIP 'wget http://10.0.1.4; exit; bash'
Adja meg a virtuális gép létrehozásakor megadott jelszót.
Ahogy korábban is, a válasz tartalmazni fog egy
200 OK
üzenetet. Az alkalmazásbiztonsági csoport beállításainak érvénybe lépése eltarthat egy-két percig. Ha nem kapta meg a(z)200 OK
üzenetet, várjon néhány percet, és próbálkozzon újra.A DataServerhez való csatlakozáshoz futtassa a következő parancsot a Cloud Shellben. Ellenőrizze, hogy a DataServer virtuális gép tud-e HTTP-n keresztül kommunikálni az AppServer virtuális géppel.
ssh -t azureuser@$DATASERVERIP 'wget http://10.0.0.4; exit; bash'
Adja meg a virtuális gép létrehozásakor megadott jelszót.
Ahogyan korábban, ez most sem fog sikerülni, mivel már letiltotta a 80-as porton keresztüli hozzáférést. Néhány perc elteltével egy
Connection timed out
üzenetet kap. A parancs időtúllépés előtti leállításához nyomja le a Ctrl+C billentyűkombinációt.
Most már megerősítette, hogy a hálózati biztonsági csoport szabálya ugyanúgy működik egy alkalmazásbiztonsági csoport használatával, mint a forrás IP-cím használatakor. Ha további adatkiszolgálókat adtunk hozzá, az új kiszolgálók ERP-DB-Standard kiadás RVERS-ASG-hez való hozzáadásával könnyen biztosíthatjuk a megfelelő hálózati biztonságot.