Блокування IPsec без поломки Wi-Fi Calling на телефоні
Шість перевірок перетворюють суцільне блокування протоколу на захищуваний виняток для сервісу: функція, джерело, призначення, межа й дата перегляду.
Запит завжди приходить в одній тій самій формі: закрийте IPsec на межі, бо він несе тунелі, які ніхто не погодив, а перша скарга надходить від людини, чий телефон перестав телефонувати через Wi-Fi. Обидва факти правдиві одночасно, і жоден не виправдовує відмови від контролю. Межі потрібен виняток для сервісу з названою функцією, обмеженим джерелом, задокументованими призначеннями й власником. П'ять кроків перетворюють це на правило, яке сторонній зможе переглянути наступного року.
Назвіть сервіс, перш ніж назвати протокол
Настільний телефон на сервісі SIP і апарат, що виконує Wi-Fi Calling оператора, не поділяють мережевий профіль, а VoIP як термін міжмережевого екрана не описує жодного з них. Дані про порти й призначення мають надходити від постачальника або оператора, який веде сервіс, а не зі згаданого списку портів іншої телефонної системи. Це різниця між правилом, що захищає функцію, і правилом, що захищає слово.
Довідка Apple щодо портів сервісів перелічує UDP 500 і 4500 для Wi-Fi Calling, і це саме та пара, яку відкидає більшість суцільних блокувань IPsec. Запишіть назву функції в журнал змін поруч із цими портами. Додайте версію або дату використаної довідки, бо таблиці постачальників редагуються. Правило, яке називає сервіс, для якого існує, можна переглянути; те, що називає категорію протоколу, ні.
Пишіть виняток як договір, а не як послугу
Виняток зазначає дозволену функцію, класи пристроїв, що нею користуються, потрібний транспорт і призначення, які документує відповідальна сторона. Він також має власника й дату перегляду, бо кінцеві точки оператора й моделі апаратів змінюються, не повідомляючи команді міжмережевого екрана. Призначте перегляд людині, а не назві команди, яка переживе команду. Тримайте формулювання достатньо конкретним, щоб сторонній міг відтворити правило лише з журналу.
Поставте виняток у той самий цикл, що й решта політики межі, щоб перенесення призначення оператором або заміна моделі апарата в парку помічалася на перегляді, а не під час наступного збою. Замкніть цикл із тим, хто повідомив про зламані дзвінки, бо лише він може підтвердити виправлення, не відкриваючи знову тунель, який блокування мало закрити. Це підтвердження також належить до журналу, з датою.
Постійний дозвіл із позначкою тимчасового ремонту телефону через два роки не захистити. У дозволу, прив'язаного до визначеного сервісу, є строк, який подовжують свідомо.
Обмежте джерело чесно
Обмеження винятку керованим сегментом пристроїв істотно сильніше за відкриття протоколу для кожного ноутбука в будівлі. Якщо мережа не може визначити цей сегмент, запишіть це, а не натякайте, що правило знає пристрої. Найдешевший добрий результат — повторно використати межу, яка вже існує з іншої причини, тож виняток успадковує контроль, а не вигадує його. Фільтрування за адресою не є автентифікацією пристрою, і журнал змін не має натякати на протилежне.
Адреса джерела або апаратна адреса не є доказом фізичного апарата. Чи має котрась із них значення, цілком залежить від інших контролів усередині цього сегмента. Якщо аргумент за правило спирається на адресу MAC, перевірте, що заважає користувачеві її змінити, перш ніж правило буде випущено.
Прийміть те, чого правило портів сказати не може
Порти визначають кінцеві точки транспорту, а не ділову мету. Коли схвалений сервіс дзвінків і несхвалений тунель ідуть одним і тим самим UDP 4500, жодне правило на основі портів їх не розділяє. Правило, яке стверджує, що робить це, виглядає точним і не є таким, що гірше за правило, яке визнає власну форму. Це обмеження механізму, а не помилка людини, яка його написала.
Скажіть це поруч із правилом і сполучіть виняток із тим примусом, який має мережа, наприклад з керуванням пристроями або списком дозволених призначень. Потім висловіть виняток якнайвужче, наскільки дозволяє інструмент, наприклад правилами nftables, які називають сегмент і пару портів, а загальну заборону ставлять після них:
nft add rule inet edge forward ip saddr 10.40.0.0/24 udp dport { 500, 4500 } counter accept
nft add rule inet edge forward udp dport { 500, 4500 } counter drop
nftables обчислює по порядку й зупиняється на першому збігу, тому обмежений дозвіл має стояти над загальною забороною. Поміняйте їх місцями, і виняток мовчки нічого не робитиме.
Перевірте функцію й заборону
Виконайте схвалену перевірку на звичайному дзвінку через Wi-Fi з того класу пристроїв, для якого існує виняток, і підтвердьте, що виключений клієнт досі не проходить. Ніколи й за жодних обставин не використовуйте екстрені дзвінки як тестовий випадок. Потім огляньте випущене правило, бо лічильник, застиглий на нулі, найшвидший доказ того, що виняток жодного разу не збігся:
nft -a list chain inet edge forward
Включіть у тест повторне підключення або зміну мережі й повторіть його з холодного старту, коли телефон приєднується до мережі, а не вже підключений. Якщо лічильник рухається, а дзвінки досі не проходять, проблема вийшла за межі міжмережевого екрана й належить до списку призначень оператора.