Az - Azure Network

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Sieci w ramach Azure funkcjonują jako integralna część jej platformy obliczeniowej w chmurze, umożliwiając połączenie i komunikację między różnymi usługami i zasobami Azure. Architektura sieci w Azure została zaprojektowana tak, aby była wysoce skalowalna, bezpieczna i dostosowalna.

W swoim rdzeniu Azure zapewnia wirtualną sieć (VNet), która umożliwia użytkownikom tworzenie izolowanych sieci w chmurze Azure. W ramach tych VNetów zasoby takie jak wirtualne maszyny, aplikacje i bazy danych mogą być bezpiecznie hostowane i zarządzane. Sieciowanie w Azure obsługuje zarówno komunikację wewnątrz chmury (między usługami Azure), jak i połączenie z sieciami zewnętrznymi i internetem.

Bezpieczeństwo jest istotnym aspektem sieciowania w Azure, z różnymi narzędziami i usługami dostępnymi do ochrony danych, zarządzania dostępem i zapewnienia zgodności. Te środki bezpieczeństwa obejmują firewalle, grupy zabezpieczeń sieciowych i możliwości szyfrowania, pozwalając na wysoki poziom kontroli nad ruchem i dostępem.

Ogólnie rzecz biorąc, możliwości sieciowe w Azure są zaprojektowane tak, aby oferować elastyczność, umożliwiając użytkownikom tworzenie środowiska sieciowego odpowiadającego ich konkretnym potrzebom aplikacyjnym i obciążeniowym, zachowując przy tym silny nacisk na bezpieczeństwo i niezawodność.

Wirtualna sieć (VNET) i podsieci

VNet w Azure jest w zasadzie reprezentacją twojej własnej sieci w chmurze. Jest to logiczna izolacja chmury Azure dedykowana twojej subskrypcji. VNet umożliwia tworzenie i zarządzanie wirtualnymi sieciami prywatnymi (VPN) w Azure i może być używany do hostowania i zarządzania wieloma rodzajami zasobów Azure, takimi jak Wirtualne Maszyny (VM), bazy danych i usługi aplikacyjne.

VNety zapewniają ci pełną kontrolę nad ustawieniami sieci, w tym zakresami adresów IP, tworzeniem podsieci, tabelami trasowania i bramami sieciowymi.

Podsieć to zakres adresów IP w twoim VNet. Możesz podzielić VNet na wiele podsieci dla celów organizacyjnych i bezpieczeństwa. Każda podsieć w VNet może być używana do izolowania i grupowania zasobów zgodnie z twoją architekturą sieciową i aplikacyjną.

Ponadto podsieci pozwalają na segmentację twojego VNetu na jedną lub więcej podsieci, zapewniając zakres adresów IP, którymi zasoby mogą korzystać.

Przykład

  • Załóżmy, że masz VNet o nazwie MyVNet z zakresem adresów IP 10.0.0.0/16. Możesz utworzyć podsieć w ramach tego VNetu, powiedzmy Subnet-1, z zakresem adresów IP 10.0.0.0/24 do hostowania serwerów WWW. Inna podsieć, Subnet-2 o zakresie 10.0.1.0/24, mogłaby być używana do serwerów baz danych. Ta segmentacja pozwala na efektywne zarządzanie i kontrole bezpieczeństwa w sieci.

Wyliczenie

Aby wyświetlić wszystkie VNety i podsieci w koncie Azure, można użyć interfejsu wiersza poleceń Azure (CLI). Oto kroki:

# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

Grupy zabezpieczeń sieciowych (NSG)

W Azure Network Security Group (NSG) pełni główną funkcję filtrowania ruchu sieciowego zarówno do, jak i z zasobów Azure w ramach wirtualnej sieci Azure (VNet). Zawiera zestaw reguł bezpieczeństwa, które skrupulatnie określają przepływ ruchu sieciowego.

Kluczowe aspekty NSG obejmują:

  • Kontrola ruchu: Każda NSG zawiera reguły, które są instrumentalne w zezwalaniu lub blokowaniu ruchu sieciowego przychodzącego i wychodzącego z różnych zasobów Azure.

  • Składniki reguł: Reguły w ramach NSG są bardzo konkretne, filtrowanie ruchu na podstawie kryteriów takich jak adres IP źródłowy/docelowy, port i protokół. Ta specyfikacja pozwala na szczegółowe zarządzanie ruchem sieciowym.

  • Wzmocnienie bezpieczeństwa: Zapewniając, że tylko autoryzowany ruch może wchodzić i wychodzić z zasobów Azure, NSG odgrywają kluczową rolę w umacnianiu postawy bezpieczeństwa infrastruktury sieciowej.

Przykład

  • Wyobraź sobie, że masz NSG o nazwie MyNSG zastosowaną do podsieci lub określonej maszyny wirtualnej w Twojej VNet. Możesz tworzyć reguły takie jak:

  • Reguła przychodząca zezwalająca na ruch HTTP (port 80) z dowolnego źródła do serwerów internetowych.

  • Reguła wychodząca zezwalająca tylko na ruch SQL (port 1433) do określonego zakresu adresów IP docelowych.

Wyliczenie

# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

Różnice między punktami końcowymi usługi a prywatnymi łączami

Microsoft zaleca korzystanie z Prywatnych Linków w dokumentacji:\

Punkty końcowe usługi:

  • Ruch z Twojego VNet do usługi Azure przemieszcza się po sieci rdzenia Microsoft Azure, omijając publiczny internet.

  • Punkt końcowy to bezpośrednie połączenie z usługą Azure i nie zapewnia prywatnego adresu IP dla usługi w obrębie VNet.

  • Usługa jest nadal dostępna poprzez swój publiczny punkt końcowy spoza Twojego VNet, chyba że skonfigurujesz zaporę usługi w celu zablokowania takiego ruchu.

  • Istnieje relacja jeden do jednego między podsiecią a usługą Azure.

  • Mniej kosztowne niż Prywatne Linki.

Prywatne Linki:

  • Prywatny Link mapuje usługi Azure do Twojego VNet za pośrednictwem prywatnego punktu końcowego, który jest interfejsem sieciowym z prywatnym adresem IP w Twoim VNet.

  • Usługa Azure jest dostępna za pomocą tego prywatnego adresu IP, co sprawia, że wydaje się być częścią Twojej sieci.

  • Usługi połączone za pomocą Prywatnego Linku mogą być dostępne tylko z Twojego VNet lub połączonych sieci; nie ma dostępu z publicznego internetu do usługi.

  • Umożliwia bezpieczne połączenie z usługami Azure lub Twoimi własnymi usługami hostowanymi w Azure, a także połączenie z usługami udostępnianymi przez innych.

  • Zapewnia bardziej szczegółową kontrolę dostępu za pomocą prywatnego punktu końcowego w Twoim VNet, w przeciwieństwie do szerszej kontroli dostępu na poziomie podsieci za pomocą punktów końcowych usługi.

Podsumowując, chociaż zarówno Punkty końcowe usługi, jak i Prywatne Linki zapewniają bezpieczne połączenie z usługami Azure, Prywatne Linki oferują wyższy poziom izolacji i bezpieczeństwa, zapewniając, że usługi są dostępne prywatnie bez ich wystawiania na publiczny internet. Punkty końcowe usługi z kolei są łatwiejsze do skonfigurowania w ogólnych przypadkach, gdy wymagane jest proste, bezpieczne dostęp do usług Azure bez konieczności posiadania prywatnego IP w VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door to skalowalne i bezpieczne wejście dla szybkiego dostarczania globalnych aplikacji internetowych. Łączy różne usługi, takie jak globalne rozdział obciążenia, przyspieszenie witryny, odbieranie SSL oraz zdolności zapory aplikacji internetowej (WAF) w jedną usługę. Azure Front Door zapewnia inteligentne kierowanie na podstawie najbliższej lokalizacji krawędziowej dla użytkownika, zapewniając optymalną wydajność i niezawodność. Dodatkowo oferuje kierowanie oparte na adresach URL, hosting wielu witryn, powiązanie sesji oraz bezpieczeństwo warstwy aplikacji.

Azure Front Door WAF został zaprojektowany, aby chronić aplikacje internetowe przed atakami internetowymi bez konieczności modyfikacji kodu backendowego. Obejmuje niestandardowe reguły i zarządzane zestawy reguł w celu ochrony przed zagrożeniami, takimi jak wstrzyknięcie SQL, ataki typu cross-site scripting i inne powszechne ataki.

Przykład

  • Wyobraź sobie, że masz globalnie rozproszoną aplikację z użytkownikami z całego świata. Możesz użyć Azure Front Door do kierowania żądań użytkowników do najbliższego regionalnego centrum danych, w którym hostowana jest Twoja aplikacja, zmniejszając w ten sposób opóźnienia, poprawiając doświadczenie użytkownika i chroniąc ją przed atakami internetowymi za pomocą zdolności WAF. Jeśli określony region doświadcza przestoju, Azure Front Door może automatycznie przekierować ruch do najlepszego dostępnego miejsca, zapewniając wysoką dostępność.

Wyliczenie

# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway i Azure Application Gateway WAF

Azure Application Gateway to bilans obciążenia ruchem sieciowym umożliwiający zarządzanie ruchem do Twoich aplikacji internetowych. Oferuje bilansowanie obciążenia warstwy 7, zakończenie SSL oraz zdolności zapory aplikacji internetowej (WAF) w kontrolerze dostarczania aplikacji (ADC) jako usługa. Kluczowe funkcje obejmują trasowanie oparte na adresie URL, powiązanie sesji oparte na plikach cookie oraz odbieranie warstwy bezpiecznych gniazd (SSL), które są kluczowe dla aplikacji wymagających złożonych zdolności bilansowania obciążenia, takich jak globalne trasowanie i trasowanie oparte na ścieżce.

Przykład

  • Rozważ scenariusz, w którym masz stronę internetową e-commerce, która obejmuje wiele subdomen dla różnych funkcji, takich jak konta użytkowników i przetwarzanie płatności. Azure Application Gateway może kierować ruch do odpowiednich serwerów internetowych na podstawie ścieżki URL. Na przykład ruch do example.com/accounts może być kierowany do usługi kont użytkowników, a ruch do example.com/pay może być kierowany do usługi przetwarzania płatności. I chronić Twoją stronę internetową przed atakami, korzystając z możliwości WAF.

Wyliczanie

# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peering to funkcja sieciowa w Azure, która pozwala na bezpośrednie i płynne połączenie różnych wirtualnych sieci (VNets). Dzięki VNet peering, zasoby w jednej VNet mogą komunikować się z zasobami w innej VNet, korzystając z prywatnych adresów IP, tak jakby były w tej samej sieci. VNet Peering można również używać z sieciami lokalnymi poprzez skonfigurowanie VPN typu site-to-site lub Azure ExpressRoute.

Azure Hub and Spoke to topologia sieciowa używana w Azure do zarządzania i organizowania ruchu sieciowego. "Hub" to centralny punkt kontrolujący i kierujący ruchem między różnymi "spokes". Hub zazwyczaj zawiera współdzielone usługi, takie jak wirtualne urządzenia sieciowe (NVAs), brama VPN Azure, zapora Azure lub Bastion Azure. "Spokes" to VNets, które hostują obciążenia robocze i łączą się z hubem za pomocą VNet peering, pozwalając im korzystać z współdzielonych usług wewnątrz huba. Ten model promuje czytelną strukturę sieci, redukując złożoność poprzez scentralizowanie wspólnych usług, z których mogą korzystać różne obciążenia robocze w różnych VNets.

VNET pairing nie jest przechodni w Azure, co oznacza, że jeśli spoke 1 jest połączony z spoke 2, a spoke 2 jest połączony z spoke 3, to spoke 1 nie może bezpośrednio rozmawiać z spoke 3.

Przykłady

  • Wyobraź sobie firmę z oddzielnymi działami, takimi jak Sprzedaż, HR i Rozwój, każdy z własną VNet (spokes). Te VNety potrzebują dostępu do współdzielonych zasobów, takich jak centralna baza danych, zapora sieciowa i brama internetowa, które znajdują się w innym VNet (hub). Korzystając z modelu Hub and Spoke, każdy dział może bezpiecznie łączyć się z współdzielonymi zasobami poprzez hub VNet, bez ujawniania tych zasobów publicznemu internetowi ani tworzenia złożonej struktury sieci z liczbnymi połączeniami.

Wyliczenie

# 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 <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

VPN typu Site-to-Site

VPN typu Site-to-Site w Azure pozwala na połączenie sieci lokalnej z siecią wirtualną Azure (VNet), umożliwiając zasobom takim jak maszyny wirtualne w Azure wydawać się, że znajdują się w sieci lokalnej. Połączenie to jest nawiązywane za pomocą bramy VPN, która szyfruje ruch między dwiema sieciami.

Przykład

  • Firma z główną siedzibą w Nowym Jorku posiada centrum danych on-premises, które musi bezpiecznie połączyć się z VNet w Azure, gdzie znajdują się jej wirtualne obciążenia. Konfigurując VPN typu Site-to-Site, firma może zapewnić zaszyfrowane połączenie między serwerami on-premises a maszynami wirtualnymi w Azure, umożliwiając bezpieczny dostęp do zasobów w obu środowiskach, jak gdyby były w tej samej sieci lokalnej.

Wyliczanie

# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRoute to usługa, która zapewnia prywatne, dedykowane, wysokoprzepustowe połączenie między infrastrukturą lokalną a centrami danych Azure. Połączenie to jest realizowane za pośrednictwem dostawcy łączności, omijając publiczny internet i oferując większą niezawodność, szybsze prędkości, niższe opóźnienia i wyższe bezpieczeństwo niż typowe połączenia internetowe.

Przykład

  • Międzynarodowa korporacja wymaga stałego i niezawodnego połączenia do swoich usług Azure ze względu na duży wolumen danych i potrzebę wysokiej przepustowości. Firma decyduje się na usługę Azure ExpressRoute, aby bezpośrednio połączyć swój lokalny centrum danych z Azure, ułatwiając transfer dużej ilości danych, takich jak codzienne kopie zapasowe i analiza danych w czasie rzeczywistym, z zwiększoną prywatnością i szybkością.

Wyliczanie

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated