Az - Azure Network

Support HackTricks

Basic Information

Мережі в Azure функціонують як невід'ємна частина його платформи хмарних обчислень, забезпечуючи з'єднання та комунікацію між різними службами та ресурсами Azure. Архітектура мережі в Azure розроблена для високої масштабованості, безпеки та налаштовуваності.

В основі Azure лежить віртуальна мережа (VNet), яка дозволяє користувачам створювати ізольовані мережі в хмарі Azure. У межах цих VNets ресурси, такі як віртуальні машини, програми та бази даних, можуть бути безпечно розміщені та керовані. Мережеве з'єднання в Azure підтримує як комунікацію всередині хмари (між службами Azure), так і з'єднання з зовнішніми мережами та Інтернетом.

Безпека є критично важливим аспектом мережі Azure, з різними інструментами та службами, доступними для захисту даних, управління доступом та забезпечення відповідності. Ці заходи безпеки включають брандмауери, групи безпеки мережі та можливості шифрування, що дозволяє досягти високого рівня контролю над трафіком та доступом.

В цілому, можливості мережі Azure розроблені для забезпечення гнучкості, дозволяючи користувачам створювати мережеве середовище, яке відповідає їхнім конкретним потребам у додатках та навантаженнях, зберігаючи при цьому сильний акцент на безпеці та надійності.

Virtual Network (VNET) & Subnets

VNet в Azure по суті є представленням вашої власної мережі в хмарі. Це логічна ізоляція хмари Azure, присвячена вашій підписці. VNet дозволяє вам надавати та керувати віртуальними приватними мережами (VPN) в Azure і може використовуватися для розміщення та управління кількома типами ресурсів Azure, такими як віртуальні машини (VM), бази даних та служби додатків.

VNets надають вам повний контроль над налаштуваннями вашої мережі, включаючи діапазони IP-адрес, створення підмереж, таблиці маршрутів та мережеві шлюзи.

Підмережа - це діапазон IP-адрес у вашій VNet. Ви можете розділити VNet на кілька підмереж для організації та безпеки. Кожна підмережа в VNet може використовуватися для ізоляції та групування ресурсів відповідно до вашої мережевої та додаткової архітектури.

Більше того, підмережі дозволяють вам сегментувати вашу VNet на одну або кілька підмереж, надаючи діапазон IP-адрес, які можуть використовувати ресурси.

Example

  • Припустимо, у вас є VNet з назвою MyVNet з діапазоном IP-адрес 10.0.0.0/16. Ви можете створити підмережу в межах цієї VNet, скажімо, Subnet-1, з діапазоном IP-адрес 10.0.0.0/24 для розміщення ваших веб-серверів. Інша підмережа, Subnet-2 з діапазоном 10.0.1.0/24, може використовуватися для ваших серверів бази даних. Це сегментування дозволяє ефективно управляти та контролювати безпеку в межах мережі.

Enumeration

Щоб перерахувати всі VNets та підмережі в обліковому записі Azure, ви можете використовувати інтерфейс командного рядка Azure (CLI). Ось кроки:

# 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

Групи безпеки мережі (NSG)

В Azure Група безпеки мережі (NSG) виконує основну функцію фільтрації мережевого трафіку як до, так і з ресурсів Azure в межах віртуальної мережі Azure (VNet). Вона містить набір правил безпеки, які ретельно визначають потік мережевого трафіку.

Ключові аспекти NSG включають:

  • Контроль трафіку: Кожна NSG містить правила, які є важливими для дозволу або блокування вхідного та вихідного мережевого трафіку, пов'язаного з різними ресурсами Azure.

  • Компоненти правил: Правила в NSG є дуже специфічними, фільтруючи трафік на основі критеріїв, таких як IP-адреса джерела/призначення, порт і протокол. Ця специфічність дозволяє здійснювати детальне управління мережевим трафіком.

  • Підвищення безпеки: Забезпечуючи, що лише авторизований трафік може входити або виходити з ваших ресурсів Azure, NSG відіграють важливу роль у зміцненні безпеки вашої мережевої інфраструктури.

Приклад

  • Уявіть, що у вас є NSG з назвою MyNSG, застосована до підмережі або конкретної віртуальної машини у вашій VNet. Ви можете створити такі правила:

  • Вхідне правило, що дозволяє HTTP-трафік (порт 80) з будь-якого джерела до ваших веб-серверів.

  • Вихідне правило, що дозволяє лише SQL-трафік (порт 1433) до конкретного діапазону IP-адрес призначення.

Перерахування

# 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

Azure Firewall

Azure Firewall - це керована, хмарна послуга безпеки мережі, яка захищає ваші ресурси Azure Virtual Network. Це повністю станова служба брандмауера з вбудованими функціями високої доступності та масштабованості.

Azure Firewall надає більш розширені функції, ніж NSG, включаючи фільтрацію на рівні додатків, фільтрацію на рівні мережі, фільтрацію на основі розвідки загроз та інтеграцію з Azure Monitor для ведення журналів та аналітики. Він може фільтрувати вихідний, вхідний, сполучний, VPN та ExpressRoute трафік. Правила брандмауера можуть бути створені на основі FQDN (повне доменне ім'я), IP-адрес та портів.

Відмінності між Azure Firewall та NSG

  1. Область застосування:

  • NSG: Працює на рівні підмережі або мережевого інтерфейсу. Призначений для забезпечення базової фільтрації вхідного та вихідного трафіку з мережевих інтерфейсів (NIC), ВМ або підмереж.

  • Azure Firewall: Працює на рівні VNet, забезпечуючи ширшу область захисту. Призначений для захисту ваших ресурсів віртуальної мережі та управління трафіком, що надходить і виходить з VNet.

  1. Можливості:

  • NSG: Надає базові можливості фільтрації на основі IP-адреси, порту та протоколу. Не підтримує розширені функції, такі як перевірка на рівні додатків або розвідка загроз.

  • Azure Firewall: Пропонує розширені функції, такі як фільтрація трафіку на рівні додатків (рівень 7), фільтрація на основі розвідки загроз, фільтрація мережевого трафіку та інше. Також підтримує кілька публічних IP-адрес.

  1. Сценарії використання:

  • NSG: Ідеально підходить для базової фільтрації трафіку на рівні мережі.

  • Azure Firewall: Підходить для більш складних сценаріїв фільтрації, де потрібен контроль на рівні додатків, ведення журналів та розвідка загроз.

  1. Управління та моніторинг:

  • NSG: Пропонує базове ведення журналів та інтеграцію з Azure Monitor.

  • Azure Firewall: Надає розширені можливості ведення журналів та аналітики через Azure Monitor, що є важливим для розуміння природи та патернів трафіку.

Enumeration

# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

Мережева віртуальна апаратура (NVA)

Мережева віртуальна апаратура (NVA) в Azure — це віртуальна апаратура, яка виконує мережеві функції в межах віртуальної мережі. NVA зазвичай використовуються для мережевих функцій, які не доступні нативно в Azure або коли потрібна більша кастомізація. Вони по суті є ВМ, які виконують мережеві програми або сервіси, такі як брандмауери, оптимізатори WAN або балансувальники навантаження.

NVA використовуються для складної маршрутизації, безпеки та управління мережевим трафіком. Їх можна розгорнути з Azure Marketplace, де багато сторонніх постачальників пропонують свої апарати, готові до інтеграції в середовища Azure.

Приклад

  • Організація може розгорнути NVA в Azure для створення кастомного рішення брандмауера. Ця NVA може запускати програмне забезпечення брандмауера третьої сторони, надаючи розширені функції, такі як виявлення вторгнень, перевірка пакетів або VPN-з'єднання. NVA можна налаштувати для перевірки та фільтрації трафіку, що проходить через неї, забезпечуючи підвищені заходи безпеки відповідно до політик організації.

Перерахування

# Usually NVAs are named or tagged in a way to distinguish them from other VMs
az vm list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# For a specific VM identified as an NVA, list its network interfaces
az vm nic list --vm-name <VMName> --resource-group <ResourceGroupName> --query "[].{id:id}" -o table

Azure Route Tables & User Defined Routes (UDR)

Azure Route Tables - це функція в Microsoft Azure, яка дозволяє контролювати маршрутизацію мережевого трафіку в Azure Virtual Networks (VNets). По суті, вони визначають, як пакети пересилаються між підмережами в VNets, між VNets або до зовнішніх мереж. Кожна таблиця маршрутів містить набір правил, відомих як маршрути, які вказують, як пакети повинні бути маршрутизовані на основі їх IP-адрес призначення.

User Defined Routes (UDR) в Azure - це кастомні маршрути, які ви створюєте в Azure Route Tables для контролю потоку мережевого трафіку в межах і між Azure Virtual Networks (VNets), а також до зовнішніх з'єднань. UDR надають вам гнучкість у напрямку мережевого трафіку відповідно до ваших специфічних вимог, переважаючи стандартні рішення маршрутизації Azure.

Ці маршрути особливо корисні для сценаріїв, коли вам потрібно маршрутизувати трафік через віртуальний пристрій, забезпечити конкретний шлях для безпеки або відповідності політикам, або інтегруватися з локальними мережами.

Приклад

  • Припустимо, ви розгорнули Network Virtual Appliance (NVA) для перевірки трафіку між підмережами в VNet. Ви можете створити UDR, який направляє весь трафік з однієї підмережі до іншої підмережі через NVA. Цей UDR забезпечує, що NVA перевіряє трафік з метою безпеки перед тим, як він досягне свого призначення.

Перерахування

# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List UDRs for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Link - це сервіс в Azure, який дозволяє приватний доступ до сервісів Azure, забезпечуючи, що трафік між вашою віртуальною мережею Azure (VNet) та сервісом повністю проходить через мережу Microsoft Azure. Це ефективно інтегрує сервіс у вашу VNet. Така конфігурація підвищує безпеку, не піддаючи дані публічному інтернету.

Private Link можна використовувати з різними сервісами Azure, такими як Azure Storage, Azure SQL Database та користувацькими сервісами, які діляться через Private Link. Це забезпечує безпечний спосіб споживання сервісів з вашої власної VNet або навіть з різних підписок Azure.

NSG не застосовуються до приватних кінцевих точок, що чітко означає, що асоціювання NSG з підмережею, яка містить Private Link, не матиме жодного ефекту.

Приклад

  • Розгляньте сценарій, коли у вас є Azure SQL Database, до якої ви хочете отримати безпечний доступ з вашої VNet. Зазвичай це може вимагати проходження через публічний інтернет. З Private Link ви можете створити приватну кінцеву точку у вашій VNet, яка безпосередньо підключається до сервісу Azure SQL Database. Ця кінцева точка робить базу даних такою, що вона виглядає як частина вашої власної VNet, доступна через приватну IP-адресу, що забезпечує безпечний і приватний доступ.

Перерахування

# List Private Link Services
z network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Azure Service Endpoints

Azure Service Endpoints розширюють приватний адресний простір вашої віртуальної мережі та ідентичність вашої VNet до сервісів Azure через пряме з'єднання. Увімкнувши кінцеві точки сервісу, ресурси у вашій VNet можуть безпечно підключатися до сервісів Azure, таких як Azure Storage та Azure SQL Database, використовуючи магістральну мережу Azure. Це забезпечує, що трафік з VNet до сервісу Azure залишається в межах мережі Azure, забезпечуючи більш безпечний і надійний шлях.

Example

  • Наприклад, обліковий запис Azure Storage за замовчуванням доступний через публічний інтернет. Увімкнувши кінцеву точку сервісу для Azure Storage у вашій VNet, ви можете забезпечити, що лише трафік з вашої VNet може отримати доступ до облікового запису зберігання. Брандмауер облікового запису зберігання можна налаштувати так, щоб він приймав трафік лише з вашої VNet.

Enumeration

# List Virtual Networks with Service Endpoints
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 <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

Microsoft рекомендує використовувати Private Links у документації:\

Service Endpoints:

  • Трафік з вашої VNet до служби Azure проходить через мережу Microsoft Azure, обходячи публічний інтернет.

  • Endpoint є прямим з'єднанням зі службою Azure і не надає приватну IP-адресу для служби в межах VNet.

  • Служба все ще доступна через свій публічний endpoint ззовні вашої VNet, якщо ви не налаштуєте брандмауер служби для блокування такого трафіку.

  • Це відносини один до одного між підмережею та службою Azure.

  • Менш витратні, ніж Private Links.

Private Links:

  • Private Link відображає служби Azure у вашій VNet через приватний endpoint, який є мережевим інтерфейсом з приватною IP-адресою в межах вашої VNet.

  • Служба Azure доступна за цією приватною IP-адресою, що робить її частиною вашої мережі.

  • Служби, підключені через Private Link, можуть бути доступні лише з вашої VNet або підключених мереж; немає доступу до служби з публічного інтернету.

  • Це забезпечує безпечне з'єднання зі службами Azure або вашими власними службами, розміщеними в Azure, а також з'єднання зі службами, якими діляться інші.

  • Це забезпечує більш детальний контроль доступу через приватний endpoint у вашій VNet, на відміну від більш широкого контролю доступу на рівні підмережі з service endpoints.

У підсумку, хоча як Service Endpoints, так і Private Links забезпечують безпечне з'єднання зі службами Azure, Private Links пропонують вищий рівень ізоляції та безпеки, забезпечуючи доступ до служб приватно без їх відкриття для публічного інтернету. Service Endpoints, з іншого боку, легші у налаштуванні для загальних випадків, коли потрібен простий, безпечний доступ до служб Azure без необхідності в приватній IP-адресі у VNet.

Azure Front Door (AFD) та AFD WAF

Azure Front Door є масштабованою та безпечною точкою входу для швидкої доставки ваших глобальних веб-додатків. Він поєднує різні служби, такі як глобальне балансування навантаження, прискорення сайтів, зняття навантаження SSL та можливості брандмауера веб-додатків (WAF) в одну службу. Azure Front Door забезпечує інтелектуальну маршрутизацію на основі найближчого краєвого місця до користувача, забезпечуючи оптимальну продуктивність та надійність. Крім того, він пропонує маршрутизацію на основі URL, хостинг кількох сайтів, афінність сесій та безпеку на рівні додатків.

Azure Front Door WAF призначений для захисту веб-додатків від атак з мережі без модифікації коду на бекенді. Він включає в себе користувацькі правила та керовані набори правил для захисту від загроз, таких як SQL-ін'єкції, міжсайтове скриптування та інші поширені атаки.

Приклад

  • Уявіть, що у вас є глобально розподілений додаток з користувачами по всьому світу. Ви можете використовувати Azure Front Door для маршрутизації запитів користувачів до найближчого регіонального дата-центру, що хостить ваш додаток, тим самим зменшуючи затримки, покращуючи досвід користувачів та захищаючи його від веб-атак за допомогою можливостей WAF. Якщо в певному регіоні виникають проблеми, Azure Front Door може автоматично перенаправити трафік до наступного найкращого місця, забезпечуючи високу доступність.

Enumeration

# 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 та Azure Application Gateway WAF

Azure Application Gateway - це балансувальник навантаження веб-трафіку, який дозволяє вам керувати трафіком до ваших веб додатків. Він пропонує балансування навантаження на рівні 7, завершення SSL та можливості веб-додатків брандмауера (WAF) у контролері доставки додатків (ADC) як послуга. Ключові функції включають маршрутизацію на основі URL, прив'язку сесій на основі cookie та зняття навантаження з безпечного сокета (SSL), які є критично важливими для додатків, що вимагають складних можливостей балансування навантаження, таких як глобальна маршрутизація та маршрутизація на основі шляху.

Приклад

  • Розгляньте сценарій, коли у вас є веб-сайт електронної комерції, який включає кілька піддоменів для різних функцій, таких як облікові записи користувачів та обробка платежів. Azure Application Gateway може маршрутизувати трафік до відповідних веб-серверів на основі URL-адреси. Наприклад, трафік до example.com/accounts може бути направлений до служби облікових записів користувачів, а трафік до example.com/pay може бути направлений до служби обробки платежів. І захистіть ваш веб-сайт від атак, використовуючи можливості WAF.

Перерахування

# 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 - це мережевий функціонал в Azure, який дозволяє різним Віртуальним Мережам (VNets) підключатися безпосередньо та безперешкодно. Завдяки VNet peering, ресурси в одній VNet можуть спілкуватися з ресурсами в іншій VNet, використовуючи приватні IP-адреси, ніби вони були в одній мережі. VNet Peering також може використовуватися з локальними мережами, налаштувавши VPN з сайту на сайт або Azure ExpressRoute.

Azure Hub and Spoke - це мережевий топологія, що використовується в Azure для управління та організації мережевого трафіку. "Хаб" - це центральна точка, яка контролює та маршрутизує трафік між різними "спицями". Хаб зазвичай містить спільні сервіси, такі як мережеві віртуальні пристрої (NVA), Azure VPN Gateway, Azure Firewall або Azure Bastion. "Спиці" - це VNets, які хостять навантаження та підключаються до хабу за допомогою VNet peering, що дозволяє їм використовувати спільні сервіси в межах хабу. Ця модель сприяє чистій мережевій структурі, зменшуючи складність шляхом централізації загальних сервісів, які можуть використовувати кілька навантажень через різні VNets.

VNET pairing є нетранзитивним в Azure, що означає, що якщо спиця 1 підключена до спиці 2, а спиця 2 підключена до спиці 3, то спиця 1 не може безпосередньо спілкуватися зі спицею 3.

Приклади

  • Уявіть компанію з окремими відділами, такими як Продажі, HR та Розробка, кожен з яких має свою власну VNet (спиці). Ці VNets потребують доступу до спільних ресурсів, таких як центральна база даних, брандмауер та шлюз до Інтернету, які всі розташовані в іншій VNet (хаб). Використовуючи модель Hub and Spoke, кожен відділ може надійно підключатися до спільних ресурсів через VNet хабу, не піддаючи ці ресурси публічному Інтернету або створюючи складну мережеву структуру з численними з'єднаннями.

Перерахування

# 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

Site-to-Site VPN

Site-to-Site VPN в Azure дозволяє вам підключити вашу локальну мережу до вашої Azure Virtual Network (VNet), що дозволяє ресурсам, таким як ВМ в Azure, з'являтися так, ніби вони знаходяться у вашій локальній мережі. Це з'єднання встановлюється через VPN-шлюз, який шифрує трафік між двома мережами.

Приклад

  • Бізнес з головним офісом, розташованим у Нью-Йорку, має локальний дата-центр, який потрібно безпечно підключити до свого VNet в Azure, що хостить його віртуалізовані навантаження. Налаштувавши Site-to-Site VPN, компанія може забезпечити зашифроване з'єднання між локальними серверами та Azure ВМ, що дозволяє безпечно отримувати доступ до ресурсів у обох середовищах, ніби вони знаходяться в одній локальній мережі.

Перерахування

# 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 - це сервіс, який забезпечує приватне, виділене, високошвидкісне з'єднання між вашою локальною інфраструктурою та центрами обробки даних Azure. Це з'єднання здійснюється через постачальника зв'язку, обходячи публічний інтернет і пропонуючи більшу надійність, швидші швидкості, нижчі затримки та вищу безпеку, ніж звичайні інтернет-з'єднання.

Приклад

  • Багатонаціональна корпорація потребує послідовного та надійного з'єднання з її сервісами Azure через великий обсяг даних та необхідність високої пропускної здатності. Компанія обирає Azure ExpressRoute для прямого з'єднання свого локального центру обробки даних з Azure, що полегшує великомасштабні передачі даних, такі як щоденні резервні копії та аналітика даних в реальному часі, з підвищеною конфіденційністю та швидкістю.

Перерахування

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Підтримайте HackTricks

Last updated