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

Публикация № 1257913

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

VPN pfSense

В статье по шагам опишу установку и настройку 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.

 

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

Специальные предложения

Оставьте свое сообщение

См. также

Борьба с перебором/брутом паролей по RDP (Cyberarms Intrusion Detection)

Удаленное управление 1cv8.cf Россия Бесплатно (free)

Одна из проблем Windows Server'ов с доступом по RDP их легкое обнаружение в сети интернет и постоянные атаки по бруту/перебору паролей роботами и прочими умельцами желающими попасть на ваш сервер и заработать на вас легких денег, либо просто добавить головной боли в виде шифровальщика, кодированных архивов, удаление информации, форматировании дисков и другие неприятные вещи. Чтобы этого избежать и снизить переборы до минимума, есть программный продукт бесплатный и простой в настройке и управлении, который будет еще одним надежным замком от вредителей.

10.09.2020    6487    ClickUp    34    

Разрешение экрана удаленного рабочего стола на windows server при подключении по протоколу RDP

Удаленное управление ИТ-компания Россия Бесплатно (free)

Способ управления разрешением экрана удаленного рабочего стола.

29.08.2020    11963    Alex10166    9