14 грудня 2023

Налаштування OpenVPN сервера на pfSense для доступу віддалених користувачів до ресурсів офісної мережі

1. Завдання

          Інтерент в офісі підключений через роутер, за роутером знаходиться pfsense, за ним знаходиться офісна мережа, в мережі – сервер (web-сервер).


    Потрібно організувати доступ віддалених користувачів до ресурсів локальної мережі офісу за допомогою VPN (OpenVPN server на pfSense).


Початкові данні

- IP офісу (зовнішня) - 20.40.50.2

- WAN адреса pfSense - 192.168.3.62/24

- LAN офісу - 192.168.100.0/24

- Адреса Web-сервера - 192.168.100.10

- IP користувача (зовнішня) - 45.28.29.24

- Мережа VPN -192.168.11.0/24

- IP користувача (в мережі VPN) - 192.168.11.33

- Ім’я користувача - Taras


2. Налаштовуємо pfSense як стандартний роутер, який роздає інтерент

    Процес налаштування роутера не розглядаємо.

    Початкові дані:

-        WAN адреса pfSense - 192.168.3.62

-      LAN адреса pfSense - 192.168.100.1


3. OpenVPN сервер створюємо за допомогою майстра.

3.1 Заходимо в меню OpenVPN

        3.2 Запускаємо майстер створення VPN сервера


       3.3 Вибераємо тип серверної аутентифікації – локальні користувачі


        3.4 Створюємо новий сертифікат центру сертифікації (CA)



    Descriptive name: serverca

    Common name: залишаємо порожнім, буде використовуватись Descriptive name

    Country Code: UA

    State of Province: Kyiv

    City: Kyiv

    Organization: m-tech



        3.5 Створюємо новий сертифікат для OpenVPN сервера


        3.6 Заповнюємо новий сертифікат для OpenVPN сервера

    Descriptive name:     openvpnsrv

        Інші поля заповнюємо як в пункті 3.4

        3.7 Заповнюємо параметри сервера OpenVPN

Ім’я екземпляра OpenVPN сервера (для адміністративної довідки)

Description:   OpenVPNsrv1

Протокол для підключення OpenVpn.

Protocol:        UDP on IPv4 only (залишаємо)

Interface:       WAN

Local port:     1194 (можна вибрати довільний, вільний)

Criptographic Settings (весь блок залишаємо за замовченням)

IPv4 Tunnel Network:         192.168.11.0/24

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

 IPv4 Local Network:                       192.168.100.0/24

Це мережа, яка буде доступна з віддаленого клієнтського хоста. Зазвичай це адреса мережі LAN. Якщо у Вас декілька підмереж, можна додати їх через кому.

 Concurrent Connections:    5

Максимальна кількість одночасних підключень

 Inter-Client Communication:                     Unchecked

Дозволяє зв’язок між клієнтами. В даному прикладі не використовуємо


        Інші параметри, які не згадані були залишаємо без змін в даному прикладі.

        3.8 Налаштування правил файрволу

        Firewall Rule:                       Checked

        OpenVPN rule:                     Checked


        3.9 Завершення створення OpenVPN сервера


На цьому етапі все зроблено для розгортання самого OpenVPN сервера

Але потрібно виконати наступні настанови, для можливості підключатись до нього:

 Конфігурацію завершено.

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

 Щоб легко експортувати конфігурації клієнта, перейдіть до System > Packages і встановіть пакет OpenVPN Client Export.

 Після успішного створення екземпляра OpenVPN сервера, він з’явиться в перелюку серверів.

    4. Встановлюємо пакет OpenVPN Client Export.

Заходимо System – Package Manager- Available Package

Знаходимо пакет:      openvpn-client-export


Після успішного встановлення пакет з’явиться у Встановлених пакетах


    5. Створення користувача.

Для створення користувача заходимо System/User Manager/ Users. Натискаємо кнопку Add.

Username:                       Taras

Password:                       veresen5 (тут простий пароль. В житті робите складний)

Certificate:                      Checked (одразу генеруємо сертифікат користувача)

Descriptive name:           taras-sert

Certificate authority:     serverca (підставлено автоматично)

 Інші параметри тут не розглядаємо


Після створення, користувач з’явиться у списку користувачів.



6. Сертифікати

Перевіряємо згенеровані під час створення сервера та користувача сертифікати.
System/Certificates/Certificates.

Другий сертифікат у спистку належить серверу OpenVPN, третій - користувачу.


7. Експорт клієнтів

Для експорту клієнтів заходимо OpenVPN/ClientExport.

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

Host Name Resolution: Other (Вибираємо у спадному меню)

Host Name: 20.40.50.2 (Адреса, що надав провайдер Інтернет)




    Якщо все зроблено правильно і на сервері немає інших сертифікатів (у нас чистий сервер) то всі поля можемо залишити за замовченням. Якщо серверних сертифікатів більше, потрібно звернути увагу, який саме сертифікат використовується при експорті. Цей випадок ми тут не розглядаємо. Просто потрібно вибрати правильний сертифікат сервера. Сертифікат користувача прив’язаний до користувача.

    Опускаємось донизу, на проти імені користувача знаходяться кнопки експорту клієнта. Вибираємо клієнта і натискаємо відповідну кнопку для завантаження. У нашому випадку це буде клієнт під Windows x64. Скачуємо його на ПК користувача.

8. Налаштування прокидання порта через роутер.

Для доступу до OpenVPN сервера ззовні офісу потрібно налаштувати на роутері прокидання порта з Інтернет на адресу OpenVPN сервера. В нашому випадку порт 1194, протокол UDP.

9. Підключення клієнта до сервера.

    На Windows встановлення клієнта відбувається через майстер і особливої уваги не потребує. Після встановлення OpenVPN клієнта в треї з’явиться значок у вигляді монітора. Натискаємо на нього, вводимо логін та пароль. Коли з’єднання встановиться, вікно терміналу автоматично згорнеться а значок в треї стане зеленого кольору.

    Якщо Ви хочете переконатись чи дійсно Ви працюєте з сервером через тунель можете виконати команду tracert на якись сайт (наприклад Google) і на Ваш сервер.


Як видно, шлях до сервера 192.168.100.10 не виходить за межі приватного тунелю. 


  10. Індивідуальні налаштування клієнта.

За умовою клієнт повинен мати адресу в тунелі 192.168.11.33. Якщо ми перевіримо статус OpenVPN то побачимо, що йому була автоматично призначена адреса 192.168.11.2.




    Для налаштування IP-адреси клієнта заходимо:

VPN/OpenVPN/Client Speсific Overrides та натискаємо +Add

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



    Для присвоєння нової IP-адреси користувачу, потрібно перепідключитись до сервера.

    Налаштування завершені!

ARP фільтрація на Mikrotik