Забезпечення безпеки приватних ресурсів за допомогою налаштування Pritunl VPN

pic

Чому я вирішив використовувати VPN

Приватні сервіси доступні лише з віртуальних машин (VM) у публічній підмережі. Однак мої колеги (розробники) інколи повинні підключатися до приватних сервісів для розробки. З міркувань безпеки я вирішив не надавати прямий доступ до віртуальних машин у публічній підмережі для підключення до приватних сервісів.

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

Процес налаштування VPN

Ось покрокова інструкція з налаштування VPN-сервера Pritunl:

1. Встановлення MongoDB для Pritunl

  • VPN-сервер працюватиме на операційній системі Debian, а Pritunl потребує MongoDB.
  • Я встановив MongoDB через Docker. Для детальної інструкції дивіться цей посібник.

Після запуску MongoDB у Docker я створив користувача для Pritunl за допомогою таких команд:

docker exec -it  /bin/bash  
mongosh --port  --username   
# Введіть пароль, коли буде запропоновано  
use admin;  
db.createUser({ user: "pritunl", pwd: "PASSWORD", roles: [{role: "dbOwner", db: "pritunl"}] });

MongoDB URI для Pritunl

mongodb://pritunl:PASSWORD@localhost:27017/pritunl?authSource=admin

Примітка: замініть "PASSWORD" на ваш вибраний пароль.

2. Встановлення Pritunl та його залежностей

Запустіть наступні команди для встановлення Pritunl та його залежностей. Для інших репозиторіїв:

sudo tee /etc/apt/sources.list.d/pritunl.list << EOF  
deb [signed-by=/usr/share/keyrings/pritunl.gpg] https://repo.pritunl.com/stable/apt bookworm main  
EOF  

sudo apt --assume-yes install gnupg  
curl -fsSL https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc | sudo gpg -o /usr/share/keyrings/pritunl.gpg --dearmor --yes  
sudo apt update  
sudo apt --assume-yes install pritunl openvpn wireguard wireguard-tools  
sudo systemctl start pritunl  
sudo systemctl enable pritunl

3. Налаштування домену

Щоб налаштувати домен для VPN, додайте запис типу A у вашому реєстраторові доменів (наприклад, GoDaddy):

  • Тип: A
  • Ім'я: Використовуйте префікс (наприклад, gateway або connect) для створення піддомену.
  • Значення: IP-адреса сервера Pritunl.
  • TTL: Значення за замовчуванням.

Відкрийте браузер і введіть піддомен (наприклад, connect.karthik.com або gateway.karthik.com).

4. Початкове налаштування Pritunl

У браузері Pritunl запитає ключ налаштування та MongoDB URI.

pic

Отримайте ключ налаштування за допомогою наступної команди:

sudo pritunl setup-key

Вставте ключ і MongoDB URI, створений раніше.

mongodb://pritunl:PASSWORD@localhost:27017/pritunl?authSource=admin

Отримайте стандартне ім’я користувача та пароль за допомогою:

sudo pritunl default-password

Увійдіть, використовуючи надані облікові дані.

pic

5.

Налаштування SSL з Let’s Encrypt

Під час початкового налаштування

pic

  • Введіть піддомен (наприклад, connect.karthik.com).
  • Закрийте вкладку браузера з Pritunl і дайте серверу перезавантажитись.

Знову відкрийте браузер і перевірте, що піддомен захищений за допомогою SSL.

Підключення до серверу Pritunl VPN

Створення організації та користувача

  • Додайте організацію зі сторінки "Organization" в веб-консолі.
  • Додайте користувачів, за потреби вказавши електронну адресу та PIN-код користувача.

pic

pic

Створення сервера

  • Додайте сервер і налаштуйте параметри, такі як UDP порт (наприклад, 11005).
  • Увімкніть Google Authenticator, якщо це необхідно.
  • Прив’яжіть організацію до сервера та запустіть його.

pic

pic

pic

Завантаження профілів користувачів

  • Завантажте профіль користувача зі сторінки "Users".
  • Імпортуйте його в клієнт Pritunl або інший клієнт OpenVPN.

pic

pic

Додаткові примітки

Рекомендовані налаштування сервера Pritunl (для малих команд)

  • CPU: 1–2 vCPU
  • RAM: 2–4 GB
  • Диск: 20–40 GB SSD

Правила брандмауера

  • Відкрийте наступні порти у групі безпеки віртуальної машини:
  • TCP: 80, 443
  • UDP: 11005

Перевірка налаштувань DNS

  • Переконайтесь, що запис типу A в реєстраторі доменів вказує на правильну IP-адресу сервера Pritunl.

Джерела

https://docs.pritunl.com/docs/installation

Перекладено з: Securing Private Resources with a Pritunl VPN Setup

Leave a Reply

Your email address will not be published. Required fields are marked *