Network Namespace
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Простір мережі — це функція ядра Linux, яка забезпечує ізоляцію мережевого стеку, дозволяючи кожному простору мережі мати свою власну незалежну мережеву конфігурацію, інтерфейси, IP-адреси, таблиці маршрутизації та правила брандмауера. Ця ізоляція корисна в різних сценаріях, таких як контейнеризація, де кожен контейнер повинен мати свою власну мережеву конфігурацію, незалежну від інших контейнерів і хост-системи.
Коли створюється новий простір мережі, він починається з повністю ізольованого мережевого стеку, з жодними мережевими інтерфейсами, крім інтерфейсу циклічного з'єднання (lo). Це означає, що процеси, що виконуються в новому просторі мережі, не можуть за замовчуванням спілкуватися з процесами в інших просторах або з хост-системою.
Віртуальні мережеві інтерфейси, такі як пари veth, можуть бути створені та переміщені між просторами мережі. Це дозволяє встановлювати мережеву зв'язність між просторами або між простором і хост-системою. Наприклад, один кінець пари veth може бути розміщений у просторі мережі контейнера, а інший кінець може бути підключений до мосту або іншого мережевого інтерфейсу в просторі хоста, забезпечуючи мережеву зв'язність для контейнера.
Мережеві інтерфейси в межах простору можуть мати свої власні IP-адреси, таблиці маршрутизації та правила брандмауера, незалежні від інших просторів. Це дозволяє процесам в різних просторах мережі мати різні мережеві конфігурації та працювати так, ніби вони виконуються на окремих мережевих системах.
Процеси можуть переміщатися між просторами, використовуючи системний виклик setns()
, або створювати нові простори, використовуючи системні виклики unshare()
або clone()
з прапором CLONE_NEWNET
. Коли процес переміщується в новий простір або створює його, він почне використовувати мережеву конфігурацію та інтерфейси, пов'язані з цим простором.
При монтуванні нового екземпляра файлової системи /proc
, якщо ви використовуєте параметр --mount-proc
, ви забезпечуєте, що новий простір монтування має точний та ізольований вигляд інформації про процеси, специфічної для цього простору.
Також ви можете входити в інший просторовий простір процесів лише якщо ви є root. І ви не можете входити в інший просторовий простір без дескриптора, що вказує на нього (наприклад, /proc/self/ns/net
).
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)