Ваш VPN-сервер у Windows запитує ім’я користувача й пароль, і цей єдиний діалог приховує три не пов’язані обов’язки. Одна доводить, хто ця людина, друга не дає тому, хто спостерігає за лінією, повторно використати цей доказ, а третя вирішує, до яких адрес він може звертатися далі. Більшість невеликих розгортань спершу зміцнюють тунель, а перші два обов’язки лишають на усталених значеннях, і це неправильний порядок.

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

Три обов’язки, один діалог

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

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

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

Чому MS-CHAPv2 не проходить перевірку на повтор

Якщо сервер досі приймає PPTP з MS-CHAPv2, тунель не захищає пароль у жодному осмисленому сенсі. Виклик і відповідь можна перехопити й атакувати офлайн, і 2012 року публічний сервіс зламу продемонстрував відновлення з такого рукостискання приблизно за добу для типового пароля. Довший і складніший пароль підвищує вартість; він не прибирає матеріал, який зловмисник отримує з мережі.

Потрібна властивість — облікові дані, які не можна відтворити. EAP-TLS з клієнтськими сертифікатами дає кожному пристрою власну ідентичність і дозволяє відкликати рівно один пристрій.

Розгортання сертифікатів — справжня робота: власний CA, шлях відкликання, який перевіряють клієнти, і план оновлення, що переживає зміну персоналу. Ставтеся до цієї роботи як до проєкту, а не як до перешкоди між вами й робочим тунелем. Плануйте на неї бюджет так, як планували б на заміну брандмауера. Спільний пароль дешевший лише до першого відкликання.

Заздалегідь розділений ключ автентифікує пару, а не людину

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

Кожен клієнт у цьому профілі поділяє секрет, тож видалення однієї людини означає повторний розподіл між усіма, хто лишився. Тримайте окремий крок автентифікації користувача поверх секрету рівня машини й переходьте на сертифікати в міру зростання кількості клієнтів. Заздалегідь розділений ключ разом із MS-CHAPv2 — це два слабкі шари, і другий зводить нанівець перший.

Авторизація належить Network Policy Server

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

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

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

Обмежте, до чого може дістатися успішний вхід

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

Жоден із варіантів не є усталеним налаштуванням безпеки. Обидва треба записати поруч із профілем брандмауера, який вони припускають.

Перевірте шляхи відмови

Перевірте, що має зламатися: неправильний пароль, прострочений сертифікат, відкликаний пристрій, користувач поза групою. Кожен має зазнати невдачі в іншій точці, і журнал має сказати, у якій саме. Проженіть набір спершу на тестовому обліковому записі, потім повторіть для реального користувача. Відмову, що без причини потрапляє в журнал подій, варто виправити задовго до того, як вам знадобиться цей запис.

Далі підтвердьте, які порти опубліковано й чому. PPTP потребує TCP 1723 і GRE як IP-протокол, а не порт, IKEv2 потребує UDP 500 і 4500, а L2TP потребує UDP 1701 плюс IPsec. Відкриття інтерфейсу керування, щоб клієнт підключився, — не ремонт, а другий інцидент, що чекає на виявлення.

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

Схожі статті