Организация удаленного доступа пользователей к серверу организации используя pfSense

01.07.20

Администрирование - Удаленное управление

В статье по шагам опишу установку и настройку pfSense на арендованную виртуальную машину, организации OpenVPN для пользователей и подключению к серверу.

Вводные

 

  1. Сервер 1С с опубликованным по HTTP тонким клиентом или RDP.
  2. Проброс портов сделать невозможно
  3. Нужно организовать безопасное прямое подключение к серверу (заменить anydesk и подобные подключения для пользователей)

 

Схема сети

 

Пользовательские ПК и Сервер 1С подключаются к маршрутизатору используя UDP OpenVPN. Между подсетями VPN настраивается маршрут посредством которого пользователи на сетевом уровне имеют доступ к серверу.

 

Реализация

Организация виртуальной машины

Приобретаю виртуальную машину на которую можно установить с образа iso pfSense, именно это приложение потому что

  1. умею его настраивать под свои задачи 
  2. наличие удобного web интерфейса администрирования, то что внутри FreeBSD на мою работу не влияет
  3. удобного интерфейса формирования файла настроек OpenVPN

В качестве хостера использую firstvds.ru (документация на админ панель), по соотношению цена/качество меня устраивает.

Виртуальную машину беру VDS-KVM-Старт-7.0 (Виртуализация: KVM , Процессор: 1 ядро, Память: 1 Гб, Диск: 30 Гб HDD+SSD), стоимость в пределах 200 руб./мес.

По минимальным требованиям проходит (ссылка на требования), важна виртуализация KVM, на OVZ невозможно установить свою ОС.

Скачиваю архив с официального сайта (ссылка)

 
 вариант образа

 

Распаковываю архив и загружаю в админ панель хостера iso файл, прикрепляя образ к виртуальной машине.

 
 скриншот окна загрузки

 

Установка

После подключения iso и установки в приоритет загрузки перезагружаю VM (виртуальную машину), подключаюсь через VNC (при ошибке подключения напишите в тех поддержку включат). Устанавливаю, порядок установки скрыл под спойлер, т.к. он сводится к нажатию клавиши Enter на наборе экранов. (документация)

  1. Соглашаюсь с лицензией
  2. Выбираю установку pfSense
  3. Выбираю раскладку по умолчанию
  4. Выбираю разметку
  5. После выбора автоматически начинается установка.
  6. При окончании установки предлагается установить настройки вручную, отказываемся.
  7. Перезагружаю VM

 

При перезагрузке будет произведена загрузка с iso, поэтому

  1. останавливаю VM
  2. отключаю iso диск
  3. запускаю VM

 

Начальная настройка

1. Отказываюсь от использования vLAN

 
 скриншот

2. Указываю интерфейс для WAN

 
 скриншот

3. Нажимаю Enter подтверждая что LAN интерфейса нет

 
 скриншот

4. Подтверждаю настройки

 
 скриншот

 

Система пытается получить IP адрес по DHCP, но безуспешно, жду пока тайминги ожидания пройдут.

В результате настройки получаем окно приветствия.

 
 скриншот

 

5. Настраиваю IP адрес интерфейса

 
 Последовательность настроек

6. Редактирую конфигурационный файл для установки корректной подсети и основного шлюза 

 
 скриншот

7. перезагружаю VM командой reboot

8. Создаю маршрут по умолчанию

  • выхожу из оболочки "ctrl + Z"
  • route add -net 10.0.0.1/32 -iface vtnet0
  • route add default 10.0.0.1
  • проверяю ping 77.88.8.8

В результате админ панель доступна по внешнему IP.

Логин/пароль по умолчанию admin/pfsense, изменяю его через меню "System / User Manager / Users".

 
 скриншоты

"Мастер настройки" проходить не обязательно, общие параметры отдельно указать в "System / General Setup" (Hostname, Domain, DNS Servers)

 

Если перезагрузить VM то маршрут слетит, для решения вопроса нужно

  • установить пакет "Shellcmd" через "System / Package Manager / Available Packages" (документация по установке)
  • после установки настройках пакета "Services / Shellcmd" прописать команды из п.8, результат:
 
 скриншоты

 

Настройка VPN

Сервер и пользовательские ПК подключаются к Remote acces VPN как клиенты.

Для работы VPN используются SSL сертификаты, вся цепочка хранится в рамках сервера.

1. Добавляем корневой сертификат в разделе "System / Certificate Manager / CAs"

  • Descriptive name: internal-ca
  • Method: Create an internal Certificate Authority
  • Common Name: internal-ca

2. Добавляем сертификаты серверов VPN (to-server, to-client) в разделе "System / Certificate Manager / Certificates"

  • Method: Create an internal Certificate
  • Descriptive name: ovpn-ra-to-server (ovpn-ra-to-client)
  • Certificate authority: internal-ca
  • Common Name: ovpn-ra-to-server (ovpn-ra-to-client)
  • Certificate Type: Server Certificate
 
 результат

сертификат "webConfigurator default" нужен для включения HTTPS админ панели.

 

3. Добавляем сервера VPN через "VPN / OpenVPN / Servers"

  • Server mode: Remote Access ( SSL/TLS )
  • Local port: 1194 (1195 для to-client)
  • Description: ovpn-ra-to-server (ovpn-ra-to-client)
  • Server certificate: ovpn-ra-to-server (ovpn-ra-to-client)
  • IPv4 Tunnel Network: 10.0.8.0/24 (10.0.9.0/24 для to-client)
  • Custom options: 
    push "route 10.0.9.0 255.255.255.0"
    для to-client
    push "route 10.0.8.0 255.255.255.0"

    это маршруты между сетями которые передаются на клиенты OVPN.

 

4. Добавляем пользователей с клиентскими сертификатами через "System / User Manager / Users", пример для сервера 1С:

  • Disabled: true (This user cannot login)
  • Username: server_1c
  • Password: 123
  • Certificate: true (Click to create a user certificate)
  • Certificate authority: internal-ca
  • Descriptive name: server_1c

5. Добавляем правила доступа к серверу через "Firewall / Rules / WAN"

  • Protocol: UDP
  • Destination: WAN address
  • Destination Port Range: from 1194 to 1195

Поле добавления в форме списка правил применяем правила "Apply Changes"

6. Для удобной генерации конфигурационных файлов клиентов устанавливаем пакет "openvpn-client-export" через "System / Package Manager / Available Packages"

7. Формируем, скачиваем конфигурационные файлы клиентов через "VPN / OpenVPN / Client Export"

Выбираем нужный сервер, напротив имени пользователя скачиваем конфигурационный файл

 
 скриншоты

 

8. Скачиваем клиент OpenVPN с официального сайта https://openvpn.net/community-downloads/, устанавливаем. Обращаем внимание на различные клиенты под win7 и win10, разница в TAP драйверах.

9. Копируем скачанный ".ovpn" файл в "c:\Program Files\OpenVPN\config\", подключаемся к серверу

 
 скриншот

 

10. На главной странице админ панели добавляем виджет OpenVPN и убеждаемся что оба клиента подключены

 
 скриншоты

 

11. Разрешаем доступ по OVPN через "Firewall / Rules / OpenVPN"

Добавляем правило с

  • Protocol: any

Применяем настройки.

12. Проверяем доступ с клиента до сервера через ping 10.0.8.2

 

Закрытие доступа к админ панели

В разделе "System / Advanced / Admin Access" устанавливаем флаг Anti-lockout: true (Disable webConfigurator anti-lockout rule)

Заходим в админ панель через http://10.0.9.1

 

Запуск на сервере как сервис

Для постоянной работы на стороне сервера 1С (без привязки к клиентскому сеансу) имеет смысл запустить OVPN клиент как службу.

1. отключить подключение через GUI

2. Запустить сервис "OpenVPNService" и поставить автоматический запуск

 
 скриншот

 

Тестирование

Тестировал с помощью iperf (https://iperf.fr/)

  • на стороне клиента канал 100 МБит/сек,
  • на стороне сервера канал 40МБит/сек
  • на сервере VPN одно ядро Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz

Средний показатель 20Мбит/сек при 50% загрузке CPU и Load average 0.4

Итог

При желании за небольшие деньги можно организовать безопасное подключение к серверу 1С используя VPN.

 

Благодарю за внимание.

VPN pfSense

См. также

Подключение по RDP из 1С с автоматическим вводом пароля

Удаленное управление Пароли Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Как дать доступ сотруднику к удаленному рабочему столу (RDP), но при этом не давать пароль доступа?

2 стартмани

25.03.2024    3447    2    dungeonkeeper    1    

10

Диспетчер служб удаленных рабочих столов из 1С для Windows 2019

Удаленное управление Платформа 1С v8.3 Управляемые формы 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Обработка используется для наблюдения за сеансами удаленных рабочих столов пользователей и выполнения задач администрирования, таких как отключение пользователей, отправление сообщений, используя команды теневого доступа пользователей.

1 стартмани

22.12.2023    4045    17    Струнин    4    

22

Теневое подключение к RDP сессии пользователя на Windows Server 2022

Удаленное управление Россия Абонемент ($m)

Маленькая программка для реализации подключения к сессиям пользователя на сервере.

2 стартмани

05.10.2023    1590    8    AActor    1    

7

Хранение логов Ammy Admin

Удаленное управление Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка считывает историю сеансов Ammyy Admin и хранит в базе 1С. Получает отчет за любой период с группировками по рабочим местам, организациям и операторам.

4 стартмани

03.10.2023    614    0    Uran    0    

2

Организация удаленного доступа RDP на сервер без выделенного IP адреса

Удаленное управление Абонемент ($m)

Настройка RDP подключения на сервер без выделенного IP адреса через сервис NGROK.

1 стартмани

19.09.2023    3991    AlexVogel    10    

9

Система для взаимопомощи сотрудников, демонстрация экрана, запрос помощи, удаленный доступ

Удаленное управление Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Абонемент ($m)

Расширение обеспечивает возможности подключения одного сотрудника к экрану другого с его согласия в режиме "стажер" - "куратор".

1 стартмани

05.09.2022    3373    4    user739143    0    

14

Получение списка активных пользователей терминальных серверов с возможностью удаленного подключения

Удаленное управление Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка выводит список сессий пользователей терминальных серверов. По двойному клику запускает удаленное подключение в режиме RDP Shadow - теневое подключение (зеркало). Использует стандартную утилиту mstsc.exe. Работает поиск по списку, сортировка, отбор. Для получения сессий использует стандартную системную утилиту quser.exe, опционально запрашивает поля данных о пользователе у контроллера домена.

1 стартмани

15.08.2022    5050    28    user739143    8    

21

Быстрое подключение к RDP с автоматическим вводом пароля

Удаленное управление Абонемент ($m)

Довольно много специалистов, так или иначе связанных с 1С, работают с базой через удаленный рабочий стол (RDP). В системе даже есть возможность настроить ярлык быстрого подключения к RDP, чтобы сделать подключение максимально быстрым и удобным. К сожалению, если у вас нет прав администратора, либо если групповая политика на вашем компьютере контролируется организацией, у вас могут возникнуть проблемы с автоматическим запоминанием пароля системой. Иными словами, при каждом подключении вам придётся раз за разом заново вводить пароль. Часто такие пароли генерируются автоматически и представляют собой случайные наборы символов, выучить которые порой нереально. Пароль, как правило, сохраняют в текстовом файлике, и раз за разом копируют его оттуда при подключении к RDP. Знакомо? Данная программка поможет вам вводить пароль автоматически. Подключение будет происходить в 1 клик.

1 стартмани

08.08.2022    3960    8    XilDen    5    

4
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2466 01.07.20 22:37 Сейчас в теме
Решение достойное. Делал. Подтверждаю. Плюсую.
2. Glonas73 09.03.24 12:10 Сейчас в теме
Вот только я не пойму , не проще wirguard поднять , быстрее намного и нет гемороя такого ? Просто ради впн поднимать файрвол , ну так себе затея.
3. malikov_pro 1292 10.03.24 20:32 Сейчас в теме
(2) На момент освоения мной темы WireGuard еще не был популярен и доступен. Обычно после настройки VPN отстраиваю доступ к ресурсам сети за счет firewall, на сколько понимаю в базовом WireGuard такого нет.
Оставьте свое сообщение