MYCSS

9 лютого 2021 р.

Нотатка: Забезпечити безпечне мережеве з'єднання між двома офісами і віддаленим користувачем через OpenVPN

Задача

Забезпечити безпечне мережеве з'єднання між двома офісами і віддаленим користувачем.

Умови

  • Головний офіс (Office 1) має білій IPv4 до якого можуть підключатися клієнти, локальна мережа 10.0.1.0/24.
  • Віддалений офіс (Office 2) має підключення за NAT маршрутизатором, тому до нього підключитися не можливо за IPv4, але він може підключатися будь куди, локальна мережа 10.1.2.0/24.
  • Віддалений користувач за звичай за домашнім WiFi маршрутизатором з IPv4 та NAT, до нього підключитися не можливо за IPv4, але він може підключатися будь куди.
  • Офіси мають в локальний мережі програмний сервер маршрутизатор pfSense.

Вирішення

  • Підключити віддалений офіс (Office 2) до головного офісу (Office 1), за допомогою технології VPN.
  • Підключити віддаленого користувача до головного офісу (Office 1) та забезпечити доступ до локальної мережі обох офісів Office 1 та Office 2.

За даних умов вибирається VPN підключення на базі сервера OpenVPN, через підключення UDP IPv4.

Схематично план підключення зображено на малюку.

OpenVPN client - OpenVPN client

OpenVPN

Налаштування сервера OpenVPN може бути класичне так як нічого особливого не має звичайний сервер і клієнти. У мене використана конфігурація на на основі сервера pfSence з TLS сертифікатами і автентифікацією користувача.
Сервер pfSence має можливість налаштувати OpenVPN сервер за допомогою майстра налаштування. А встановивши додатковий пакунок до pfSence є можливість за допомогою майстра експортувати налаштування для клієнтів.

Так локальна мережа для OpenVPN сервера і клієнтів є 10.100.0.0/24, режим TUN.

Локальна мережа для OpenVPN

Статичні адреси OpenVPN

Кожному OpenVPN користувачу назначається виділена фіксована адреса за допомогою налаштувань CCD в розділі VPN/OpenVPN/Client Specific Overrides.

Customer1: 10.100.0.10/24

Customer1 10.100.0.10/24

Office2: 10.100.0.20/24

Office2: 10.100.0.20/24

 

Таким чином користувачі будуть зажди отримувати фіксовані IP адреси, і так їх можна додати до специфічних Alias таблиць щоб було зручно використовувати в правилах фільтрації.

Alias: customer1_ovpn

Alias: office2_ovpn

Пряма маршрутизація OpenVPN

Тепер необхідно навчити OpenVPN клієнтів отримувати параметри маршрутизації. 

Це все також робиться за допомогою налаштувань CCD в розділі VPN/OpenVPN/Client Specific Overrides для кожного користувача.

Маршрутизація для customer1_ovpn в office1, office2

Маршрутизація для office2_ovpn в office1

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

Зворотня маршрутизація OpenVPN

Для вирішення задачі забезпечення зворотньої маршрутизація відносно клієнта office2_ovpn від сервера OpenVPN (Office1) до клієнта OpenVPN (Office2) додається параметр iroute за допомогою налаштувань CCD в розділі VPN/OpenVPN/Client Specific Overrides користувача office2_ovpn
В розділі Advanced там де визначалася фіксована IP адреса через крапку з комою додається маршрут до локальної мережі Office2 (10.1.2.0/24).
 
iroute користувача office2_ovpn.

Таким чином уже навчиться OpenVPN сервер де шукати локальну мережу Office2.

Підключення Office2

За допомогою стандартних налаштувань заповнюємо поля у розділі
VPN / OpenVPN / Clients.
OpenVPN Client
Після підключення можемо бачити статус з'єднання 
Статус OpenVPN Client

Firewall

Треба зауважити що основні правила фільтрації трафіку від користувача до офісів прописуюся в інтерфейсі OpenVPN в pfSense1 (Оffice1).
Firewall Rules
Надалі можна додавати власні правила з використанням Alias OpenVPN клентів. 
А також за бажанням адміністратор office2 може у власному pfSense2 додати власні правила для доступу до власної інфраструктури.

 

Немає коментарів:

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready