VPN філії через 4G: зберігайте ідентичність, коли IP змінюється
Мобільна філія змінює адресу, не змінюючи того, ким вона є. Закріпіть ідентичність IKE на концентраторі, залиште філію ініціатором, потім перевірте реальну зміну адреси.
Почніть із самої філії, на сторінці стану WAN 4G-роутера. Якщо адреса, яку ви бачите, лежить у приватному діапазоні оператора, а не в публічному, жодне переспрямування портів на цьому пристрої ніколи не дозволить концентратору зателефонувати всередину, і тунель доведеться будувати назовні від філії. Це одне спостереження визначає проєкт. Решта роботи — переконатися, що концентратор упізнає філію за чимось кращим, ніж адреса, яка змінюється кожні кілька годин.
Звідки має починатися тунель
Перевірте адресу щодо спільного адресного простору, який оператори використовують для власного NAT, 100.64.0.0/10, і щодо звичайних приватних діапазонів. Якщо на мобільному каналі видно один із них, це зазвичай означає, що NAT на рівні оператора стоїть між філією та інтернетом, а вхідні з'єднання недоступні за жодною ціною, яку філія може заплатити. Коли адреса WAN публічна, але змінюється, у вас інша, простіша проблема.
Динамічний DNS допомагає лише в другому випадку. Він дає змінній публічній адресі стабільне ім'я для виклику і не може створити зіставлення, якого оператор ніколи не надавав. Його все ж варто налаштувати для публічного випадку, бо він прибирає єдиний ручний крок під час перенумерації. Чим він не повинен стати — відповіддю для філії, яку оператор так і не зробив доступною.
Відокремте адресу, за якою ви телефонуєте, від ідентичності, яку зіставляєте
Концентратору потрібне щось стабільне, за чим його можна знайти: затверджена фіксована адреса або підтримуване ім'я хоста. Філії потрібен стабільний спосіб бути впізнаною, і в IKEv2 це корисне навантаження ідентичності, яке вона подає під час автентифікації, незалежно від адреси джерела, яку випадково несуть її пакети. Рядок на кшталт @branch-a.vpn.example працює як ця ідентичність навіть тоді, коли мобільна адреса змінюється щогодини.
Цей рядок зіставляється з політикою, а не розв'язується через DNS, тож не чекайте пошуку під час налаштування тунелю. Конфігурація концентратора має явно називати очікувану ідентичність, а під час автентифікації сертифікатом ідентичність також має збігатися з тим, що сертифікат справді стверджує.
Приймати будь-яку ідентичність лише тому, що адреса джерела виглядає правдоподібно, — це той режим відмови, якого слід уникати. На боці відповідача це означає приймати будь-якого партнера, з шаблоном ідентичності й спільним секретом, а це автентифікує рядок, а не пристрій.
Напишіть бік концентратора як іменованого партнера
У термінах strongSwan бік відповідача — це з'єднання з right=%any, яке приймає партнера з будь-якої адреси джерела, плюс [email protected], яке закріплює, ким цей партнер має себе оголошувати. Додайте rightsubnet=10.20.0.0/16 для LAN філії, auto=add щоб з'єднання завантажувалося без виклику, dpd_delay=30s для живучості та mobike=yes щоб зміна адреси поглиналася, а не трактувалася як новий партнер.
Інші виробники виражають ті самі об'єкти під іншими назвами, зазвичай тип динамічного партнера або партнера філії з полем ідентичності та полем захищеної підмережі. Заповніть обидва; загальний прапорець динамічності не є планом сумісності.
Залиште філію ініціатором
У філії діє дзеркальне відображення: left=%defaultroute щоб використовувалася локальна мобільна адреса, яка є зараз, [email protected] для подання ідентичності, right=hub.example.com для стабільного імені концентратора і auto=start щоб тунель піднімався без людини. Коли мобільний канал перепідключається, філія знову ініціює, а концентратор зіставляє ту саму ідентичність із тим самим об'єктом політики.
Дозвольте IKE на UDP 500, проходження NAT на UDP 4500 та інкапсульований ESP, що йде за ним, з обох боків. Потім залиште їх дозволеними: правило, яке відкривається лише в робочі години, виглядатиме як переривчастий тунель.
Перевірте зміну адреси, а не лише перше рукостискання
Підніміть тунель, підтвердьте його, потім на хвилину примусово переведіть філію на нову адресу, перемкнувши мобільні дані або авіарежим. Стежте за списком асоціацій безпеки на концентраторі й перевірте, що адреса партнера змінилася, а ідентичність — ні. Тунель, який працює лише до першого перерозподілу оператором, взагалі не перевірений.
Потім перевірте захищені підмережі окремо. Установлена SA каже, що партнери автентифікувалися; вона не каже, що концентратор має маршрут до LAN філії або що філія приймає трафік з боку концентратора. Прочитайте таблицю маршрутизації та політику брандмауера окремо, потім надішліть ping з хоста, а не зі шлюзу, бо шлюз — найменш репрезентативний пристрій у будь-якій мережі.
Стабільна ідентичність перетворює філію на об'єкт політики, який концентратор може назвати. Вона не робить адресу NAT оператора досяжною і сама по собі не дає решті організації доступу до філії.