diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md index 4c8a4f0f8..9f8cbb210 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md @@ -1,28 +1,28 @@ -# Az - Azure Network +# Az - Azure Mtandao {{#include ../../../../banners/hacktricks-training.md}} -## Basic Information +## Taarifa za Msingi -Azure inatoa **virtual networks (VNet)** ambazo zinawaruhusu watumiaji kuunda **isolated** **networks** ndani ya wingu la Azure. Ndani ya hizi VNets, rasilimali kama vile mashine za virtual, programu, hifadhidata... zinaweza kuhifadhiwa na kusimamiwa kwa usalama. Mtandao katika Azure unasaidia mawasiliano ndani ya wingu (kati ya huduma za Azure) na muunganisho na mitandao ya nje na intaneti.\ -Zaidi ya hayo, inawezekana **connect** VNets na VNets nyingine na mitandao ya ndani. +Azure hutoa **virtual networks (VNet)** ambazo zinawezesha watumiaji kuunda **mitandao** **iliyotengwa** ndani ya wingu la Azure. Ndani ya VNet hizi, rasilimali kama virtual machines, applications, databases... zinaweza kuendeshwa na kusimamiwa kwa usalama. Usanifu wa mtandao katika Azure unaunga mkono mawasiliano ndani ya wingu (katika huduma za Azure) pamoja na muunganisho kwa mitandao ya nje na intaneti.\ +Zaidi ya hayo, inawezekana ku**unganisha** VNet na VNet nyingine na na mitandao ya on-premise. -## Virtual Network (VNET) & Subnets +## Mtandao wa Virtual (VNET) & Subnets -Azure Virtual Network (VNet) ni uwakilishi wa mtandao wako mwenyewe katika wingu, ukitoa **logical isolation** ndani ya mazingira ya Azure yaliyotengwa kwa ajili ya usajili wako. VNets zinakuruhusu kuandaa na kusimamia mitandao ya kibinafsi ya virtual (VPNs) katika Azure, zikihifadhi rasilimali kama Mashine za Virtual (VMs), hifadhidata, na huduma za programu. Zinatoa **full control over network settings**, ikiwa ni pamoja na anuwai za anwani za IP, uundaji wa subnets, meza za njia, na lango za mtandao. +Azure Virtual Network (VNet) ni mwakilishi wa mtandao wako mwenyewe ndani ya wingu, ikitoa **utengwa wa kimantiki** ndani ya mazingira ya Azure yaliyowekwa kwa ada yako. VNet zinakuwezesha kuanzisha na kusimamia virtual private networks (VPNs) katika Azure, zikihifadhi rasilimali kama Virtual Machines (VMs), databases, na application services. Zinatoa **udhibiti kamili juu ya mipangilio ya mtandao**, ikijumuisha anuwai za anwani za IP, uundaji wa subnet, jedwali la njia, na gateways za mtandao. -**Subnets** ni sehemu ndogo ndani ya VNet, zilizofafanuliwa na **IP address ranges** maalum. Kwa kugawanya VNet katika subnets nyingi, unaweza kuandaa na kulinda rasilimali kulingana na usanifu wa mtandao wako.\ -Kwa kawaida, subnets zote ndani ya Azure Virtual Network (VNet) **zinaweza kuwasiliana na kila mmoja** bila vizuizi vyovyote. +**Subnets** ni mgawanyiko ndani ya VNet, uliowekwa kwa anuwai maalum za **anwani za IP**. Kwa kugawa VNet katika subnets nyingi, unaweza kupanga na kulinza rasilimali kulingana na usanifu wa mtandao wako.\ +Kwa chaguo-msingi subnets zote ndani ya Azure Virtual Network (VNet) moja **zinaweza kuwasiliana kati yao** bila vizuizi. -**Example:** +**Mfano:** - `MyVNet` yenye anuwai ya anwani za IP 10.0.0.0/16. -- **Subnet-1:** 10.0.0.0/24 kwa ajili ya seva za wavuti. -- **Subnet-2:** 10.0.1.0/24 kwa ajili ya seva za hifadhidata. +- **Subnet-1:** 10.0.0.0/24 kwa seva za wavuti. +- **Subnet-2:** 10.0.1.0/24 kwa seva za hifadhidata. ### Enumeration -Ili kuorodhesha VNets na subnets zote katika akaunti ya Azure, unaweza kutumia Azure Command-Line Interface (CLI). Hapa kuna hatua: +Ili kuorodhesha VNet zote na subnets ndani ya akaunti ya Azure, unaweza kutumia Azure Command-Line Interface (CLI). Hapa kuna hatua: {{#tabs }} {{#tab name="az cli" }} @@ -47,18 +47,18 @@ Select-Object Name, AddressPrefix {{#endtab }} {{#endtabs }} -## Makundi ya Usalama wa Mtandao (NSG) +## Vikundi vya Usalama vya Mtandao (NSG) -**Makundi ya Usalama wa Mtandao (NSG)** yanachuja trafiki ya mtandao kuingia na kutoka kwa rasilimali za Azure ndani ya Mtandao wa Kijadi wa Azure (VNet). Yanashikilia seti ya **kanuni za usalama** ambazo zinaweza kuonyesha **ni bandari zipi za kufungua kwa trafiki ya kuingia na kutoka** kwa bandari ya chanzo, IP ya chanzo, marudio ya bandari na inawezekana kuweka kipaumbele (nambari ya kipaumbele ya chini, kipaumbele cha juu). +A **Network Security Group (NSG)** huchuja trafiki ya mtandao kuingia na kutoka kwa rasilimali za Azure ndani ya Azure Virtual Network (VNet). Ina seti ya **security rules** ambazo zinaweza kuonyesha **ni ports gani za kufungua kwa trafiki ya inbound na outbound** kwa msingi wa source port, source IP, port destination, na inawezekana kuteua kipaumbele (nambari ndogo ya kipaumbele = kipaumbele cha juu). -NSGs zinaweza kuunganishwa na **subnets na NICs.** +NSGs zinaweza kuambatishwa kwa **subnets and NICs.** -**Mfano wa kanuni:** +**Mfano wa sheria:** -- Kanuni ya kuingia inayoruhusu trafiki ya HTTP (bandari 80) kutoka chanzo chochote kwa seva zako za wavuti. -- Kanuni ya kutoka inayoruhusu tu trafiki ya SQL (bandari 1433) kwa anwani maalum ya IP. +- Sheria ya inbound inayoruhusu trafiki ya HTTP (port 80) kutoka chanzo chochote hadi web servers zako. +- Sheria ya outbound inayoruhusu tu trafiki ya SQL (port 1433) kwenda kwa anuwai maalum ya destination IP. -### Uhesabuji +### Uorodheshaji {{#tabs }} {{#tab name="az cli" }} @@ -71,7 +71,7 @@ az network nsg show --name az network nsg rule list --nsg-name --resource-group --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table # Get NICs and subnets using this NSG -az network nsg show --name MyLowCostVM-nsg --resource-group Resource_Group_1 --query "{subnets: subnets, networkInterfaces: networkInterfaces}" +az network nsg show --name --resource-group --query "{subnets: subnets, networkInterfaces: networkInterfaces}" ``` {{#endtab }} {{#tab name="PowerShell" }} @@ -81,32 +81,35 @@ Get-AzNetworkSecurityGroup | Select-Object Name, Location Get-AzNetworkSecurityGroup -Name -ResourceGroupName # Get NSG rules -(Get-AzNetworkSecurityGroup -ResourceGroupName -Name ).SecurityRules +Get-AzNetworkSecurityGroup -Name -ResourceGroupName | +Select-Object -ExpandProperty SecurityRules | +Select-Object Name, Priority, Direction, Access, Protocol, SourceAddressPrefix, DestinationAddressPrefix, SourcePortRange, DestinationPortRange # Get NICs and subnets using this NSG (Get-AzNetworkSecurityGroup -Name -ResourceGroupName ).Subnets +(Get-AzNetworkSecurityGroup -Name -ResourceGroupName ).NetworkInterfaces ``` {{#endtab }} {{#endtabs }} ## Azure Firewall -Azure Firewall ni **huduma ya usalama wa mtandao inayosimamiwa** katika Azure inayolinda rasilimali za wingu kwa kukagua na kudhibiti trafiki. Ni **firewall yenye hali** inayochuja trafiki kulingana na sheria za Tabaka 3 hadi 7, ikisaidia mawasiliano ndani ya **Azure** (trafiki ya mashariki-magharibi) na **kuja/kutoka kwa mitandao ya nje** (trafiki ya kaskazini-south). Imewekwa katika **ngazi ya Mtandao wa Kijadi (VNet)**, inatoa ulinzi wa kati kwa subnets zote katika VNet. Azure Firewall inajipanga kiotomatiki ili kushughulikia mahitaji ya trafiki na kuhakikisha upatikanaji wa juu bila kuhitaji mipangilio ya mikono. +Azure Firewall ni **firewall iliyosimamiwa na stateful** ambayo inachuja trafiki (L3–L7) kwa mtiririko wa mashariki-magharibi na kaskazini-kusini. Imewekwa kwenye ngazi ya **VNet**, inaleta ukaguzi wa kati kwa subnets zote na ina uwezo wa kujikokotoa (auto-scale) ili kuhakikisha upatikanaji. -Inapatikana katika SKUs tatu—**Msingi**, **Kawaida**, na **Kitaalamu**, kila moja imeandaliwa kwa mahitaji maalum ya wateja: +SKUs zinazopatikana: **Basic**, **Standard**, na **Premium**: -| Kigezo/Feature | Chaguo 1 | Chaguo 2 | Chaguo 3 | +| Vigezo/Kipengele | Chaguo 1 | Chaguo 2 | Chaguo 3 | | ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- | -| **Matumizi Yanayopendekezwa** | Biashara Ndogo/Kati (SMBs) zenye mahitaji madogo | Matumizi ya kawaida ya biashara, uchujaji wa Tabaka 3–7 | Mazingira yenye nyeti sana (mfano, usindikaji wa malipo) | -| **Utendaji** | Hadi 250 Mbps kupitia | Hadi 30 Gbps kupitia | Hadi 100 Gbps kupitia | -| **Intelligence ya Hatari** | Arifa pekee | Arifa na kuzuia (IP/domeni mbaya) | Arifa na kuzuia (intelligence ya hatari ya juu) | -| **Uchujaji wa L3–L7** | Uchujaji wa msingi | Uchujaji wenye hali kati ya protokali | Uchujaji wenye hali na ukaguzi wa juu | -| **Ulinzi wa Hatari wa Juu** | Haipatikani | Uchujaji unaotegemea intelligence ya hatari | Inajumuisha Mfumo wa Kugundua na Kuzuia Uvamizi (IDPS) | -| **Ukaguzi wa TLS** | Haipatikani | Haipatikani | Inasaidia kumaliza TLS ya kuingia/kuondoka | -| **Upatikanaji** | Backend iliyowekwa (VM 2) | Autoscaling | Autoscaling | -| **Urahisi wa Usimamizi** | Mifumo ya msingi | Inasimamiwa kupitia Meneja wa Firewall | Inasimamiwa kupitia Meneja wa Firewall | +| **Matumizi Yanayopendekezwa** | Biashara Ndogo/Za Kati (SMBs) zenye mahitaji madogo | Matumizi ya kampuni kwa ujumla, kuchuja Layer 3–7 | Mazingira yenye unyeti mkubwa (mf., usindikaji malipo) | +| **Utendaji** | Hadi 250 Mbps | Hadi 30 Gbps | Hadi 100 Gbps | +| **Intelijensia ya Vitisho** | Arifa tu | Arifa na kuzuia (IP/domains hatarishi) | Arifa na kuzuia (intelijensia ya vitisho ya juu) | +| **Kuchuja L3–L7** | Kuchuja msingi | Kuchuja stateful kwa protokoli mbalimbali | Kuchuja stateful yenye ukaguzi wa juu | +| **Ulinzi wa Vitisho wa Juu** | Haipatikani | Kuchuja kwa msingi wa intelijensia ya vitisho | Inajumuisha Intrusion Detection and Prevention System (IDPS) | +| **Ukaguzi wa TLS** | Haipatikani | Haipatikani | Inaunga mkono TLS termination kwa inbound/outbound | +| **Upatikanaji** | Backend thabiti (2 VMs) | Autoscaling | Autoscaling | +| **Urahisi wa Usimamizi** | Dhibiti za msingi | Inasimamiwa kupitia Firewall Manager | Inasimamiwa kupitia Firewall Manager | -### Enumeration +### Uorodheshaji {{#tabs }} {{#tab name="az cli" }} @@ -143,9 +146,14 @@ Get-AzFirewall ## Azure Route Tables -Azure **Route Tables** zinatumika kudhibiti mwelekeo wa trafiki ya mtandao ndani ya subnet. Zinabainisha sheria ambazo zinaeleza jinsi pakiti zinapaswa kupelekwa, iwe kwa rasilimali za Azure, mtandao, au hatua maalum kama vile Kifaa cha Virtual au Azure Firewall. Unaweza kuunganisha meza ya mwelekeo na **subnet**, na rasilimali zote ndani ya subnet hiyo zitafuata mwelekeo katika meza. +Azure **Route Tables (UDR)** zinakuwezesha kubadilisha routing ya chaguo-msingi kwa kuainisha destination prefixes (mfano, `10.0.0.0/16` au `0.0.0.0/0`) na next hop (Virtual Network, Internet, Virtual Network Gateway, or Virtual Appliance). -**Mfano:** Ikiwa subnet ina rasilimali ambazo zinahitaji kuelekeza trafiki ya nje kupitia Kifaa cha Virtual cha Mtandao (NVA) kwa ukaguzi, unaweza kuunda **mwelekeo** katika meza ya mwelekeo ili kuelekeza trafiki yote (e.g., `0.0.0.0/0`) kwa anwani ya IP ya kibinafsi ya NVA kama hatua inayofuata. +> Routes zinatumika kwa kiwango cha subnet; VMs zote katika subnet hiyo zinafuata jedwali. + +**Mfano:** + +- Kwa trafiki inayokwenda Internet, tumia default `0.0.0.0/0` na **Internet** kama next hop. +- Ili kuchunguza trafiki inayoelekea nje, elekeza `0.0.0.0/0` kwa IP ya Network Virtual Appliance (NVA). ### **Enumeration** @@ -155,8 +163,11 @@ Azure **Route Tables** zinatumika kudhibiti mwelekeo wa trafiki ya mtandao ndani # List Route Tables az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table -# List routes for a table -az network route-table route list --route-table-name --resource-group --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table +# List routes for a table (summary) +az network route-table route list --resource-group --route-table-name --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table + +# List routes for a table (full) +az network route-table route list --resource-group --route-table-name ``` {{#endtab }} {{#tab name="PowerShell" }} @@ -172,18 +183,18 @@ Get-AzRouteTable ## Azure Private Link -Azure Private Link ni huduma katika Azure ambayo **inawezesha ufikiaji wa kibinafsi kwa huduma za Azure** kwa kuhakikisha kwamba **trafiki kati ya mtandao wako wa Azure wa virtual (VNet) na huduma inasafiri kabisa ndani ya mtandao wa msingi wa Microsoft Azure**. Inaleta huduma hiyo moja kwa moja ndani ya VNet yako. Mpangilio huu unaboresha usalama kwa kutokuweka data wazi kwa mtandao wa umma. +Azure Private Link ni huduma ndani ya Azure inayowezesha ufikiaji wa kibinafsi kwa huduma za Azure kwa kuhakikisha kwamba trafiki kati ya Azure virtual network (VNet) yako na huduma inasafiri kabisa ndani ya mtandao wa msingi wa Azure wa Microsoft. Kwa vitendo inaleta huduma ndani ya VNet yako. Mpangilio huu unaongeza usalama kwa kutoonyesha data kwenye intaneti ya umma. -Private Link inaweza kutumika na huduma mbalimbali za Azure, kama Azure Storage, Azure SQL Database, na huduma za kawaida zinazoshirikiwa kupitia Private Link. Inatoa njia salama ya kutumia huduma kutoka ndani ya VNet yako mwenyewe au hata kutoka kwa usajili tofauti wa Azure. +Private Link inaweza kutumika na huduma mbalimbali za Azure, kama Azure Storage, Azure SQL Database, na huduma za kawaida zilizoshirikiwa kupitia Private Link. Inatoa njia salama ya kutumia huduma kutoka ndani ya VNet yako au hata kutoka kwenye subscriptions tofauti za Azure. > [!CAUTION] -> NSGs hazihusiki na mwisho wa kibinafsi, ambayo ina maana wazi kwamba kuunganisha NSG na subnet ambayo ina Private Link hakutakuwa na athari yoyote. +> NSGs hazitekelezi kwa private endpoints; kwa hivyo kuhusisha NSG na subnet ambayo ina Private Link haitaathiri. -**Mfano:** +**Example:** -Fikiria hali ambapo una **Azure SQL Database ambayo unataka kufikia kwa usalama kutoka VNet yako**. Kawaida, hii inaweza kuhusisha kupita kwenye mtandao wa umma. Kwa kutumia Private Link, unaweza kuunda **mwanzo wa kibinafsi katika VNet yako** ambao unahusisha moja kwa moja na huduma ya Azure SQL Database. Mwanzo huu unafanya database ionekane kana kwamba ni sehemu ya VNet yako mwenyewe, inayopatikana kupitia anwani ya IP ya kibinafsi, hivyo kuhakikisha ufikiaji salama na wa kibinafsi. +Fikiria hali ambapo una **Azure SQL Database ambayo unataka kuifikia kwa usalama kutoka VNet yako**. Kawaida, hii inaweza kuhitaji kusafiri kupitia intaneti ya umma. Kwa Private Link, unaweza kuunda **private endpoint katika VNet yako** ambayo inaunganishwa moja kwa moja na huduma ya Azure SQL Database. Endpoint hii inafanya database ionekane kama sehemu ya VNet yako mwenyewe, inapatikana kupitia anwani ya IP ya kibinafsi, hivyo kuhakikisha ufikiaji salama na wa kibinafsi. -### **Enumeration** +### **Uorodheshaji** {{#tabs }} {{#tab name="az cli" }} @@ -206,15 +217,62 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private {{#endtab }} {{#endtabs }} +### DNS OverDoS via service Private DNS zone links + +When a VNet has a **Virtual Network Link** to a **service Private DNS zone** (e.g., `privatelink.blob.core.windows.net`), Azure **forces hostname resolution** for Private Link registered resources of that service type through the zone. If the zone **lacks the required `A` record** for a resource that workloads still access via its public endpoint, DNS resolution returns **NXDOMAIN** and clients never reach the public IP, causing an **availability DoS** without touching the resource itself. + +**Abuse flow (control-plane DoS):** + +1. Pata RBAC inayoruhusu kuunda **Private Endpoints** au kubadilisha **Private DNS zone links**. +2. Unda Private Endpoint kwa aina hiyo ya service katika VNet nyingine (Azure huunda kiotomatiki service Private DNS zone na kuiunga na VNet hiyo). +3. Unganisha ile **service Private DNS zone** na VNet ya mwathiriwa. +4. Kwa kuwa VNet ya mwathiriwa sasa **inalazimisha utatuzi kupitia Private DNS zone** na hakuna rekodi ya `A` kwa rasilimali lengwa katika zone hiyo, utatuzi wa majina unashindwa na workload haiwezi kufikia endpoint (iliyobaki kuwa ya umma). Hii inatumika kwa huduma yoyote inayoungwa mkono na Private Link (storage, Key Vault, ACR, Cosmos DB, Function Apps, OpenAI, etc.). + +**Discovery at scale (Azure Resource Graph):** + +- VNETs linked to the blob Private DNS zone (forced resolution for PL-registered blob endpoints): +```kusto +resources +| where type == "microsoft.network/privatednszones/virtualnetworklinks" +| extend +zone = tostring(split(id, "/virtualNetworkLinks")[0]), +vnetId = tostring(properties.virtualNetwork.id) +| join kind=inner ( +resources +| where type == "microsoft.network/privatednszones" +| where name == "privatelink.blob.core.windows.net" +| project zoneId = id +) on $left.zone == $right.zoneId +| project vnetId +``` +- Storage accounts zinazofikiwa kupitia public endpoint lakini **bila** Private Endpoint connections (huenda zikavunjika ikiwa kiungo kilicho hapo juu kitaongezwa): +```kusto +Resources +| where type == "microsoft.storage/storageaccounts" +| extend publicNetworkAccess = properties.publicNetworkAccess +| extend defaultAction = properties.networkAcls.defaultAction +| extend vnetRules = properties.networkAcls.virtualNetworkRules +| extend ipRules = properties.networkAcls.ipRules +| extend privateEndpoints = properties.privateEndpointConnections +| where publicNetworkAccess == "Enabled" +| where defaultAction == "Deny" +| where (isnull(privateEndpoints) or array_length(privateEndpoints) == 0) +| extend allowedVnets = iif(isnull(vnetRules), 0, array_length(vnetRules)) +| extend allowedIps = iif(isnull(ipRules), 0, array_length(ipRules)) +| where allowedVnets > 0 or allowedIps > 0 +| project id, name, vnetRules, ipRules +``` ## Azure Service Endpoints -Azure Service Endpoints huongeza nafasi ya anwani ya faragha ya mtandao wako wa virtual na utambulisho wa VNet yako kwa huduma za Azure kupitia muunganisho wa moja kwa moja. Kwa kuwezesha service endpoints, **rasilimali katika VNet yako zinaweza kuungana kwa usalama na huduma za Azure**, kama Azure Storage na Azure SQL Database, kwa kutumia mtandao wa msingi wa Azure. Hii inahakikisha kwamba **trafiki kutoka VNet hadi huduma ya Azure inabaki ndani ya mtandao wa Azure**, ikitoa njia salama na ya kuaminika zaidi. +Azure Service Endpoints huongeza eneo la anwani za faragha za virtual network yako na utambulisho wa VNet yako kwa Azure services kupitia muunganisho wa moja kwa moja. Kwa kuwezesha service endpoints, **rasilimali ndani ya VNet yako zinaweza kuunganishwa kwa usalama na Azure services**, kama Azure Storage na Azure SQL Database, kupitia Azure backbone network. Hii ni muhimu hasa inapochanganywa na Network Security Groups (NSGs) kwa udhibiti wa trafiki kwa undani. **Mfano:** -Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti ya umma. Kwa kuwezesha **service endpoint kwa Azure Storage ndani ya VNet yako**, unaweza kuhakikisha kwamba ni trafiki pekee kutoka VNet yako inayoweza kufikia akaunti ya uhifadhi. Kisha, moto wa akaunti ya uhifadhi unaweza kuwekewa mipangilio ili kukubali trafiki tu kutoka VNet yako. +- Kwa **Storage** Account na Service Endpoint **iliyowezeshwa** katika VNET, inawezekana kuruhusu trafiki inayokuja **kutoka tu kwa VNET iliyoko kwenye storage account firewall**, kufanya iwe ya **muunganisho salama** bila kuhitaji upatikanaji wa IP ya umma kwa storage service. -### **Enumeration** +Service Endpoints **hazihitaji anwani za IP za kibinafsi** kwa huduma na badala yake zinategemea Azure backbone kwa muunganisho salama. Ziko **rahisi kuweka** ikilinganishwa na Private Links lakini **hazitoi kiwango sawa cha kutengwa na udhibiti wa undani** kama Private Links. + +### **Uorodheshaji** {{#tabs }} {{#tab name="az cli" }} @@ -223,7 +281,10 @@ Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table # List Subnets with Service Endpoints -az network vnet subnet list --resource-group --vnet-name --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table +az network vnet subnet list --resource-group --vnet-name --query "[].{name:name, serviceEndpoints:serviceEndpoints}" + +# List Service Endpoints for a Subnet +az network vnet subnet show --resource-group --vnet-name --name --query "serviceEndpoints" ``` {{#endtab }} {{#tab name="PowerShell" }} @@ -237,7 +298,7 @@ Get-AzVirtualNetwork {{#endtab }} {{#endtabs }} -### Tofauti Kati ya Service Endpoints na Private Links +### Tofauti kati ya Service Endpoints na Private Links Microsoft inapendekeza kutumia Private Links katika [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints): @@ -245,50 +306,64 @@ Microsoft inapendekeza kutumia Private Links katika [**docs**](https://learn.mic **Service Endpoints:** -- Trafiki kutoka kwa VNet yako hadi huduma ya Azure inasafiri kupitia mtandao wa Microsoft Azure backbone, ikiepuka intaneti ya umma. -- Endpoint ni muunganisho wa moja kwa moja na huduma ya Azure na haipatii IP ya kibinafsi kwa huduma ndani ya VNet. -- Huduma yenyewe bado inapatikana kupitia endpoint yake ya umma kutoka nje ya VNet yako isipokuwa uwekeze moto wa huduma kuzuia trafiki kama hiyo. -- Ni uhusiano wa moja kwa moja kati ya subnet na huduma ya Azure. -- Ni ya gharama nafuu zaidi kuliko Private Links. +- Trafiki kutoka VNet yako kwenda huduma ya Azure husafiri kupitia Microsoft Azure backbone network, ikiepuka internet ya umma. +- Endpoint ni muunganisho wa moja kwa moja kwa huduma ya Azure na hauwezi kutoa private IP kwa huduma ndani ya VNet. +- Huduma yenyewe bado inapatikana kupitia public endpoint yake kutoka nje ya VNet yako isipokuwa ukisanidi firewall ya huduma ili kuzuia trafiki hiyo. +- Ni uhusiano wa mmoja kwa mmoja kati ya subnet na huduma ya Azure. +- Ni nafuu zaidi kuliko Private Links. **Private Links:** -- Private Link inachora huduma za Azure ndani ya VNet yako kupitia endpoint ya kibinafsi, ambayo ni kiunganishi cha mtandao chenye anwani ya IP ya kibinafsi ndani ya VNet yako. -- Huduma ya Azure inafikiwa kwa kutumia anwani hii ya IP ya kibinafsi, ikifanya ionekane kana kwamba ni sehemu ya mtandao wako. -- Huduma zilizounganishwa kupitia Private Link zinaweza kufikiwa tu kutoka kwa VNet yako au mitandao iliyounganishwa; hakuna ufikiaji wa intaneti ya umma kwa huduma hiyo. -- Inaruhusu muunganisho salama kwa huduma za Azure au huduma zako binafsi zinazohifadhiwa katika Azure, pamoja na muunganisho kwa huduma zinazoshirikiwa na wengine. -- Inatoa udhibiti wa ufikiaji wa kina kupitia endpoint ya kibinafsi katika VNet yako, tofauti na udhibiti mpana wa ufikiaji katika kiwango cha subnet na service endpoints. +- Private Link inaweka huduma za Azure ndani ya VNet yako kupitia private endpoint, ambayo ni network interface yenye private IP ndani ya VNet yako. +- Huduma ya Azure inapatikana kwa kutumia private IP hii, ikifanya ionekane kama sehemu ya mtandao wako. +- Huduma zilizounganishwa kupitia Private Link zinaweza kupatikana tu kutoka VNet yako au mitandao iliyounganishwa; hakuna ufikiaji kupitia internet ya umma kwa huduma hiyo. +- Inawawezesha muunganisho salama kwa huduma za Azure au huduma zako mwenyewe zilizo hifadhiwa katika Azure, pamoja na muunganisho kwa huduma zinazoshirikiwa na wengine. +- Inatoa udhibiti wa ufikiaji wenye uwiano mdogo (granular) kupitia private endpoint katika VNet yako, tofauti na udhibiti mpana wa ufikiaji kwenye ngazi ya subnet kwa service endpoints. -Kwa muhtasari, ingawa Service Endpoints na Private Links zote zinatoa muunganisho salama kwa huduma za Azure, **Private Links hutoa kiwango cha juu cha kutengwa na usalama kwa kuhakikisha kwamba huduma zinapatikana kwa siri bila kuzifichua kwa intaneti ya umma**. Service Endpoints, kwa upande mwingine, ni rahisi kuanzisha kwa kesi za jumla ambapo ufikiaji rahisi na salama kwa huduma za Azure unahitajika bila haja ya IP ya kibinafsi katika VNet. +Kwa muhtasari, ingawa Service Endpoints na Private Links zote zinatoa muunganisho salama kwa huduma za Azure, **Private Links zinatoa kiwango cha juu cha kutenganishwa na usalama kwa kuhakikisha huduma zinapatikana kwa njia ya kibinafsi bila kuziacha wazi kwenye internet ya umma**. Service Endpoints, kwa upande mwingine, ni rahisi kusanidi kwa matukio ya jumla ambapo ufikiaji rahisi na salama wa huduma za Azure unahitajika bila hitaji la private IP ndani ya VNet. ## Azure Front Door (AFD) & AFD WAF -**Azure Front Door** ni kipengele kinachoweza kupanuka na salama kwa **usambazaji wa haraka** wa programu zako za wavuti za kimataifa. In **changanya** huduma mbalimbali kama **usambazaji wa mzigo wa kimataifa, kuharakisha tovuti, SSL offloading, na uwezo wa Web Application Firewall (WAF)** katika huduma moja. Azure Front Door inatoa usafirishaji wa akili kulingana na **mahali pa karibu zaidi na mtumiaji**, kuhakikisha utendaji bora na uaminifu. Zaidi ya hayo, inatoa usafirishaji wa URL, mwenyeji wa tovuti nyingi, upendeleo wa kikao, na usalama wa safu ya programu. +**Azure Front Door** ni njia ya kuingia inayoweza kupanuka na salama kwa ajili ya **utoaji wa haraka** wa web applications zako za kimataifa. Inachanganya huduma mbalimbali kama **application acceleration, SSL offloading, na application layer security** (kupitia Web Application Firewall - WAF). Imejengwa kwa kanuni ya edge POP (Point of Presence) maeneo duniani kote ili kupeleka applications zako karibu na watumiaji wako. -**Azure Front Door WAF** imeundwa ili **kulinda programu za wavuti kutokana na mashambulizi ya mtandaoni** bila kubadilisha msimbo wa nyuma. Inajumuisha sheria za kawaida na seti za sheria zinazodhibitiwa ili kulinda dhidi ya vitisho kama vile SQL injection, cross-site scripting, na mashambulizi mengine ya kawaida. +> Azure Front Door inatoa mtandao uliogawanywa kimataifa wa maeneo ya edge ili **route and accelerate** trafiki inayoingia kuelekea web applications zako (in Azure or elsewhere), kuboresha utendaji, na kuongeza usalama. **Mfano:** -Fikiria una programu iliyosambazwa kimataifa yenye watumiaji kote ulimwenguni. Unaweza kutumia Azure Front Door ili **kupeleka maombi ya watumiaji kwa kituo cha data cha kikanda kilicho karibu zaidi** kinachohifadhi programu yako, hivyo kupunguza ucheleweshaji, kuboresha uzoefu wa mtumiaji na **kuilinda kutokana na mashambulizi ya mtandaoni kwa uwezo wa WAF**. Ikiwa eneo fulani linakabiliwa na kukatika, Azure Front Door inaweza kuhamasisha trafiki kiotomatiki kwa eneo linalofuata bora, kuhakikisha upatikanaji wa juu. +- Kwa jukwaa la e-commerce la kimataifa lenye watumiaji duniani kote, **Azure Front Door inaweza ku-cache static content katika maeneo ya edge** na kutoa **SSL offloading**, kupunguza latency na kutoa uzoefu wa mtumiaji wenye mwitikio zaidi. Zaidi ya hayo, inatoa **WAF** kulinda applications zako dhidi ya udhaifu wa kawaida wa wavuti (kama SQL injection au XSS). -### Enumeration +Azure Front Door pia inatoa **smart load balancing** kwa kupangia trafiki kwa backend iliyo karibu inayopatikana kulingana na health probes na latency, kuhakikisha utendaji na upatikana thabiti. Kwa kuingiza **WAF**, inasaidia kulinda dhidi ya vitisho vya kawaida vya wavuti. + +### **Enumeration** {{#tabs }} {{#tab name="az cli" }} ```bash -# List Azure Front Door Instances +# List Azure Front Door profiles +az afd profile list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table + +# List AFD endpoints +az afd endpoint list --profile-name --resource-group --query "[].{name:name, hostName:hostName, state:resourceState}" -o table + +# Classic Azure Front Door (v1) profiles az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table -# List Front Door WAF Policies +# Classic Azure Front Door WAF policies az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table ``` {{#endtab }} {{#tab name="PowerShell" }} ```bash -# List Azure Front Door Instances +# List Azure Front Door profiles +Get-AzFrontDoorCdnProfile | Select-Object Name, Location, ResourceGroupName + +# List AFD endpoints +Get-AzFrontDoorCdnEndpoint -ProfileName -ResourceGroupName | Select-Object Name, HostName, ResourceState + +# Classic Azure Front Door (v1) profiles Get-AzFrontDoor -# List Front Door WAF Policies +# Classic Azure Front Door WAF policies Get-AzFrontDoorWafPolicy -Name -ResourceGroupName ``` {{#endtab }} @@ -296,14 +371,14 @@ Get-AzFrontDoorWafPolicy -Name -ResourceGroupName - {{#endtab }} {{#endtabs }} -## Azure Hub, Spoke & VNet Peering +## VNet Peering & HUB and Spoke topolojia -**VNet Peering** ni kipengele cha mtandao katika Azure ambacho **kinaruhusu Mitandao ya Kijadi (VNets) tofauti kuunganishwa moja kwa moja na bila mshono**. Kupitia VNet peering, rasilimali katika VNet moja zinaweza kuwasiliana na rasilimali katika VNet nyingine kwa kutumia anwani za IP za kibinafsi, **kama vile zilikuwa katika mtandao mmoja**.\ -**VNet Peering inaweza pia kutumika na mitandao ya ndani** kwa kuweka VPN ya tovuti hadi tovuti au Azure ExpressRoute. +### VNet Peering -**Azure Hub na Spoke** ni muundo wa mtandao unaotumika katika Azure kusimamia na kuandaa trafiki ya mtandao. **"hub" ni sehemu ya kati inayodhibiti na kuelekeza trafiki kati ya "spokes" tofauti**. Hub kwa kawaida ina huduma za pamoja kama vile vifaa vya mtandao vya virtual (NVAs), Azure VPN Gateway, Azure Firewall, au Azure Bastion. **"spokes" ni VNets ambazo zinaweka kazi na kuungana na hub kwa kutumia VNet peering**, na kuwapa uwezo wa kutumia huduma za pamoja ndani ya hub. Mfano huu unakuza mpangilio safi wa mtandao, ukipunguza ugumu kwa kuunganisha huduma za kawaida ambazo kazi nyingi katika VNets tofauti zinaweza kutumia. +**VNet Peering** ni kipengele katika Azure kinachoruhusu Virtual Networks (VNets) tofauti kuunganishwa moja kwa moja na bila mshono. Kupitia VNet peering, rasilimali katika VNet moja zinaweza kuwasiliana na rasilimali katika VNet nyingine kwa kutumia anwani za IP binafsi, **kama vile zilikuwa kwenye mtandao mmoja**.\ -> [!CAUTION] > **VNET pairing si ya kupitisha katika Azure**, ambayo inamaanisha kwamba ikiwa spoke 1 imeunganishwa na spoke 2 na spoke 2 imeunganishwa na spoke 3 basi spoke 1 haiwezi kuzungumza moja kwa moja na spoke 3. +**VNet Peering pia inaweza kutumika na on-prem networks** kwa kuanzisha site-to-site VPN au Azure ExpressRoute. + +**Azure Hub and Spoke** ni usanifu wa mtandao unaotumia VNet peering kuunda **Hub VNet** ya kati inayounganisha na nyingi za **Spoke VNets**. Hub kawaida ina huduma za pamoja (kama firewalls, DNS, au Active Directory) wakati spokes zinaendesha workloads za programu. Muundo huu unarahisisha usimamizi, unaongeza usalama kupitia udhibiti wa kati, na unapunguza urudufu. **Mfano:** -Fikiria kampuni yenye idara tofauti kama Mauzo, HR, na Maendeleo, **kila moja ikiwa na VNet yake (spokes)**. VNets hizi **zinahitaji ufikiaji wa rasilimali za pamoja** kama vile hifadhidata ya kati, firewall, na lango la intaneti, ambazo zote ziko katika **VNet nyingine (hub)**. Kwa kutumia mfano wa Hub na Spoke, kila idara inaweza **kuungana kwa usalama na rasilimali za pamoja kupitia VNet ya hub bila kufichua rasilimali hizo kwa intaneti ya umma** au kuunda muundo mgumu wa mtandao wenye uhusiano mwingi. +Shirika kubwa lenye idara nyingi (Finance, HR, IT) linaweza kuunda **Hub VNet with shared services** kama firewalls na DNS servers. Kila idara inaweza kuwa na Spoke VNet yake inayounganishwa na Hub kupitia peering. Hii inawawezesha idara kuwasiliana kwa usalama na kutumia huduma za pamoja bila kufichua rasilimali zao kwenye mtandao wa umma. -### Enumeration +### **Enumeration** {{#tabs }} {{#tab name="az cli" }} @@ -341,8 +417,8 @@ Fikiria kampuni yenye idara tofauti kama Mauzo, HR, na Maendeleo, **kila moja ik # List all VNets in your subscription az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table -# List VNet peering connections for a given VNet -az network vnet peering list --resource-group --vnet-name --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table +# List VNet Peerings +az network vnet peering list --resource-group --vnet-name --query "[].{name:name, remoteVnetId:remoteVirtualNetwork.id, allowForwardedTraffic:allowForwardedTraffic, allowGatewayTransit:allowGatewayTransit}" # List Shared Resources (e.g., Azure Firewall) in the Hub az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table @@ -353,8 +429,8 @@ az network firewall list --query "[].{name:name, location:location, resourceGrou # List all VNets in your subscription Get-AzVirtualNetwork -# List VNet peering connections for a given VNet -(Get-AzVirtualNetwork -ResourceGroupName -Name ).VirtualNetworkPeerings +# List VNet Peerings +Get-AzVirtualNetworkPeering -ResourceGroupName -VirtualNetworkName # List Shared Resources (e.g., Azure Firewall) in the Hub Get-AzFirewall @@ -362,15 +438,15 @@ Get-AzFirewall {{#endtab }} {{#endtabs }} -## VPN ya Tovuti hadi Tovuti +## Site-to-Site VPN -VPN ya Tovuti hadi Tovuti katika Azure inakuwezesha **kuunganisha mtandao wako wa ndani na Mtandao wa Kijadi wa Azure (VNet)**, ikiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unafanywa kupitia **gateway ya VPN inayoshughulikia usimbuaji wa trafiki** kati ya mitandao miwili. +A **Site-to-Site VPN** in Azure huanzisha muunganisho salama na **wa kudumu kutoka kwenye mtandao wako wa on-premises kwenda kwenye Azure Virtual Network (VNet)**, ukiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unaanzishwa kupitia **VPN gateway ambayo inasimba trafiki** kati ya mitandao yote miwili. -**Mfano:** +**Example:** -Biashara yenye ofisi yake kuu iliyoko New York ina kituo cha data cha ndani ambacho kinahitaji kuunganishwa kwa usalama na VNet yake katika Azure, ambayo inahifadhi kazi zake za virtualized. Kwa kuweka VPN ya **Tovuti hadi Tovuti, kampuni inaweza kuhakikisha muunganisho wa usimbuaji kati ya seva za ndani na VMs za Azure**, ikiruhusu rasilimali kufikiwa kwa usalama katika mazingira yote mawili kana kwamba ziko kwenye mtandao mmoja wa ndani. +Shirika lenye ofisi kuu huko New York lina kituo cha data cha on-premises ambacho kinahitaji kuunganishwa kwa usalama na VNet yake katika Azure, kinachohifadhi mizigo ya kazi iliyofanyiwa virtual. Kwa kuanzisha **Site-to-Site VPN, kampuni inaweza kuhakikisha uunganishaji uliosimbwa kati ya server za on-premises na Azure VMs**, kuruhusu rasilimali kupatikana kwa usalama katika mazingira yote mawili kana kwamba ziko kwenye mtandao huo huo wa ndani. -### **Uhesabu** +### **Enumeration** {{#tabs }} {{#tab name="az cli" }} @@ -395,11 +471,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName ## Azure ExpressRoute -Azure ExpressRoute ni huduma inayotoa **kiunganishi cha kibinafsi, maalum, cha kasi ya juu kati ya miundombinu yako ya ndani na vituo vya data vya Azure**. Kiunganishi hiki kinapatikana kupitia mtoa huduma wa muunganisho, kinapita kwenye mtandao wa umma na kinatoa uaminifu zaidi, kasi za haraka, latencies za chini, na usalama wa juu kuliko viunganishi vya kawaida vya mtandao. +Azure ExpressRoute ni huduma inayotoa **muunganisho wa kibinafsi, wa kujitolea, wa kasi kubwa kati ya miundombinu yako ya ndani (on-premises) na vituo vya data vya Azure**. Muunganisho huu unafanywa kupitia mtoa huduma wa uunganishaji, ukiepuka intaneti ya umma na kutoa uaminifu zaidi, kasi kubwa zaidi, latency ndogo, na usalama wa juu zaidi ikilinganishwa na miunganisho ya kawaida ya intaneti. **Mfano:** -Kampuni ya kimataifa inahitaji **kiunganishi thabiti na cha kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput ya juu. Kampuni inachagua Azure ExpressRoute kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamasishaji wa data kwa kiwango kikubwa, kama vile nakala za kila siku na uchambuzi wa data wa wakati halisi, kwa faragha na kasi iliyoongezeka. +Shirika la kimataifa linahitaji **muunganisho thabiti na wa kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput kubwa. Kampuni inachagua Azure ExpressRoute kuunganisha moja kwa moja kituo chake cha data chenye miundombinu ya ndani (on-premises) na Azure, kuwezesha uhamishaji mkubwa wa data, kama vile chelezo za kila siku na uchambuzi wa data kwa wakati halisi, kwa faragha na kasi iliyoboreshwa. ### **Enumeration** @@ -418,4 +494,10 @@ Get-AzExpressRouteCircuit {{#endtab }} {{#endtabs }} +## Marejeo + +- [DNS OverDoS: Are Private Endpoints Too Private?](https://unit42.paloaltonetworks.com/dos-attacks-and-azure-private-endpoint/) +- [Azure Private Endpoint DNS configuration](https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns) +- [Private DNS fallback to internet](https://learn.microsoft.com/en-us/azure/dns/private-dns-fallback) + {{#include ../../../../banners/hacktricks-training.md}}