Организация удаленного доступа пользователей к серверу организации используя 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

См. также

Удаленное управление Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Включение и выключение компьютеров по расписанию из 1С, заданным регламентными заданиями. Компьютеры под управлением Windows включаются по команде broadc и выключаются командой shutdown. - broadc бесплатная утилита, доступная в интернете и приложенная к этой статье - shutdown - команда windows Статья показывает, как в 1С использовать данные команды.

11.06.2024    1066    eda_light    0    

3

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

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

2 стартмани

25.03.2024    5815    15    dungeonkeeper    15    

14

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

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

1 стартмани

22.12.2023    4839    18    Струнин    4    

25

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

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

2 стартмани

05.10.2023    2900    13    AActor    1    

7

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

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

4 стартмани

03.10.2023    954    0    Uran    0    

2

Удаленное управление Системный администратор Программист Абонемент ($m)

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

1 стартмани

19.09.2023    5954    AlexVogel    12    

11

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

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

1 стартмани

05.09.2022    3791    4    user739143    0    

14

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

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

1 стартмани

15.08.2022    6331    35    user739143    8    

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