AWS - VPC & Networking Basic Information
Reading time: 12 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
AWS Networking in a Nutshell
VPC містить CIDR мережі як 10.0.0.0/16 (з його таблицею маршрутизації та мережевим ACL).
Ця мережа VPC поділяється на підмережі, тому підмережа безпосередньо пов'язана з VPC, таблицею маршрутизації та мережевим ACL.
Потім мережеві інтерфейси, підключені до сервісів (як EC2 екземпляри), підключені до підмереж з групами безпеки.
Отже, група безпеки обмежить відкриті порти мережевих інтерфейсів, що її використовують, незалежно від підмережі. А мережевий ACL обмежить відкриті порти для всіх мереж.
Більше того, для доступу до Інтернету є кілька цікавих конфігурацій, які слід перевірити:
- Підмережа може автоматично призначати публічні IPv4 адреси
- Екземпляр, створений у мережі, що автоматично призначає IPv4 адреси, може отримати одну
- Шлюз Інтернету потрібно підключити до VPC
- Ви також можете використовувати Шлюзи Інтернету тільки для виходу
- Ви також можете мати NAT шлюз у приватній підмережі, щоб мати можливість підключатися до зовнішніх сервісів з цієї приватної підмережі, але неможливо досягти їх ззовні.
- NAT шлюз може бути публічним (доступ до Інтернету) або приватним (доступ до інших VPC)
VPC
Amazon Віртуальна Приватна Хмара (Amazon VPC) дозволяє вам запускати ресурси AWS у віртуальній мережі, яку ви визначили. Ця віртуальна мережа матиме кілька підмереж, шлюзи Інтернету для доступу до Інтернету, ACL, групи безпеки, IP...
Підмережі
Підмережі допомагають забезпечити вищий рівень безпеки. Логічна група подібних ресурсів також допомагає вам підтримувати зручність управління у вашій інфраструктурі.
- Дійсні CIDR від /16 до /28.
- Підмережа не може бути в різних зонах доступності одночасно.
- AWS резервує перші три IP адреси хостів кожної підмережі для внутрішнього використання AWS: перша адреса хоста використовується для маршрутизатора VPC. Друга адреса зарезервована для AWS DNS, а третя адреса зарезервована для майбутнього використання.
- Підмережі, які мають прямий доступ до Інтернету, називаються публічними підмережами, тоді як приватні підмережі - ні.
Таблиці маршрутизації
Таблиці маршрутизації визначають маршрутизацію трафіку для підмережі в VPC. Вони визначають, який мережевий трафік пересилається в Інтернет або до VPN з'єднання. Ви зазвичай знайдете доступ до:
- Локального VPC
- NAT
- Шлюзів Інтернету / Шлюзів Інтернету тільки для виходу (необхідні для надання VPC доступу до Інтернету).
- Щоб зробити підмережу публічною, вам потрібно створити та підключити шлюз Інтернету до вашого VPC.
- Точки доступу VPC (для доступу до S3 з приватних мереж)
На наступних зображеннях ви можете перевірити різницю між типовою публічною мережею та приватною:
ACL
Списки контролю доступу до мережі (ACL): Мережеві ACL - це правила брандмауера, які контролюють вхідний та вихідний мережевий трафік до підмережі. Вони можуть використовуватися для дозволу або заборони трафіку до конкретних IP адрес або діапазонів.
- Найчастіше доступ дозволяється/забороняється за допомогою груп безпеки, але це єдиний спосіб повністю відключити встановлені зворотні оболонки. Змінене правило в групах безпеки не зупиняє вже встановлені з'єднання.
- Однак це стосується всієї підмережі, будьте обережні, забороняючи речі, оскільки необхідна функціональність може бути порушена.
Групи безпеки
Групи безпеки - це віртуальний брандмауер, який контролює вхідний та вихідний мережевий трафік до екземплярів у VPC. Відношення 1 SG до M екземплярів (зазвичай 1 до 1).
Зазвичай це використовується для відкриття небезпечних портів в екземплярах, таких як порт 22, наприклад:
Еластичні IP адреси
Еластична IP адреса - це статична IPv4 адреса, призначена для динамічного хмарного обчислення. Еластична IP адреса виділяється вашому обліковому запису AWS і залишається за вами, поки ви її не звільните. Використовуючи еластичну IP адресу, ви можете маскувати збій екземпляра або програмного забезпечення, швидко перенаправляючи адресу на інший екземпляр у вашому обліковому записі.
З'єднання між підмережами
За замовчуванням усі підмережі мають автоматичне призначення публічних IP адрес вимкнене, але його можна увімкнути.
Локальний маршрут у таблиці маршрутизації дозволяє зв'язок між підмережами VPC.
Якщо ви з'єднуєте підмережу з іншою підмережею, ви не можете отримати доступ до підмереж, підключених до іншої підмережі, вам потрібно створити з'єднання з ними безпосередньо. Це також стосується шлюзів Інтернету. Ви не можете пройти через з'єднання підмережі, щоб отримати доступ до Інтернету, вам потрібно призначити шлюз Інтернету своїй підмережі.
Пірінг VPC
Пірінг VPC дозволяє вам з'єднувати дві або більше VPC разом, використовуючи IPV4 або IPV6, так, ніби вони є частиною однієї мережі.
Якщо з'єднання пірінгу встановлено, ресурси в одній VPC можуть отримувати доступ до ресурсів в іншій. З'єднання між VPC реалізується через існуючу інфраструктуру мережі AWS, тому воно має високу доступність без вузьких місць у пропускній здатності. Оскільки з'єднання пірінгу працюють так, ніби вони є частиною однієї мережі, існують обмеження щодо діапазонів ваших CIDR, які можуть бути використані.
Якщо у вас є перекриваючі або дубльовані CIDR діапазони для вашого VPC, то ви не зможете з'єднати VPC разом.
Кожен AWS VPC спілкуватиметься лише зі своїм піром. Наприклад, якщо у вас є з'єднання пірінгу між VPC 1 і VPC 2, і ще одне з'єднання між VPC 2 і VPC 3, як показано, тоді VPC 1 і 2 можуть спілкуватися один з одним безпосередньо, як і VPC 2 і VPC 3, однак VPC 1 і VPC 3 не можуть. Ви не можете маршрутизувати через один VPC, щоб дістатися до іншого.
Журнали потоку VPC
У вашому VPC ви можете мати потенційно сотні або навіть тисячі ресурсів, які спілкуються між різними підмережами, як публічними, так і приватними, а також між різними VPC через з'єднання пірінгу VPC. Журнали потоку VPC дозволяють вам захоплювати інформацію про IP трафік, що проходить між мережевими інтерфейсами ваших ресурсів у вашому VPC.
На відміну від журналів доступу S3 та журналів доступу CloudFront, дані журналів, згенеровані журналами потоку VPC, не зберігаються в S3. Натомість дані журналів, що захоплюються, надсилаються до журналів CloudWatch.
Обмеження:
- Якщо ви використовуєте з'єднання пірінгу VPC, ви зможете бачити лише журнали потоку пірінгових VPC, які знаходяться в одному обліковому записі.
- Якщо ви все ще використовуєте ресурси в середовищі EC2-Classic, на жаль, ви не зможете отримати інформацію з їх інтерфейсів.
- Як тільки журнал потоку VPC створено, його не можна змінити. Щоб змінити конфігурацію журналу потоку VPC, вам потрібно видалити його, а потім створити новий.
- Наступний трафік не контролюється та не захоплюється журналами. DHCP трафік у VPC, трафік від екземплярів, призначений для сервера DNS Amazon.
- Будь-який трафік, призначений для IP адреси маршрутизатора за замовчуванням VPC, та трафік до і з наступних адрес, 169.254.169.254, який використовується для збору метаданих екземпляра, та 169.254.169.123, який використовується для служби синхронізації часу Amazon.
- Трафік, пов'язаний з ліцензією активації Windows Amazon з Windows екземпляра.
- Трафік між інтерфейсом навантажувального балансувальника мережі та інтерфейсом мережевої точки доступу.
Для кожного мережевого інтерфейсу, який публікує дані в групу журналів CloudWatch, буде використовуватися різний потік журналу. І в кожному з цих потоків будуть дані подій журналу потоку, які показують вміст записів журналу. Кожен з цих журналів захоплює дані протягом приблизно 10-15 хвилин.
VPN
Основні компоненти AWS VPN
- Шлюз клієнта:
- Шлюз клієнта - це ресурс, який ви створюєте в AWS, щоб представляти вашу сторону з'єднання VPN.
- Це, по суті, фізичний пристрій або програмне забезпечення на вашій стороні з'єднання Site-to-Site VPN.
- Ви надаєте інформацію про маршрутизацію та публічну IP адресу вашого мережевого пристрою (такого як маршрутизатор або брандмауер) AWS для створення шлюзу клієнта.
- Він слугує точкою посилання для налаштування з'єднання VPN і не несе додаткових витрат.
- Віртуальний приватний шлюз:
- Віртуальний приватний шлюз (VPG) - це концентратор VPN на стороні Amazon з'єднання Site-to-Site VPN.
- Він підключений до вашого VPC і слугує ціллю для вашого з'єднання VPN.
- VPG - це кінцева точка AWS для з'єднання VPN.
- Він обробляє безпечну комунікацію між вашим VPC та вашою локальною мережею.
- З'єднання Site-to-Site VPN:
- З'єднання Site-to-Site VPN з'єднує вашу локальну мережу з VPC через безпечний IPsec VPN тунель.
- Цей тип з'єднання вимагає шлюз клієнта та віртуальний приватний шлюз.
- Використовується для безпечної, стабільної та постійної комунікації між вашим центром обробки даних або мережею та вашим середовищем AWS.
- Зазвичай використовується для регулярних, довгострокових з'єднань і оплачується на основі обсягу даних, переданих через з'єднання.
- Кінцева точка клієнтського VPN:
- Кінцева точка клієнтського VPN - це ресурс, який ви створюєте в AWS для активації та управління сесіями клієнтського VPN.
- Використовується для дозволу окремим пристроям (таким як ноутбуки, смартфони тощо) безпечно підключатися до ресурсів AWS або вашої локальної мережі.
- Вона відрізняється від Site-to-Site VPN тим, що призначена для окремих клієнтів, а не для з'єднання цілих мереж.
- З клієнтським VPN кожен клієнтський пристрій використовує програмне забезпечення клієнта VPN для встановлення безпечного з'єднання.
Site-to-Site VPN
Підключіть вашу локальну мережу до вашого VPC.
- З'єднання VPN: Безпечне з'єднання між вашим обладнанням на місці та вашими VPC.
- Тунель VPN: Зашифрований зв'язок, через який дані можуть проходити з мережі клієнта до AWS або з AWS.
Кожне з'єднання VPN включає два тунелі VPN, які ви можете одночасно використовувати для високої доступності.
- Шлюз клієнта: Ресурс AWS, який надає інформацію AWS про ваш пристрій шлюзу клієнта.
- Пристрій шлюзу клієнта: Фізичний пристрій або програмне забезпечення на вашій стороні з'єднання Site-to-Site VPN.
- Віртуальний приватний шлюз: Концентратор VPN на стороні Amazon з'єднання Site-to-Site VPN. Ви використовуєте віртуальний приватний шлюз або транзитний шлюз як шлюз для сторони Amazon з'єднання Site-to-Site VPN.
- Транзитний шлюз: Транзитний хаб, який можна використовувати для з'єднання ваших VPC та локальних мереж. Ви використовуєте транзитний шлюз або віртуальний приватний шлюз як шлюз для сторони Amazon з'єднання Site-to-Site VPN.
Обмеження
- Трафік IPv6 не підтримується для з'єднань VPN на віртуальному приватному шлюзі.
- З'єднання AWS VPN не підтримує виявлення MTU шляху.
Крім того, врахуйте наступне, коли ви використовуєте Site-to-Site VPN.
- При підключенні ваших VPC до спільної локальної мережі ми рекомендуємо використовувати неперекриваючі CIDR блоки для ваших мереж.
Клієнтський VPN
Підключіться з вашого пристрою до вашого VPC
Концепції
- Кінцева точка клієнтського VPN: Ресурс, який ви створюєте та налаштовуєте для активації та управління сесіями клієнтського VPN. Це ресурс, де завершуються всі сесії клієнтського VPN.
- Цільова мережа: Цільова мережа - це мережа, яку ви асоціюєте з кінцевою точкою клієнтського VPN. Підмережа з VPC є цільовою мережею. Асоціювання підмережі з кінцевою точкою клієнтського VPN дозволяє вам встановлювати сесії VPN. Ви можете асоціювати кілька підмереж з кінцевою точкою клієнтського VPN для високої доступності. Усі підмережі повинні бути з одного VPC. Кожна підмережа повинна належати до різної зони доступності.
- Маршрут: Кожна кінцева точка клієнтського VPN має таблицю маршрутів, яка описує доступні маршрути мережі призначення. Кожен маршрут у таблиці маршрутів вказує шлях для трафіку до конкретних ресурсів або мереж.
- Правила авторизації: Правило авторизації обмежує користувачів, які можуть отримати доступ до мережі. Для вказаної мережі ви налаштовуєте групу Active Directory або постачальника ідентичності (IdP), якій дозволено доступ. Тільки користувачі, що належать до цієї групи, можуть отримати доступ до вказаної мережі. За замовчуванням немає правил авторизації, і ви повинні налаштувати правила авторизації, щоб дозволити користувачам отримувати доступ до ресурсів і мереж.
- Клієнт: Кінцевий користувач, який підключається до кінцевої точки клієнтського VPN для встановлення сесії VPN. Кінцеві користувачі повинні завантажити клієнт OpenVPN і використовувати файл конфігурації клієнтського VPN, який ви створили, для встановлення сесії VPN.
- Діапазон CIDR клієнта: Діапазон IP адрес, з якого призначаються IP адреси клієнтів. Кожне з'єднання з кінцевою точкою клієнтського VPN отримує унікальну IP адресу з діапазону CIDR клієнта. Ви вибираєте діапазон CIDR клієнта, наприклад,
10.2.0.0/16
. - Порти клієнтського VPN: AWS Client VPN підтримує порти 443 і 1194 для TCP та UDP. За замовчуванням використовується порт 443.
- Мережеві інтерфейси клієнтського VPN: Коли ви асоціюєте підмережу з вашою кінцевою точкою клієнтського VPN, ми створюємо мережеві інтерфейси клієнтського VPN у цій підмережі. Трафік, що надсилається до VPC з кінцевої точки клієнтського VPN, надсилається через мережевий інтерфейс клієнтського VPN. Потім застосовується трансляція адреси джерела мережі (SNAT), де IP адреса джерела з діапазону CIDR клієнта транслюється на IP адресу мережевого інтерфейсу клієнтського VPN.
- Журнал з'єднань: Ви можете увімкнути журнал з'єднань для вашої кінцевої точки клієнтського VPN, щоб реєструвати події з'єднання. Ви можете використовувати цю інформацію для проведення судово-медичних експертиз, аналізу того, як використовується ваша кінцева точка клієнтського VPN, або для налагодження проблем з'єднання.
- Портал самообслуговування: Ви можете увімкнути портал самообслуговування для вашої кінцевої точки клієнтського VPN. Клієнти можуть увійти в веб-портал, використовуючи свої облікові дані, і завантажити останню версію файлу конфігурації кінцевої точки клієнтського VPN або останню версію клієнта, наданого AWS.
Обмеження
- Діапазони CIDR клієнта не можуть перекриватися з локальним CIDR VPC, в якому знаходиться асоційована підмережа, або будь-якими маршрутами, які вручну додані до таблиці маршрутів кінцевої точки клієнтського VPN.
- Діапазони CIDR клієнта повинні мати розмір блоку не менше /22 і не повинні перевищувати /12.
- Частина адрес у діапазоні CIDR клієнта використовується для підтримки моделі доступності кінцевої точки клієнтського VPN і не може бути призначена клієнтам. Тому ми рекомендуємо вам призначити блок CIDR, який містить удвічі більше IP адрес, ніж потрібно для забезпечення максимальної кількості одночасних з'єднань, які ви плануєте підтримувати на кінцевій точці клієнтського VPN.
- Діапазон CIDR клієнта не може бути змінений після створення кінцевої точки клієнтського VPN.
- Підмережі, асоційовані з кінцевою точкою клієнтського VPN, повинні бути в одному VPC.
- Ви не можете асоціювати кілька підмереж з однієї зони доступності з кінцевою точкою клієнтського VPN.
- Кінцева точка клієнтського VPN не підтримує асоціації підмереж у VPC з виділеним орендою.
- Клієнтський VPN підтримує тільки трафік IPv4.
- Клієнтський VPN не відповідає стандартам обробки інформації федерального рівня (FIPS).
- Якщо багатофакторна аутентифікація (MFA) вимкнена для вашої Active Directory, пароль користувача не може бути у наступному форматі.
SCRV1:<base64_encoded_string>:<base64_encoded_string>
- Портал самообслуговування не доступний для клієнтів, які аутентифікуються за допомогою взаємної аутентифікації.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.