Az - Azure Network

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

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

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

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

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

Віртуальна мережа (VNET) та Підмережі

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

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

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

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

Приклад

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

Енумерація

Для переліку всіх VNet та підмереж в обліковому записі 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

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

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

Відмінності між брандмауером Azure та NSG

  1. Обсяг:

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

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

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

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

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

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

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

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

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

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

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

Перелік

# 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 та користувацькі визначені маршрути (UDR)

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

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

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

Приклад

  • Припустимо, що ви розгорнули Віртуальний мережевий пристрій (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

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

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

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

Приклад

  • Припустимо сценарій, де у вас є Azure SQL Database, до якої ви хочете отримати безпечний доступ з вашої VNet. Зазвичай це може вимагати проходження через публічний інтернет. За допомогою Приватного з'єднку ви можете створити приватну кінцеву точку у вашій 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

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

Приклад

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

Перелік

# 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 рекомендує використовувати Приватні посилання в документації:\

Кінцеві точки служб:

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

  • Кінцева точка - це пряме підключення до служби Azure і не надає приватну IP-адресу для служби всередині VNet.

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

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

  • Дешевше, ніж Приватні посилання.

Приватні посилання:

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

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

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

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

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

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

Перелік

# 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-адрес, афінітет сесії на основі кукі та розгортання захищеного каналу звернення (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 і Spoke - це топологія мережі, яка використовується в Azure для управління та організації мережевого трафіку. "Центральна точка" контролює та маршрутизує трафік між різними "гілками". Зазвичай центральна точка містить спільні служби, такі як віртуальні мережеві пристрої (NVAs), шлюз VPN Azure, брандмауер Azure або бастион Azure. "Гілки" - це VNets, які містять навантаження та підключаються до центральної точки за допомогою VNet peering, що дозволяє їм використовувати спільні служби всередині центральної точки. Ця модель сприяє чистому мережевому макету, зменшуючи складність шляхом централізації загальних служб, які можуть використовувати кілька навантажень по різних VNets.

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

Приклади

  • Уявіть компанію з окремими відділами, такими як продажі, кадри та розробка, кожен з власною VNet (гілками). Ці VNets потребують доступу до спільних ресурсів, таких як центральна база даних, брандмауер та інтернет-шлюз, які розташовані в іншому VNet (центральна точка). Використовуючи модель Hub і 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

Сайт-до-сайту VPN

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

Приклад

  • Бізнес з головним офісом у Нью-Йорку має власний дата-центр, який потрібно безпечно підключити до своєї VNet в Azure, де розміщені віртуалізовані навантаження. Налаштувавши сайт-до-сайту 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
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated