Настройка Point-to-site VPN с помощью OpenVPN Remote Access Server на pfSense 2
Содержание
- 1 Настройка Point-to-site VPN с помощью OpenVPN Remote Access Server на pfSense 2
Настройка Point-to-site VPN с помощью OpenVPN Remote Access Server на pfSense 2.3
Вводная информация
Point-to-Site VPN (Virtual Private Network) — технология, позволяющая организовать собственную виртуальную частную сеть и подключать к ней территориально удаленных пользователей. VPN представляет собой безопасный SSL/TLS-туннель между сервером и клиентами, предоставляет общий доступ в сетевым ресурсам, снижает расход интернет-трафика пользователей за счет использования сжатия, а также дает возможность маршрутизации всего клиентского трафика через VPN-сервер (аналогично прокси-серверу).
В данном руководстве мы рассмотрим процесс создания виртуальной частной сети с помощью свободной реализации технологии VPN — OpenVPN, поддерживаемой едва ли не всеми современными операционными системами (Windows, Mac OS, Linux, Android, iOS, ChromeOS). Настройка будет осуществляться на сервере, работающем под управлением pfSense 2.3.
Частное облако от 1cloud.ru
- Любые конфигурации виртуальных серверов
- Бесплатные частные сети
- Полная автоматизация управления
PfSense представляет собой дистрибутив на базе ОС FreeBSD, предназначенный для создания межсетевых экранов/маршрутизаторов. При весьма широких возможностях, он бесплатный, нуждается лишь в минимальных аппаратных ресурсах, и имеет предустановленный понятный web-интерфейс управления. Подробнее ознакомиться с возможностями pfSense можно здесь.
Для упрощения процесса настройки и дальнейшего администрирования сервера мы будем использовать OpenVPN Remote Access Server — программное решение, включающее в себя непосредственно OpenVPN-сервер, собственный веб-интерфейс управления, а также набор автоматически настраиваемого клиентского ПО для соединения с сервером. Единственное ограничение Remote Access Server — необходимость лицензирования. Бесплатная (базовая) лицензия рассчитана на обслуживание двух VPN-клиентов. При увеличении числа пользователей потребуется приобретение дополнительных лицензий. На момент написания статьи их стоимость составляет 9.60$ в год за каждого, начиная с третьего, клиента. Подробная информация о лицензировании Access Server находится здесь.
1. Создание сервера pfSense и настройка OpenVPN Remote Access Server
Для дальнейших манипуляций нам потребуется хост pfSense. Если Вы используете сервис 1cloud.ru, то для подготовки сервера достаточно выбрать соответствующий шаблон (pfSense 2.3) при создании сервера — через несколько минут он будет готов к работе. Если же Вы планируете использовать сторонний хостинг или собственный сервер, потребуется сперва установить и настроить pfSense.
Итак, сервер готов. Переходим в его веб-интерфейс управления.
Входим, используя учетные данные, указанные в панели управления 1cloud. Затем открываем вкладку VPN > OpenVPN > Wizards.
Откроется мастер настройки OpenVPN Remote Access Server. Выбираем тип сервера (Type of Server) – Local User Access.
На следующем этапе следует указать параметры сертификата создаваемого центра сертификации (CA), который в дальнейшем, будет заверять сертификаты клиентов:
- Descriptive name: MyCA (можно указать иное)
- Key length: 2048 bit
- Lifetime: 3650 (срок действия сертификата. Оставим по умолчанию)
- Country Code: RU
- State or Province: Saint Petersburg
- City: Saint Petersburg
- Organization: 1cloud (название компании, подтверждающей сертификаты пользователей)
- E-mail: support@1cloud.ru
Кликаем “Add new CA”.
Теперь необходимо указать параметры самого сертификата CA. Можно ничего не изменять, только указать Descriptive Name – например «MyCAcrt». Кликаем «Create new Certificate».
Далее нужно настроить OpenVPN-cервер:
- Interface: WAN (сетевой интерфейс сервера, подключенный к интернету)
- Protocol: UDP
- Local Port: 1194
- Description: myVPN (любое удобное название)
- Tunnel Network: 10.0.8.0/24
- Redirect Gateway: Включить (Отключите эту опцию, если Вы не хотите, чтобы весь интернет-трафик клиента перенаправлялся через VPN-сервер.)
- Local Network: Оставляем пустым (Если Вы хотите, чтобы локальная сеть, находящаяся за сервером pfSense, была доступна для удаленных клиентов VPN, укажите здесь адресное пространство этой сети.)
- Concurrent Connections: 2 (Если Вы приобрели дополнительную лицензию OpenVPN Remote Access Server, укажите число, соответствующее количеству приобретенных лицензий)
- Inter-Client Communications: Включить (Если Вы не хотите, чтобы VPN-клиенты видели друг друга, отключите эту опцию)
- DNS Server 1 (2 и т.д.): указать DNS-серверы хоста pfSense. (узнать их адреса можно в разделе System > General Setup > DNS Servers)
Остальные параметры можно оставить по умолчанию. Кликаем «Next».
Теперь указываем параметры Firewall. Включаем обе опции: разрешаем внешние подключения для клиентов и трафик внутри VPN-туннеля.
Настройка серверной части завершена.
Теперь нам нужно добавить пользователей, которые в дальнейшем смогут подключаться к виртуальной частной сети. Для этого переходим в меню System > User Manager. Кликаем «Add» для добавления нового пользователя.
Вводим информацию о пользователе. Не забудьте активировать опцию “Click to create a user certificate” и указать созданный ранее центр сертификации в параметрах сертификата пользователя.
Аналогичным образом, при необходимости, добавляем второго (третьего и т.д.) пользователя.
2. Экспорт клиентских конфигураций и подключение пользователей
Для упрощения процедур конфигурации программ-клиентов, в pfSense предусмотрен дополнительный инструмент – “OpenVPN Client Export Utility”. Этот инструмент автоматически подготавливает установочные пакеты и конфигурационные файлы пользователей, что позволяет избежать ручной настройки VPN-клиента со стороны конечного пользователя.
Установим вышеописанный пакет. Для этого переходим в меню System > Package Manager > Available Packages. Находим в списке openvpn-client-export utility. Кликаем «Install» для его установки.
Сообщение со скриншота ниже говорит об успешном завершении установки.
Теперь можно экспортировать конфигурации на пользовательские устройства. Переходим во вкладку VPN > OpenVPN > Client Export.
Изменять какие-либо параметры, указанные на открывшейся странице, обычно нет необходимости.
В нижней части страницы находим поле «OpenVPN Clients». Здесь размещены версии конфигураций под различные типы клиентов.
Рассмотрим процесс подключения клиента к созданной виртуальной частной сети на самом распространенном примере – подключении ПК под управлением Windows.
- Для настройки Windows-клиента скачиваем соответствующий параметрам компьютера установочный пакет из списка (см. скриншот выше). Запускаем. Начинается инсталляция утилиты. Кликаем «Далее» (изменять стандартные параметры установки нет необходимости).
- Открываем установленный “OpenVPN GUI”. В трее появляется соответствующая иконка. При клике на нее, происходит подключение к VPN. В процессе подключения будет запрошено имя пользователя, указанное Вами при его создании в панели управления pfSense. При успешном соединении с сетью иконка OpenVPN в трее станет зеленой и отобразится уведомление о получении адреса в пространстве 10.0.8.0/24.
Если Вы включили опцию перенаправления всего клиентского трафика через сервер OpenVPN, то имеет смысл проверить корректность ее работы. Для этого в браузере проверяем IP-адрес клиентского устройства, например через myip.ru. Он должен совпадать с IP-адресом VPN сервера.
На этом настройка Point-to-site VPN завершена.
P.S. В рамках данной инструкции мы не будем описывать настройку клиентов на других ОС. Эту информацию можно найти непосредственно в разделе VPN > OpenVPN > Client Export > Client Install Packages.
Приведем только пример настройки VPN-клиента на ОС Ubuntu/Debian без установленного графического окружения (что зачастую актуально для серверов).
Войдите в терминал (непосредственно на настраиваемом устройстве или через SSH)
Последовательно введите следующие команды (каждая новая строка является отдельной командой):
sudo -s
apt-get update && apt-get upgrade
apt-get install openvpn
cp /home/user/openvpnfiles/* /etc/openvpn (копирование файлов конфигурации openvpn в рабочую директорию программы. Эта команда подразумевает, что файлы уже находятся в папке /home/user/openvpnfiles, и кроме них в ней ничего нет.)
/etc/init.d/openvpn restart
ifconfig
В результате выполнения последней команды, в окне терминала должен появиться список сетевых подключений, включающий в себя соедение TUN-это и есть подключенный VPN-туннель.
Установка графической оболочки и XRDP
Debian 7.4 (32 и 64 bit)
1. Обновляем список доступных пакетов:
2. Устанавливаем графическое окружение и xRDP:
3. Редактируем файл запуска xRDP. Наща цель — настроить автоматическую загрузку графической оболочки при запуске VPS. Воспользуемся любым редактором, например, nano:
Добавляем в файл startwm.sh следующие строки:
В обязательном порядке добавьте в конце пустую строку. Сохраните результаты при помощи нажатия клавиш Ctrl+O и выйдите из меню редактора — Ctrl+X.
4. Делаем перезапуск xRDP сервера при помощи команды
5. По окончании выполнения вышеописанных шагов необходимо перезапустить VPS из панели управления SolusVM либо выполнив команду
CentOS 6.*
1. Обновляем список доступных пакетов:
2. Устанавливаем графическое окружение:
3. Подключаем репозитории EPEL и Desktop:
4. Выполняем установку xRDP и добавляем его в автозапуск:
5. Настраиваем сетевые подключения. Для начала выполняем команду
Отобразится диалоговое окно, в котором необходимо выбрать DNS configuration, после чего нажать клавишу Enter.
В следующем окне конфигурации в поле Primary DNS указываем IP адрес 8.8.8.8, а в поле для Secondary DNS вводим IP адрес 4.2.2.3. Затем нажимаем ОК. Сохраняем внесенные изменения, нажав на кнопку Save&Quit.
6. Перезапускаем виртуальный сервер через SolusVM или выполняем команду
CentOS 7
1. Выполняем обновление пакетов:
2. Добавляем репозитории EPEL и Desktop:
3. Устанавливаем графическое окружение и xRDP:
4. Обязательно необходимо указать графическую оболочку, которая будет доступна по умолчанию. Команда:
5. Чтобы xRDP загружался автоматически при старте виртуального сервера, дополнительно выполняем следующие команды:
6. Отключаем Firewalld:
7. Перезапускаем виртуальный сервер через SolusVM или выполняем команду
Ubuntu 12.04 (64 bit)
1. Выполняем обновление пакетов
2. Устанавливаем графическое окружение и сервис xRDP:
3. Настраиваем автозагрузку xRDP:
4. По окончании выполнения вышеописанных шагов необходимо перезапустить VPS из панели управления SolusVM либо выполнив команду
Ubuntu 14.04 (64 bit)
1. Выполняем обновление пакетов
2. Устанавливаем сервис xRDP:
3. Устанавливаем графическое окружение:
4. Настраиваем использование сервером установленной графической оболочки по умолчанию:
5. Редактируем файл запуска xRDP с помощью любого редактора, например, nano:
Итоговое содержимое файла должно быть таким:
Важно! Обратите внимание на тот факт, что в конце файла необходимо добавить пустую строку. Сохраните результаты редактирования сочетанием клавиш Ctrl+O и выйдите из редактора через Ctrl +X.
6. Делаем перезапуск xRDP сервера:
7. Перезапускаем виртуальный сервер через SolusVM или выполняем команду
Стабильность, производительность, безопасность — AnyDesk Remote Desktop для Linux
Наш инновационный кодек DeskRT обеспечивает AnyDesk для Linux высокой частотой кадров, незаметной задержкой и оптимальной пропускной способностью с почти мгновенным откликом. AnyDesk Remote Desktop для Linux поддерживает передовые технологии для любого приложения.
AnyDesk Remote Desktop для Linux гарантирует защищенность вашего подключения системой стандартного банковского шифрования TLS 1.2 и асимметричного обмена ключами RSA 2048. AnyDesk также предлагает полную поддержку для ваших собственных сетей, предоставляя возможность использовать наши инструменты удаленного доступа Linux без подключения к интернету.
Разработан для Linux
AnyDesk Remote Desktop для Linux работает с огромным количеством дистрибутивов Linux, включая Ubuntu, Red Hat, openSUSE и Fedora. Стандартная Linux версия доступна также и для других 32-bit или 64-bit кастомизированных систем.
Быстрая загрузка
AnyDesk Remote Desktop для Linux сохраняет размеры файлов небольшими, поэтому загрузка происходит быстро. Выберите свой дистрибутив Linux и следуйте подсказкам для быстрой и простой установки.
Всегда обновляется
Обновления всегда бесплатны, независимо от вашей лицензии. Совместимость всех версий программ сохраняется.
- fiber_newCapture settings panel:
Allows disabling the XDamage extension if you have issues with screen artifacts (warning: may impact performance). - autorenewImproved iOS support:
Support for improved connections to iOS devices. - bug_reportFixed deadlock:
Fixed a potential deadlock at the beginning of a session, resulting in the ‘Waiting for Image’ message to never disappear.
- fiber_newTwo-Factor Authentication:
When enabled, an additional dialog will be shown after authentication by password or token, requesting a time-based one-time password provided by a third device. This feature requires an app supporting TOTP. - fiber_newWake-on-Lan:
When enabled, devices running AnyDesk that are currently in sleep mode can be woken up by other AnyDesk devices in the same local network. - autorenewSecurity improvement:
AnyDesk now supports Perfect Forward Secrecy to strengthen its already strong security for data transfer. - autorenewImproved Dark Themes support:
AnyDesk now supports Dark Themes by defaulting to Adwaita Theme. - bug_reportPremium dialog shown even on paid licenses:
Fixed Open Address Book on Startup feature showing the premium dialog even on paid licenses. - bug_reportKeyboard layout on Fedora 31:
Fixed keyboard layout change on Fedora 31. - bug_reportBugfixes:
Fixed a couple of small bugs.
- bug_reportBugfix:
Fixed Debian package dependencies to allow installation on Debian Bullseye.
- fiber_newStart/Stop of session recording:
It is now possible to start/stop recording during the active session. - autorenewDiscovery feature security:
Significantly improved security of Discovery feature. - bug_reportBugfixes:
Fixed online states. Fixed a deadlock in the frontend.
- bug_reportBugfix:
Fixed a bug that might cause 32bit versions to fail.
- autorenewSecurity hardening:
Hardened Linux/FreeBSD/RPi via FULL RELRO. - bug_reportBugfix:
Fixed a security vulnerability.
- fiber_newNew option when session ends:
Added lock account on session end feature. - autorenewUsability improvements:
Improved minor GUI details. Refactored X11 code to put much less load on X Server. Fixed primary monitor not beeing selected on session start. - bug_reportCrash bugfix:
Fixed privacy/input blocking crashing certain versions of i915 driver. - bug_reportMinor bugfixes:
Several minor bugs have been fixed.
- fiber_newNew Privacy feature indicator:
Added Privacy indicator into the statusbar to always reflect the current privacy status. - fiber_newNew Privacy feature security settings:
Added unattended access privileges in the security settings which can override the standard permissions if connected via unattended access. - bug_reportMinor bugfixes:
Several minor bugs have been fixed.
- fiber_newVPN connection:
With this mode two PCs can be put into a private network over a secured connection - fiber_newAndroid compatibility:
Added transmission of Android special keys
- bug_reportBugfixes:
Fixed a couple of minor bugs.
- fiber_newNew feature:
New Privacy feature added. - bug_reportWrong keyboard layout:
Fixed a bug with wrong keyboard layout in some distributions and on some login screens. - bug_reportModifier keys:
Fixed a bug that would release modifier keys after typing one character on certain configurations. - bug_reportBugfixes:
Fixed couple of minor bugs.
- fiber_newRemote reboot:
Added remote reboot support. - fiber_newCommand line:
Added more options to the command line interface. - bug_reportSearch in filebrowser:
Fixed searching by typing in the filebrowser. - bug_reportAudio device:
Fixed a bug that prevented from selecting a different audio device. - bug_reportBugfixes:
Fixed some minor bugs.
- bug_reportBugfixes:
Fixed some minor bugs.
- fiber_newInput blocker:
Blocks input. - fiber_newAuto Discovery:
Added Settings.. - autorenewPerformance:
Performance optimizations using modern SIMD instruction sets. - autorenewFixed slow renderings on some machines.:
Blocks input. - bug_reportBugfixes:
Fixed lots of minor bugs increasing stability, usability and performance.
- fiber_newFile Transfer:
GUI implementation for transferring files between clients. - fiber_newAuto-discovery:
Allows other AnyDesk clients to find you. - fiber_newTCP Tunnels:
New TCP Tunneling (or Port-Forwarding) feature has been added. - bug_reportBugfixes:
Fixed lots of old and new bugs increasing stability, usability and performance. - autorenewIcons:
Updated icons.
- fiber_newBugfix release:
This version contains various bugfixes.
- fiber_newAddress Book:
Added address book to AnyDesk linux. - fiber_newSession Comments:
Allow user to add a note after a session ended. - fiber_newSession recording and playback:
Allow user to record and playback sessions. - fiber_newMany small features:
Added many small features and improvement to features that were already present in the Windows version. - bug_reportMany Bugfixes:
Fixed a lot of special cases that sometimes caused AnyDesk to not work correctly.
Удалённый рабочий стол RDP в Ubuntu
Если вам надо часто подключаться удалённо к Ubuntu из Windows, то лучше использовать протокол разработанный для Windows — RDP. Он тоже уже достаточно старый, но почти везде поддерживается. Для установки RDP сервера выполните:
sudo apt install xrdp
После установки убедитесь, что сервис запущен:
sudo systemctl status rdp
Затем вы можете подключатся к настроенному серверу из Windows стандартными средствами системы или из Linux с помощью утилиты Reminna как в предыдущем варианте, только протокол надо будет выбрать RDP вместо VNC.
В Windows откройте поиск и найдите там подключение к удалённому рабочему столу:
Введите IP адрес сервера, на котором запущен RDP клиент и к которому вы хотите подключится:
Затем нажмите кнопку Подключится и введите логин и пароль от пользователя в системе, к которой вы подключаетесь:
Теперь вы можете использовать RDP подключение.