Віртуальні Wi-Fi інтерфейси для одночасного використання Wi-Fi адаптера в різних режимах

10 травня 2023 1 хвилина Автор: Lady Liberty

Віртуальний Wi-Fi

Віртуальний WiFi – це технологія, яка віртуалізує мережевий адаптер так само, як VMWare віртуалізує всю операційну систему. Після віртуалізації можна перетворити один фізичний бездротовий адаптер на два віртуальних. Це дозволяє з’єднати один віртуальний мережний адаптер із звичайною бездротовою мережею та використовувати інший віртуальний адаптер для підключення до іншої мережі, наприклад, тимчасової мережі або створення точки доступу WiFi, а також дозволити іншим бездротовим підключенням до комп’ютера як вони підключаються до звичайної точки бездротового доступу. Бездротове з’єднання з кожним днем ​​«набирає обертів» і стає все популярнішим. За рахунок своєї мобільності та відкритості незабаром wifi повністю витіснить свого «провідного побратима». У цій статті ми розглянемо dev и phy для команды iw.Iw — це нова утиліта командного рядка, що базується на nl80211, для бездротових пристроїв. Вона підтримує нові драйвери, які були додані в ядро ​​останнім часом.

Старий інструмент iwconfing, який використовує Wireless Extensions interface (інтерфейс бездротового розширення), є застарілим і рекомендується переключитися на iw і nl80211. Налаштування бездротового з’єднання відбувається у два етапи. На першому етапі необхідно визначити і встановити правильний драйвер мережного інтерфейсу (зазвичай драйвер знаходиться на настановному носії, але іноді його доводиться встановлювати вручну), після чого налаштувати. Другий етап полягає у виборі способу керування бездротовими з’єднаннями. Також Ви дізнаєтесь, як можно одночасно використовувати Wi-Fi адаптер в різних режимах, а ще як у iw додати AP інтерфейс. Тому ця стаття буде дуже корисна і дасть відповіді на деякі питання.

Що таке dev та phy для команди iw

Програма airmon-ng для бездротових адаптерів показує такі дані як PHY та Interface (Скріншот 1).

Скріншот 1. Дані програми airmon-ng.

Програма iw дозволяє керувати мережним адаптером звертаючись до нього або як до phy пристрою, або як до інтерфейсу dev (Скріншот 2).

Скріншот 2. Керування мережевим адаптором.

PHY (абревіатура від англ. Physical layer – фізичний рівень) – інтегральна схема, призначена для виконання функцій фізичного рівня мережевої моделі OSI. Мікросхеми PHY дозволяють іншим мікросхемам канального рівня, званим MAC, підключитися до фізичного середовища передачі, такої як оптичне волокно або мідний кабель. Тобто в Linux PHY – це номер, який пристрої присвоїв драйвер/фреймворк PHY для звернення до нього та налаштування на канальному рівні. Що стосується dev (ім’я пристрою, ім’я інтерфейсу), то це умовне ім’я присвоєне пристрою системою. Є різні схеми найменування, у різних дистрибутивах Linux мережні інтерфейси можуть називатися по-різному. За бажанням, ім’я мережного інтерфейсу можна змінити.

Здавалося б, та й що? Через phy можна керувати параметрами, значення яких без читання спеціальної технічної документації незрозуміло. Через ім’я інтерфейсу dev можна керувати більш звичними налаштуваннями (перевести в режим монітора, перейти на певний канал і так далі). Справа в тому, що для бездротових адаптерів мережевий інтерфейс це не просто ім’я, що ідентифікує пристрій. Інтерфейси бувають різних типів і для доступу до деяких можливостей бездротових адаптерів потрібно додавати інтерфейси. Більше того, один Wi-Fi адаптер може мати відразу кілька мережевих інтерфейсів, що виконують різні функції, наприклад, комбінація інтерфейсів у керованому режимі та в режимі монітора, або комбінація інтерфейсів у керованому режимі та в режимі точки доступу, при цьому бездротовий адаптер одночасно виконуватиме відразу дві функції! Причому різним інтерфейсам одного Wi-Fi адаптера можна надати різні MAC адреси.

Виконайте наступну команду для виведення повного списку можливостей всіх бездротових інтерфейсів iw list:

Пошукайте наступні рядки:

  • software interface modes (can always be added) — програмні режими інтерфейсів (завжди можуть бути додані)

  • valid interface combinations – можливі комбінації інтерфейсів

Приклад першого Wi-Fi адаптера:

Тобто замість того, щоб переводити інтерфейс з керованого режиму в режим монітора або запускати на ньому точку доступу, можна до наявного додати віртуальний інтерфейс в режимі monitor або в режимі AP. Також у даного бездротового адаптера може бути до двох мережевих інтерфейсів в режимах managed, P2P-client, до двох інтерфейсів AP, mesh point, P2P-GO, але в будь-якому випадку загальна кількість інтерфейсів не може бути більшою за два, при цьому у всіх у них має бути один канал (#channels <= 1).

Наступний приклад:

Знову ж таки можна додати інтерфейс у режимі монітора, інтерфейс у керованому режимі може бути лише один, всього може бути до трьох інтерфейсів і вони можуть використовувати до двох різних каналів (#channels <= 2). Також можна додати до чотирьох інтерфейсів AP. Іноді можна зробити аж до 8 інтерфейсів AP, але вони можуть використовувати один канал.

Додавання або видалення інтерфейсу в режимі монітора

Переважний спосіб отримати режим монітора – це перевести існуючий бездротовий інтерфейс з режиму managed в monitor:

В результаті Wi-Fi карта, поки вона перебуває в режимі монітора, втрачає здатність підключатися до точок доступу, тобто Інтернет-підключення відсутня. За допомогою додавання нового інтерфейсу цю проблему вдається вирішити. Додавання інтерфейсу в режимі монітора виконується так:

Як ІНТЕРФЕЙС вкажіть ім’я існуючого інтерфейсу, а як НОВИЙ_ІНТЕРФЕЙС можна вказати довільне ім’я.

За бажанням, ви можете призначити новому інтерфейсу довільну MAC-адресу:

Подивимося, які бездротові інтерфейси є у системі iw dev:

Бачимо, що Wi-Fi карта wlp0s20f0u1 підключена до мережі з ім’ям Jenechka (Скріншот 3).

Скріншот 3. Підключення до мережі.

Додамо до wlp0s20f0u1 інтерфейс з ім’ям wlanmon у режимі монітора та встановимо на ньому MAC-адресу:

Знову подивимося на наші інтерфейси iw dev:

Інтерфейс підключення.

Зауважте, що з’явився новий інтерфейс wlanmon. Запустимо airodump-ng використовуючи щойно створений віртуальний інтерфейс:

А в іншому вікні запустимо пінг, щоб переконатися, що підключення до мережі, як і раніше, доступне (Скріншот 5):

Зверніть увагу, що незважаючи на те, що Wi-Fi адаптеру потрібно перебувати на одному каналі для зв’язку з ТД, проте, при цьому інтерфейс у режимі монітора перемикається каналами.

Скріншот 5. Запускаємо пінг.

Причому вже після зупинки запису екрану airodump-ng навіть зуміла зловити рукостискання (Скріншот 6). Я не помітив, щоб віртуальний інтерфейс у режимі монітора, якщо він використовується для захоплення даних, заважав Інтернет-підключенню. Але якщо спробувати з нього щось відправити (наприклад, для деаутентифікації бездротових клієнтів), то Інтернет-з’єднання розривається. Швидше за все, це пов’язано зі зміною каналу, що використовується.

Скріншот 6. WPA Handshake.

Щоб видалити віртуальний інтерфейс, використовуйте команду:

Наприклад:

Типи віртуальних інтерфейсів

Приклад команди, в якій вказували ім’я мережного інтерфейсу:

Також можна додати віртуальний інтерфейс на ім’я PHY:

Це може бути корисним, якщо ви видалили всі наявні інтерфейси (якщо таке можливо). Доступні типи інтерфейсів:

  • managed

  • ibss

  • monitor

  • mesh

  • wds

Прапори використовуються тільки для monitor інтерфейсів, валідні прапори:

mesh_id використовується лише для режиму mesh. У списку валідних типів інтерфейсів немає AP. Цей інтерфейс типу AP буде створено автоматично під час створення точки доступу.

Використання:

Наприклад, на інтерфейсі wlo1 я хочу створити ТД з ім’ям HackWare та паролем 12345678, як джерело Інтернету повинен використовуватися інтерфейс wlp0s20f0u1 (Скріншот 7), тоді команда наступна:

Скріншот 7. Інтерфейс wlo.

Я можу підключитися до цієї ТД та користуватися Інтернетом (Скріншот 8):

Скріншот 8. Підключення до Wi-Fi

На комп’ютері було створено новий інтерфейс типу AP з ім’ям ap0 (Скріншот 9):

Скріншот 9. Інтерфейс типу АР.

Використання однієї Wi-Fi карти як клієнта та як точки доступу

Показаний вище спосіб має на увазі, що у вас два мережеві інтерфейси – причому обов’язково один з них повинен бути Wi-Fi адаптером, а другий може бути як Wi-Fi адаптером, так і дротовим з’єднанням. Припустимо, що у мене немає проводового з’єднання і є лише один адаптер, чи можна одну Wi-Fi карту одночасно використовувати для підключення до точки доступу і як точку доступу? Так можна. Один мережевий інтерфейс може одночасно працювати як клієнт і як ТД, тобто виконувати роль підсилювача сигналу (бездротовий повторювач). Почнемо з того, що зупинимо NetworkManager, інакше в моєму випадку у мене постійно виникала помилка RTNETLINK answers: Device or resource busy:

Якщо у вас NetworkManager прибраний з автозавантаження, почати потрібно з активації бездротового інтерфейсу:

Тепер нам потрібно створити два віртуальні інтерфейси в режимі managed з різними MAC-адресами (Скріншот 10):

Один із цих інтерфейсів буде виконувати роль станції, а інший роль ТД. Оскільки ми відключили NetworkManager, тепер нам потрібно підключитися до віддаленої ТД вручну.

Скріншот 10. Створення двох віртуальних інтерфейсів

Створюємо конфігураційний файл:

wpa_passphrase Jenechka ПАРОЛЬ > wpa_Jenechka.conf

Виконуємо підключення:

Якщо ви хочете, щоб процес wpa_supplicant пішов у фон, додайте опцію -B:

Підключення потребує деякого часу:

# sleep 5 # якщо запускати через скрипт, то в цьому місці потрібно дати час на підключення

Запускаємо службу DHCP для автоматичного отримання IP-адреси:

Дивимося на стан інтерфейсів  iw dev:

Запускаємо службу та дивимось на стан інтерфейсів.

Бачимо, що інтерфейс wlan0_sta підключений до ТД саме це нам і потрібно. Дуже важливо – подивіться, на якому каналі працює ТД та клієнт. Цей канал обов’язково потрібно вказати у наступній команді, інакше нічого не вийде. У разі вони працюють на 8 каналі.

Нарешті, запускаємо ТД з ім’ям HackWare та паролем 12345678 на 8 каналі:

Підсилювач Wi-Fi сигналу.

Команди для показу імен мережевих інтерфейсів

Показати лише бездротові інтерфейси iw dev:

Виведення деякої апаратної інформації:

Імена та опис інтерфейсів:

Виведення бездротових інтерфейсів разом з їх PHY, інформації про драйвер і чіпсет:

Висновок всього, що нагадує мережеві інтерфейси (разом із віртуальними):

Наступним чином можна переглянути імена інтерфейсів та обладнання:

Так можна вивести імена інтерфейсів, крім віртуальних:

Статистику за інтерфейсами можна переглянути так:

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.