Покрокова інструкція з об'єднання мереж за допомогою L2TP та L2TP/IPSec на Mikrotik

Покрокова інструкція з об'єднання мереж за допомогою L2TP та L2TP/IPSec на Mikrotik

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

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

Завдання можна розділити на дві складові. Перша – це спільна робота у мережі одного провайдера. Така постановка питання суттєво полегшує її вирішення.

 

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

 

Існує кілька технологій тунелювання, які передбачають різні рівні захисту даних. Найбільш відомими є такі протоколи як PPTP, L2TP, OpenVPN, SSTP, SafeVPN та деякі інші. Проблема їх використання полягає в тому, що протокол РРТР на сьогоднішній день є застарілим, а використання OpenVPN, SSTP, SafeVPN та інших потребує відповідного обладнання та платформ маршрутизації.

 

Тож найбільш оптимальним ми вважаємо застосування технології L2TP (Layer 2 Tunnel Protocol) – одного з найпопулярніших протоколів створення тунелів VPN. До його переваг можна віднести відносну простоту налаштування та універсальність. З ним може працювати як просте, недороге, і складне устаткування. Недоліком L2TP можна вважати відносну вразливість у питанні захисту даних у порівнянні з іншими протоколами, проте він виправляється застосуванням технології подвійної інкапсуляції IPSec, що різко підвищує стійкість тунелю до спроб несанкціонованого доступу. Зворотний бік медалі такої схеми – додаткове навантаження на процесори і, як наслідок, падіння швидкості передачі даних, проте для невеликих систем з невисокими вимогами ця обставина не буде критично. Особливо, якщо врахувати, що вартість обладнання для використання шифрування L2TP/IPSec доступна навіть для домашнього використання.

 

Розглянемо покрокове застосування зазначеної схеми, де як сервер виступає маршрутизатор RB2011UiAS-RM, а клієнта - hAP lite (RB941-2n), обидва виробництва Mikrotik. Продукція компанії широко відома в усьому світі завдяки високій якості, оригінальному програмному забезпеченню та доступній ціні, що якнайкраще відповідає умовам поставленого нами завдання.

 

У наведеному прикладі маршрутизатор RB2011UiAS-RM  Mikrotik видаватиме IP у підмережі 192.168.106.0/24, проте в реальних умовах адреса на інтерфейсах, звичайно ж, відрізнятиметься.

 

Отже, для створення безпечного каналу VPN в мережах різних провайдерів на основі протоколу L2TP/IPSec з використанням як провайдер маршрутизатора RB2011UiAS-RM і кінцевого клієнта hAP lite (RB941-2n) виробництва Mikrotik ми повинні зробити наступні кроки:

 

  • Налаштувати сервер;
  • Створити профілі;
  • Створити інтерфейс;
  • Налаштувати фаєрвол;
  • Налаштувати клієнта;
  • Налаштування на сервері L2TP/IPSec;
  • Налаштувати клієнта L2TP/IPSec;
  • Перевірити продуктивність L2TP/IPSec.

 

Налаштування сервера

 

Важливо, щоб головний сервер мав статичну білу зовнішню IP-адресу, у нас це 192.168.106.246. Він не повинен змінюватися, інакше доведеться вдаватися до зайвих дій та використовувати DNS-ім'я.

 

Створення профілів

 

  1. У розділі PPP відкриваємо вкладку Profiles та створюємо профіль, який буде застосовуватись до VPN-підключень. Зазначаємо опції Change TCP MSS, Use Compression, Use Encryption. За промовчанням використовуватиметься протокол шифрування MPPE 128 bit.

  1. Переходимо на вкладку Interface.

  1. Натискаємо L2TP Server, активуємо його галочкою Enabled і вибираємо профіль за замовчуванням, який ми створили раніше. Тип аутентифікації можна залишити як є або вибрати тільки MS-CHAP v2.

 

  1. Опцію IPSec поки що залишаємо відключеною.

  1. Переходимо в Secrets, тут необхідно створити нового користувача VPN. Як Service вказуємо L2TP, тут же вказуємо профіль, що використовується.

  1. Локальну адресу встановлюємо 10.50.0.10, віддалену – 10.50.0.11. При необхідності створюємо потрібну кількість користувачів. Локальна IP-адреса кожного користувача буде однаковою, віддалену IP потрібно збільшити на одиницю (тобто 10.50.0.12, 10.50.0.13 і т.д.). Можна вдатися до використання пулу адрес, але зі статикою простіше писати маршрути.

Створення інтерфейсу

 

Для кожного користувача потрібно створити свій інтерфейс.

Для цього потрібно відкрити розділ інтерфейсів та натиснути знак «плюс», у випадаючому меню вибрати L2TP Server Binding, вказати відображувану назву та ім'я користувача. При підключенні користувача тут відображатиметься поточна інформація про нього.

Налаштування фаєрволу

Для роботи VPN необхідно відкрити UDP-порт 1701 (chain input, protocol 17(udp), dst-port 1701, accept). Після цього слід підняти пріоритет правила, перемістивши його вище.

Далі в NAT’е додати  маскарадинг для VPN (chain srcnat, out interface all ppp, action masquerade), таким чином ми зробимо комп'ютери за роутером видимими один для одного.

 

Додавання маршрутів

 

Прописуємо маршрут у віддалену мережу, в якій знаходиться віддалений клієнт. Кінцева підмережа 192.168.2.0/24, як шлюз виступає IP клієнта всередині віртуальної мережі, у нашому випадку це 10.50.0.11, target scope виставляємо одиницю, Pref. Source – локальний IP сервер всередині віртуальної мережі, 10.50.0.10.

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

 

Налаштування клієнта

 

Для налаштування віддаленого клієнта потрібно увійти в розділ інтерфейсів і додати новий L2TP Client, вказати IP-адресу сервера та свої облікові дані. За замовчуванням вибрати профіль із шифруванням та деактивувати дефолтний маршрут, знявши з нього галочку.

Натискаємо «Застосувати», якщо ми ніде не зробили помилку, з'єднання має бути встановлене.

При спробі пінгувати 192.168.1.1… позитивної відповіді не буде. Для його одержання потрібно додати новий статичний маршрут – віддалену підмережу 192.168.1.0/24 як шлюз IP-сервера у віртуальній мережі, Pref. Source – наша IP-адреса у віртуальній мережі. Таким чином, під час настроювання клієнта всі адреси проставляються навпаки.

Повторне пінгування 192.168.1.1 дає позитивний результат.

 

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

 Ping пішов, отже, все працює.

Таким чином, створено тунель, проте в ньому не було застосовано подвійну інкапсуляцію IPSec для забезпечення безпеки. Пропускна здатність створеного каналу склала близько 50 Мбіт/сек.

На цьому базове налаштування з'єднання L2TP завершено.

Щоб додати нових користувачів, необхідно прописати відповідні маршрути на пристроях, які мають бачити один одного за роутером. При прокиданні маршруту між Client1 і Client2 на сервері нічого робити не потрібно. Достатньо прописати маршрути на клієнтах, як шлюз виступатиме IP опонента у віртуальній мережі.

 

Налаштування L2TP/IPSec

 

Іноді на практиці потрібно забезпечити належний рівень безпеки. При використанні L2TP доцільно використовувати IPSec. Як приклад використовується мережа, налаштована за вищевикладеною інструкцією. Зверніть увагу! IPSec створюється всередині тунелю L2TP між віртуальними адресами 10.50.0.X. Така реалізація дозволяє залежати від IP клієнта. Якщо ж ви хочете створити IPSec-тунель між WAN сервером і WAN клієнтом, необхідно, щоб у клієнта був білий зовнішній IP. Якщо IP буде динамічним, вам потрібно буде використовувати різні скрипти для зміни політик IPSec. До того ж, у разі IPSec між зовнішніми IP, потреба в L2TP зовсім відпадає.

 

Налаштування сервера

 

  1. Зайти до NAT і вимкнути маскарадинг для PPP для шифрування пакетів даних.
  2. Перезавантажити маршрутизатор.
  3. Зайти до розділу IP – IPSec відкрити вкладку Proposals. Вказати тип шифрування та аутентифікації. Як алгоритм аутентифікації вибрати sha1, для шифрування оптимальним буде використовувати алгоритм AES 128-біт. За потреби можна також вказати 3DES (Triple DES), він є алгоритмом за замовчуванням для L2TP/IPSec у Windows 7, у той час як для мобільних ОС доцільним може бути застосування AES 256-біт.
  4. У вкладці Peers додати новий бенкет з адресою 0.0.0.0/0, що дозволить маршрутизатору приймати всі підключення. За замовчуванням використовується 500 порт. Вибрати метод аутентифікації pre shared key, вказавши бажаний пароль. Exchange Mode слід вказати main l2tp. Відзначити опції Send Initial Contact та NAT Traversal. Значення Generate policy вибрати port strict. Інші опції вказані на малюнку.

  1. Створити політику, відкривши вкладку Policies. Політику, встановлену за замовчуванням, вимкнути. Створити нову політику, де вказати наші дві локальні мережі. Src. Adress (source) – наша локальна мережа 192.168.1.0/24, Dst. Adress (destination) – віддалена підмережа 192.168.2.0/24. В закладці Action необхідно вказати застосовану дію: action – encrypt, level – require. Як протокол вибрати ESP і поставити галочку Tunnel. SA Src. Adress – наша локальна адреса у віртуальній мережі (10.50.0.10), SA Dst. Adress – адресу віддаленого клієнта у віртуальній мережі.

  1.  Зайти до Firewall і додати правила для портів, що використовуються. Порт UDP 1701 використовується для початкової ініціалізації та конфігурації. UDP 500 використовується в L2TP/IPSec для ініціалізації обміну ключами. Протокол 50 – IPSec ESP, який використовується для шифрування даних. Іноді потрібно також відкривати порт UDP 4500 для обходу NAT.

 

Налаштування клієнта

 

Насамперед слід додати правила фаєрволу та вимкнути маскарадинг для створеного раніше VPN-каналу.

У розділі IP – IPSec необхідно налаштувати Proposal аналогічно до того, як це зроблено на сервері. Як бенкет буде виступати 10.50.0.10, тобто. адреса сервера у віртуальній мережі. Всі інші налаштування повинні відповідати тим, які були під час налаштування сервера.

При створенні політики всі адреси та підмережі вказуються назад тому, як вони вказані на сервері, тобто. у клієнта все навпаки.

Якщо ніде не було допущено помилки, у вкладці Remote Peers з'явиться список бенкетів і порти, що використовуються. Тепер необхідно відкрити вкладку Installed SAs та звернути особливу увагу на значення Current Bytes – якщо воно дорівнює нулю, то пакети не шифруються.

У фаєрволі можна переглянути рух трафіку. При тестуванні помітно, що застосування подвійної інкапсуляції  L2TP/IPSec  знизило швидкість тунелі з 50 Мбіт/с до 15-17Мбіт/с. В принципі, можна спробувати домогтися деякого збільшення пропускної спроможності, збільшивши кількість потоків, проте цей захід навряд чи дасть помітний її приріст. Неминуче падіння швидкості під час використання  IPSec – це і є плата за безпеку, про яку було сказано на початку статті.

Для створення надійного та продуктивного VPN-каналу можна розглянути варіант використання маршрутизатора, зібраного на базі персонального комп'ютера з використанням програмного забезпечення Mikrotik – RouterOS. Наявність апаратного блоку шифрування значно збільшує продуктивність тунелю.