Настройте правила брандмауэра, чтобы разрешить доступ
В разделе «Брандмауэр / Правила» нажимаем WAN и создаем правило со следующими значениями:
Сохраняем и у нас будет правило, созданное в Интернете WAN.
Теперь нам нужно перейти в раздел «Брандмауэр / Правила / OpenVPN», в этом разделе мы собираемся определить доступ клиентов OpenVPN. Если мы хотим разрешить клиентам OpenVPN доступ к любой подсети pfSense, а также к Интернету, нам нужно будет создать правило «Пропустить все», определяющее следующее:
Если мы хотим создать определенные правила для запрета трафика в определенные подсети, то нам нужно будет создать правила, отвечающие этому условию.
Как только у нас будет доступ из глобальной сети Интернет, а также к любой подсети операционной системы и перенаправление в Интернет, мы собираемся экспортировать файл конфигурации OpenVPN для клиентов.
Настройка файлового хранилища на базе Debian
Подключаемся к Debian. Устанавливаем пакет Samba командой:
apt-get install samba
Создаем учетную запись для подключения к этому хранилищу командой:
smbpasswd -a "имя пользователя Linux"
Далее нас попросят ввести пароль для этого пользователя, что мы и делаем
При этом стоит обратить внимание, что пользователь должен уже существовать (в первом случае он мне не дал создать пользователя, т.к. тот не существовал):
Создаем папку, которая и будет выступать нашей общей директорией:
mkdir /home/user/testshare
После чего настраиваем Самбу. Открываем файл конфигурации любым текстовым редактором:
vim.tiny /etc/samba/smb.conf
Прокручиваем в самый низ и добавляем следующие строки:
path = /home/user/testshare available = yes valid users = user read only = no browsable = yes public = yes writable = yes
..где:
- , — название общей директории, которое будет отображаться в Windows;
- path, — пусть до общей папки;
- valid users, — кто может подключаться к этой папке.
Ну и всякие настройки доступа, которые нам сейчас не интересны.
После этого перезапускаем сервис:
service samba restart
Если не помогло, то можно перезагрузиться (что тоже очень быстро).
Managing a Running Session
- Once a VPN session has started, it should be seen in the session list:
- Using the openvpn3 session-manage there are a few things which can be done, but most typically it is the –disconnect or –restart alternatives which are most commonly used. . This disconnects and re-connects to the server again, re-establishing the connection. The ${CONFIGURATION_PROFILE_NAME} is the configuration name as displayed in openvpn3 sessions-list
- It is also possible to use the D-Bus path to the session as well: . This command above will disconnect a running session. Once this operation has completed, it will be removed from the openvpn3 sessions-list overview. Important: you will be able to start a new session with this or another OpenVPN profile only after you have disconnected from the current session using the command in this step
- It is also possible to retrieve real-time tunnel statistics from running sessions: or
- And to retrieve real-time log events as they occur, run the following command: This might be quite silent, as it does not provide any log events from the past. Issue an openvpn3 session-manage –restart from a different terminal, and log events will occur. You may want to boost the log-level with –log-level 6. Valid log levels are from 0 to 6, where 6 is the most verbose. Note: VPN sessions are also owned by the user which started it. But the Session Manager also provides its own Access Control List feature via
Installation for Debian and Ubuntu
Follow these steps in order to install OpenVPN 3 Client on Linux for Debian and Ubuntu:
-
Open the Terminal by pressing
-
Type the following command into the Terminal: . This is done to ensure that your apt supports the https transport. Enter the root password as prompted
-
Type the following command into the Terminal: . This will install the OpenVPN repository key used by the OpenVPN 3 Linux packages
-
Type the following command into the Terminal:
-
Type the following command into the Terminal: . This will install the proper repository. Replace $DISTRO with the release name depending on your Debian/Ubuntu distribution (the table of release names for each distribution can be found below). In this case, is chosen since Ubuntu 20.04 is used
-
Type the following command into the Terminal:
-
Type the following command into the Terminal: . This will finally install the OpenVPN 3 package
Distribution | Release | Release name ($DISTRO) |
---|---|---|
Debian | 9 | stretch |
Debian | 10 | buster |
Ubuntu | 16.04 | xenial |
Ubuntu | 18.04 | bionic |
Ubuntu | 19.10 | eoan |
Ubuntu | 20.04 | focal |
Создание закрытого ключа сертификата клиента и конфигурации
Процесс создания клиентского закрытого ключа и запроса сертификата такой же, как и при генерации ключа сервера и запроса сертификата.
Как мы уже упоминали в предыдущем разделе, мы сгенерируем закрытый ключ клиента и запрос сертификата на сервере OpenVPN. В этом примере имя первого VPN-клиента будет .
-
Перейдите в каталог EasyRSA на вашем сервере OpenVPN и сгенерируйте новый закрытый ключ и файл запроса сертификата для клиента:
Команда создаст два файла: закрытый ключ ( ) и файл запроса сертификата ( ).
-
Скопируйте закрытый ключ в каталог вы создали в предыдущем разделе:
-
Перенесите файл запроса сертификата на компьютер CA:
В этом примере мы используем для передачи файла, вы также можете использовать через ssh или любой другой безопасный метод.
-
Войдите в свой компьютер CA , перейдите в каталог EasyRSA и импортируйте файл запроса сертификата:
Первый аргумент — это путь к файлу запроса сертификата, а второй — имя клиента.
-
Из каталога EasyRSA на компьютере CA выполните следующую команду, чтобы подписать запрос:
Вам будет предложено подтвердить, что запрос исходит из надежного источника. Введите и нажмите для подтверждения:
Если ваш ключ CA защищен паролем, вам будет предложено ввести пароль. После проверки скрипт сгенерирует сертификат SSL и напечатает полный путь к нему.
-
Затем подписанный файл сертификата обратно на сервер OpenVPN. Вы можете использовать , или любой другой безопасный метод:
-
Войдите на свой сервер OpenVPN и переместите файл каталог :
-
Последним шагом является создание конфигурации клиента с помощью сценария . Перейдите в каталог и запустите скрипт, используя имя клиента в качестве аргумента:
Сценарий создаст файл с именем в каталоге . Вы можете проверить, перечислив каталог:
На этом этапе конфигурация клиента создана. Теперь вы можете передать файл конфигурации на устройство, которое собираетесь использовать в качестве клиента.
Например, чтобы передать файл конфигурации на локальный компьютер с помощью вы должны выполнить следующую команду:
Чтобы добавить дополнительных клиентов, просто повторите те же шаги.
Особенности VPN
Существуют сети VPN двух общих типов.
-
Удаленный доступ—Также называется виртуальной частной сетью удаленного доступа (VPDN), это соединение между пользователем и LAN, используемое компанией, сотрудникам которой требуется подключение к частной сети из различных удаленных мест. Как правило, корпорация при создании большой сети VPN удаленного доступа в некоторой форме предоставляет своим пользователям учетную запись удаленного подключения через Интернет с помощью поставщика услуг Интернета. После этого удаленные пользователи могут набрать номер 1-800 для выхода в Интернет и использовать свое клиентское ПО VPN для доступа к корпоративной сети. Наглядным примером компании, нуждающейся в сети VPN удаленного доступа, может служить большая фирма, в штате которой сотни торговых агентов, находящихся в разных местах. Сети VPN удаленного доступа обеспечивают безопасное соединение с шифрованием между частной сетью компании и удаленными пользователями через стороннего поставщика услуг.
-
Сеть-сеть—Используя специализированное оборудование и крупномасштабное шифрование, компания может объединить множество фиксированных узлов через сеть общего пользования, например Интернет. Каждому узлу требуется только локальное подключение к той же общедоступной сети — это позволяет не тратить средства на протяженные частные выделенные линии. Сети VLAN типа «сеть-сеть» можно еще разделить на интрасети и экстрасети. Сеть VLAN типа «сеть-сеть», проложенную между офисами одной компании, называют интрасетью VPN, а проложенную для соединения компании со своим партнером или клиентом, называют экстрасетью VPN.
Эффективно спроектированная сеть VLAN может обеспечить компании значительные преимущества. Например:
-
Расширение взаимодействия между различными географическими регионами
-
Уменьшение эксплуатационных расходов по сравнению с традиционными WAN
-
Сокращение транзитного времени и дорожных расходов для удаленных пользователей
-
Повышение производительности
-
Упрощение топологии сети
-
Обеспечение возможности взаимодействия через глобальную сеть
-
Обеспечение поддержки удаленных сотрудников
-
Более быстрая отдача на инвестиции (ROI) по сравнению с традиционной WAN
Возможности, которые должна предоставлять эффективно спроектированная VPN Сеть VPN должна обладать следующим:
-
Безопасность
-
Надежность
-
Масштабируемость
-
Управление сетью
-
Управление политиками
Аналогия: каждая ЛВС как остров
Представьте, что вы живете на острове посреди огромного океана. Вокруг вас разбросаны тысячи других островов, одни из них находятся ближе другие дальше. Обычный способ перемещения — это воспользоваться переправой между вашим островом и тем островом, куда нужно попасть. Перемещение переправой означает, что у вас практически отсутствует секретность. Все что вы делаете может увидеть кто-либо другой.
Проведем следующую аналогию: каждый остров представляет частную LAN, а океан — это Интернет. Перемещение переправой аналогично подключению к веб-серверу или другому устройству через Интернет. Вы не контролируете провода и маршрутизаторы, составляющие Интернет, это подобно отсутствию контроля над другими людьми, находящимися на средстве переправы. Это оставляет вас беззащитным перед проблемами с безопасностью при попытке установить соединение между двумя частными сетями, используя общий ресурс.
Ваш остров решает навести мост с другим островом, чтобы появился более легкий, безопасный и прямой путь для перемещения людей между островами. Наведение и содержание моста — дорогостоящая процедура, даже если эти острова находятся на очень близком расстоянии один от другого. Однако потребность в надежном и безопасном пути настолько велика, что вы решаетесь на этот шаг. Ваш остров хотел бы соединиться со вторым островом, который находится гораздо дальше первого, но вы решаете, что это слишком дорого.
Возникновение такой ситуации очень вероятно при использовании выделенной линии. Мосты (выделенные линии) отделены от океана (Интернет) и при этом они способны соединять острова (LAN). Многие компании выбрали этот путь из-за потребности в безопасной и надежной связи между своими удаленными офисами. Однако, если офисы находятся на очень большом расстоянии один от другого, стоимость может оказаться чрезмерно высокой — это подобно ситуации, когда нужно возводить очень длинный мост.
Какое место VPN занимает в этой аналогии? Каждому обитателю таких островов можно предоставить свою собственную небольшую подводную лодку, обладающую следующими свойствами.
-
Быстрота.
-
Легкое управление в нужном направлении.
-
Полная невидимость для остальных средств переправы и подводных лодок.
-
Надежность.
-
После приобретения первой подводной лодки, стоимость приобретения дополнительных субмарин становится небольшой.
Хотя они плавают в океане вместе с остальными лодками, обитатели двух островов могут перемещаться туда и обратно в любое время, сохраняя секретность и безопасность. Именно в этом и заключается сущность функционирования VPN. Каждый удаленный пользователь вашей сети может взаимодействовать безопасным и надежным способом, используя Интернет в качестве среды для подключения к частной LAN. VPN гораздо легче расширяется добавлением новых пользователей и различных расположений чем выделенная линия. На самом деле, масштабируемость — это основное преимущество VPN в сравнении с типичными выделенными линиями. В отличие от выделенных линий, где стоимость возрастает прямо пропорционально протяженности соединения, географическое расположение каждого офиса имеет меньшее значение при создании VPN.
Перемещение сертификатов и ключей
Сервер
Ключи и сертификаты созданы. Настало время раздать их пользователям, а серверные ключи скопировать в соответствующие каталоги на сервере.
1. Переходим в каталог с ключами:
2. Копируем только необходимые серверу файлы:
Важно понимать, что перечисленные выше файлы являются основой работы и безопасности VPN сервера. Утеря или подмена этих файлов может иметь крайне негативные последствия
Важно хранить их в надежном месте и не передавать по открытым каналам связи.
Клиенты
Клиенту понадобится всего 3 файла ca.crt, client1.crt, client1.key. Каждому клиенту необходимо отдавать только его ключи. Данные файлы можно разместить в директории /etc/openvpn на машине клиента, если она под управлением Linux-подобной ОС.
В ОС Windows их следует разместить в пользовательский каталог.
Перемещение сертификатов и ключей
Сервер
Ключи и сертификаты созданы. Настало время раздать их пользователям, а серверные ключи скопировать в соответствующие каталоги на сервере.
1. Переходим в каталог с ключами:
2. Копируем только необходимые серверу файлы:
Важно понимать, что перечисленные выше файлы являются основой работы и безопасности VPN сервера. Утеря или подмена этих файлов может иметь крайне негативные последствия
Важно хранить их в надежном месте и не передавать по открытым каналам связи.
Клиенты
Клиенту понадобится всего 3 файла ca.crt, client1.crt, client1.key. Каждому клиенту необходимо отдавать только его ключи. Данные файлы можно разместить в директории /etc/openvpn на машине клиента, если она под управлением Linux-подобной ОС.
В ОС Windows их следует разместить в пользовательский каталог.
Настройка выхода в интернет с IP сервера
Если ваши цели были — только организовать VPN сеть или соединится с изолированной сетью (например из дома с локальной сетью на работе), то эта часть статьи вам не нужна.
Настройки сервера
Если же вы хотите организовать доступ из VPN сети в интернет с IP адреса сервера, то вам нужно настроить на сервере NAT.
Сделать это можно следующей командой (на сервере):
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Здесь мы указали, что сеть 10.8.0.0/24 будет выходить наружу через интерфейс eth0.
Для того что бы настройки iptables сохранились после перезагрузки нужно их дополнительно сохранить:
iptables-save > /etc/iptables.up.rules echo "pre-up iptables-restore < /etc/iptables.up.rules" >> /etc/network/interfaces
Создание инфраструктуры конфигурации клиента
В этом руководстве мы создадим отдельный сертификат SSL и сгенерируем отдельный файл конфигурации для каждого клиента VPN.
Клиентский закрытый ключ и запрос сертификата могут быть сгенерированы либо на клиентском компьютере, либо на сервере. Для простоты мы сгенерируем запрос сертификата на сервере, а затем отправим его в ЦС для подписи.
Весь процесс создания сертификата клиента и файла конфигурации выглядит следующим образом:
- Сгенерируйте закрытый ключ и запрос сертификата на сервере OpenVPN.
- Отправьте запрос на компьютер CA для подписания.
- Скопируйте подписанный сертификат SSL на сервер OpenVPN и сгенерируйте файл конфигурации.
- Отправьте файл конфигурации на компьютер VPN-клиента.
Начнем с создания набора каталогов для хранения файлов клиентов:
- каталоге будут храниться базовые файлы и конфигурация, которые будут использоваться всеми клиентскими файлами.
- каталоге будет храниться сгенерированная конфигурация клиента.
- каталоге будет храниться пара сертификатов и ключей для конкретного клиента.
Скопируйте файлы и :
Затем скопируйте образец файла конфигурации VPN-клиента в каталог client- . Мы будем использовать этот файл в качестве базовой конфигурации:
Теперь нам нужно отредактировать файл, чтобы он соответствовал настройкам и конфигурации нашего сервера. Откройте файл конфигурации в текстовом редакторе:
-
Найдите удаленную директиву и замените заполнитель по умолчанию на общедоступный IP-адрес вашего сервера OpenVPN:
~ / OpenVPN-клиенты / база / client.conf
-
Найдите и прокомментируйте директивы , и . Сертификаты и ключи будут добавлены в файл конфигурации:
~ / OpenVPN-клиенты / база / client.conf
-
Добавьте следующую строку в конец файла, чтобы она соответствовала настройкам сервера:
~ / OpenVPN-клиенты / база / client.conf
Когда вы закончите, файл конфигурации сервера должен выглядеть примерно так:
~/openvpn-clients/base/client.conf
Затем создайте простой сценарий bash, который объединит базовую конфигурацию и файлы с сертификатом и ключом клиента и сохранит сгенерированную конфигурацию в каталоге .
Откройте текстовый редактор и создайте следующий скрипт:
~/openvpn-clients/gen_config.sh
Сохраните файл и сделайте его исполняемым, выполнив следующую команду :
Первый запуск
При первом запуске графического инструмента fly-admin-openvpn-server будет создана конфигурация по умолчанию, и будут выпущены сертификаты сервера.
Выполнение этой операции может занять продолжительное время, поэтому пользователю будет показано диалоговое окно с уведомлением и предложением подождать.
ВАЖНО! Графический инструмент не производит автоматический запуск сервиса openvpn, так как предполагается, что пользователь может захотеть внести в созданную конфигурацию свои изменения. Для запуска сервиса openvpn после создания и редактирования конфигурации следует нажать кнопку «Запустить»
При первом запуске будут выполнены следующие операции:
-
будет автоматически создан файл конфигурации сервиса, содержащий достаточные для запуска сервиса настройки;
-
будет создан локальный удостоверяющий центр и выпущены необходимые для работы сертификаты;
-
будут созданы необходимые для работы сервиса файлы;
-
в случае, если на компьютере установлены и настроены библиотеки, поддерживающие матод защитного преобразования по алгоритму ГОСТ Р 34.12-2015 («Кузнечик») , для защиты канала данных openvpn будет выбран этот метод. В противном случае будет выбран метод защитного преобразования AES-256-GCM;
-
будут выполнены настройки сетевого файрволла, и другие настройки операционной системы для работы openvpn как системного сервиса.
При этом, сервис openvpn будет настроен как стандартный системный сервис с автоматических запуском при включении компьютера.
Настройка OpenVPN
Начните с копирования файлов в директорию OpenVPN. Скопировать нужно будет все файлы, которые позже понадобятся в конфигурационной директории /etc/openvpn.
Начать лучше с тех файлов, которые были созданы ранее (о них можно прочитать в предыдущей статье): они были помещены в директорию ~/openvpn-ca/keys. Конкретные файлы, которые нужно будет переместить: сертификат и ключ центра сертификации, сертификат сервера и ключ, а также подпись HMAC и файл протокола Диффи — Хеллмана. Используйте команды ниже:
$ cd ~/openvpn-ca/keys $ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
Теперь необходимо скопировать и разархивировать пример конфигурационного файла OpenVPN в конфигурационную директорию. Нужно это для того, чтобы использовать этот пример как базу для последующих настроек. Выполните команду:
$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
Переходим к настройке конфигурации OpenVPN. Для этого нужно открыть конфигурационный файл сервера:
$ sudo nano /etc/openvpn/server.conf
Базовая конфигурация
Вам нужно найти директиву tls-auth для того, чтобы, в свою очередь, найти секцию HMAC. Удалите знак точки с запятой (;) для того, чтобы раскомментировать строку tls-auth. А ниже добавьте параметр key-direction со значением 0:
tls-auth ta.key 0 # This file is secret key-direction 0
Следующая задача – найти секцию с криптографическим шифром, и для этого вам нужно найти закомментированные строки cipher. Шифр AES-128-CBC имеет хороший уровень защиты и отличную поддержку разными продуктами. Удалите точку с запятой для того, чтобы раскомментировать строку cipher AES-128-CBC:
cipher AES-128-CBC
Ниже добавьте строку auth для того, чтобы указать алгоритм хеширования HMAC. SHA256 прекрасно подойдет, т.к. в этом случае допускается использование ключей любого размера, а длина хеш-последовательности будет составлять 256 бит.
auth SHA256
Наконец, найдите настройки user и group и все так же удалите точку с запятой для того, чтобы раскомментировать их:
user nobody group nogroup
Как использовать VPN для всего трафика
Если вы хотите, чтобы для передачи всего трафика между двумя машинами по умолчанию использовался VPN, то вам нужно передать настройки DNS на клиентские компьютеры.
Надо раскомментировать несколько директив для того, чтобы клиентские машины по умолчанию перенаправляли весь трафик через VPN. Найдите секцию redirect-gateway и удалите знак точки с запятой:
push "redirect-gateway def1 bypass-dhcp"
Теперь найдите секцию dhcp-option и точно так же раскомментируйте обе строки:
push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Теперь клиенты смогут настроить DNS так, чтобы VPN использовался в качестве канала по умолчанию.Как изменить порт и протокол
Это еще одна необязательная, но полезная настройка, которая может вам понадобиться. По умолчанию OpenVPN использует порт 1194 и UDP протокол для того, чтобы принимать клиентские соединения. Возможно, вам надо будет изменить порт, если вы столкнетесь с какими-нибудь ограничениями.
Сделать это можно в строке port в файле /etc/openvpn/server.conf. Например, вы можете изменить порт на 443, так как обычно он разрешен для использования большинством фаерволов.
# Optional! port 443
Если протокол, который вы используете, имеет ограничения по номеру порта, то в строке proto вам нужно изменить UDP на TCP:
# Optional! proto tcp
Однако если необходимости использовать какие-то другие порты и протоколы у вас нет, то лучше оставить те значения, которые идут по умолчанию.
Настройка клиента
Для установки OpenVPN-клиента выполните:
emerge openvpn
Подготовка ключей и сертификатов
Создайте директорию сертификатов:
mkdir /etc/openvpn/keys
Скопируйте созданные ранее PKI-ключи и сертификаты. Если клиент OpenVPN находится на той же машине, где создавались ключи, выполните:
cp /var/calculate/easy-rsa/pki/ca.crt /etc/openvpn/keys/
cp /var/calculate/easy-rsa/pki/issued/client.crt /etc/openvpn/keys/
cp /var/calculate/easy-rsa/pki/private/client.key /etc/openvpn/keys/
cp /var/calculate/easy-rsa/pki/ta.key /etc/openvpn/keys/
Настройка клиента
Отредактируйте файл настроек OpenVPN-клиента следующим образом:
/etc/openvpn/openvpn.conf
client # протокол, устройство, метод сжатия proto udp dev tun compress lzo # удалённый сервер, порт remote vpn.domain.org 1194 # оставлять без изменений устройство и файлы ключей при перезапуске туннеля persist-tun persist-key remote-cert-tls server # ключи и сертификаты ca keys/ca.crt cert keys/client.crt key keys/client.key tls-auth keys/ta.key 1 # лог status /var/log/openvpn-status.log
Вместо впишите сетевое имя вашего VPN-сервера.
OpenVPN 3 Linux Client
The OpenVPN 3 Linux project is a new client built on top of the OpenVPN 3 Core Library. This client is the official OpenVPN Linux Client program. You can find an overview of the features, frequently asked questions, and instructions on installing the openvpn3 package on our OpenVPN 3 for Linux site.
After following the instructions there to install the client, you’ll need a connection profile. This is a file generated by your OpenVPN Access Server installation for your specific user account. It contains the required certificates and connection settings. Go to the Client web interface of your Access Server (the main address, not the /admin portion). Log in with your user credentials. You will be shown a list of files available to download. Pick the user-locked profile or the auto-login profile, and you will be sent a client.ovpn file. Save this file to your Linux operating system.
Once you’ve moved the file to your Linux system, you can import it.
You can start a new VPN session:
You can manage a running VPN session:
And so on. More details can be found here: OpenVPN3Linux.
Step 11: Generate Client Configurations
Now, we can easily generate client configuration files.
If you followed along with the guide, you created a client certificate and key called and respectively by running the command in step 6. We can generate a config for these credentials by moving into our directory and using the script we made:
If everything went well, we should have a file in our directory:
Transferring Configuration to Client Devices
We need to transfer the client configuration file to the relevant device. For instance, this could be your local computer or a mobile device.
While the exact applications used to accomplish this transfer will depend on your choice and device’s operating system, you want the application to use SFTP (SSH file transfer protocol) or SCP (Secure Copy) on the backend. This will transport your client’s VPN authentication files over an encrypted connection.
Here is an example SFTP command using our client1.ovpn example. This command can be run from your local computer (OS X or Linux). It places the file in your home directory:
Here are several tools and tutorials for securely transferring files from the server to a local computer:
- WinSCP
- How To Use SFTP to Securely Transfer Files with a Remote Server
- How To Use Filezilla to Transfer and Manage Files Securely on your VPS
Подготовка Ubuntu
Обновляем установленные пакеты:
apt-get update && apt-get upgrade
Устанавливаем утилиту для синхронизации времени:
apt-get install chrony
Разрешаем ее автозапуск и стартуем сервис:
systemctl enable chrony —now
Установим правильную временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере московское время.
Если в нашей системе используется брандмауэр, открываем порт, на котором будет слушать OpenVPN:
iptables -I INPUT -p udp —dport 443 -j ACCEPT
* в данной инструкции предполагается, что мы настроим VPN-сервер на UDP-порту 443, однако, по-умолчанию, OpenVPN работает на порту 1194.
Для сохранения правила используем iptables-persistent:
apt-get install iptables-persistent
netfilter-persistent save
Установка EasyRSA на сервер центра сертификации
Easy-rsa — это утилита CLI для создания и управления центром сертификации PKI. Easy-RSA будет использоваться сервером ЦС для генерации закрытого ключа и открытого корневого сертификата. Которые будут использоваться для подписи запросов от клиентов и серверов, а так же будет полагаться на наш сервер центра сертификации.
Чтобы установить easy-rsa, загрузите инструмент управления PKI с github. Это можно сделать с помощью wget команды:
Затем распакуйте файл tgz:
Чтобы ограничить доступ только для пользователя, используйте:
Теперь переместите EasyRSA в каталог
Для этой конфигурации мы будем использовать версию EasyRSA 3.0.8.
Включение службы автозапуска Linux OpenVPN
Введите следующие команды на своем терминале:
Консоль должна отображать:
Введите эти команды на своем терминале:
Они должны выполняться без проблем. Кроме того, вы можете проверить журналы вашего сервиса с помощью этой команды:
Это позволит вам определить, правильно ли установлен туннель или нет. После того, как вы проверили эти вещи, пришло время увидеть внешний IP-адрес вашего устройства. Вы можете использовать это превосходное руководство по поиску IP-адресов в командной строке в Linux или выполнить следующую команду для менее сложного ответа:
Перезагрузите устройство, чтобы убедиться, что функция автозапуска Linux OpenVPN работает правильно. Это оно! Вы закончили обучение, чтобы успешно настроить автозапуск OpenVPN-соединения с Linux! Вам все еще нужен совет по использованию VPN? Если вы используете систему Windows, возможно, будет лучше, если вы воспользуетесь нашим руководством о том, как настроить автоматическое подключение OpenVPN в Windows 10. Вы также можете использовать провайдеров, таких как IPVanish, и упростить задачу. Установите IPVanish OpenVPN в Linux Mint 18 или просто установите IPVanish в Ubuntu, чтобы обеспечить безопасность работы на этих платформах. Получите доступ к геоблокированному контенту и обеспечьте безопасность своего просмотра уже сегодня!
Источник записи: https://www.smarthomebeginner.com
Создание сертификатов
Новая версия OpenVPN позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Наши действия будут различаться в зависимости от данной версии. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2.
а) Создание сертификатов с RSA 3
1. Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.
2. После переходим в папку C:\Program Files\OpenVPN\easy-rsa, переименовываем файл vars.bat.example в vars.bat, открываем его на редактирование и правим одну строку:
set_var EASYRSA_TEMP_DIR «$EASYRSA_PKI/temp»
* мы снимаем комментарий и добавляем temp в конце $EASYRSA_PKI. Если это не сделать, то при попытке сформировать корневого сертификата мы получим ошибку Failed create CA private key.
3. Запускаем командную строку от имени администратора:
4. Переходим в каталог easy-rsa:
cd %ProgramFiles%\OpenVPN\easy-rsa
5. Запускаем команду:
EasyRSA-Start.bat
Мы окажемся в среде EasyRSA Shell.
6. Инициализируем PKI:
./easyrsa init-pki
Мы должны увидеть:
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki
7. Генерируем корневой сертификат (CA):
./easyrsa build-ca
… после ввода Enter обязательно задаем пароль дважды. На запрос ввести Common Name можно просто нажать ввод или написать свое имя:
Common Name (eg: your user, host, or server name) :
8. Создаем ключ Диффи-Хеллмана:
./easyrsa gen-dh
9. Для создания сертификата сервера необходимо сначала создать файл запроса:
./easyrsa gen-req cert nopass
* на запрос ввода Common Name просто вводим Enter.
… и на его основе — сам сертификат:
./easyrsa sign-req server cert
После ввода команды подтверждаем правильность данных, введя yes:
Confirm request details: yes
… и вводим пароль, который указывали при создании корневого сертификата.
10. Для создания ta ключа используем команду:
openvpn —genkey —secret pki/ta.key
11. Сертификаты сервера готовы и находятся в каталоге pki. Переносим в C:\Program Files\OpenVPN\ssl следующие файлы:
- ca.crt
- issued/cert.crt
- private/cert.key
- dh.pem
- ta.key
б) Создание сертификатов с RSA 2
1. Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.
2. После переходим в папку C:\Program Files\OpenVPN\easy-rsa, создаем файл vars.bat, открываем его на редактирование и приводим к следующему виду:
* в каталоге easy-rsa уже есть файл vars.bat.sample — можно переименовать и использовать его.
** значение HOME не меняем, если оставили путь установки программы по умолчанию; KEY_DIR — каталог, куда будут генерироваться сертификаты; KEY_CONFIG может быть разным — его лучше посмотреть в файле vars.bat.sample или по названию соответствующего файла в папке easy-rsa; KEY_NAME желательно, чтобы соответствовал полному имени VPN-сервера; остальные опции можно заполнить произвольно.
3. Запускаем командную строку от имени администратора:
4. Переходим в каталог easy-rsa:
cd %ProgramFiles%\OpenVPN\easy-rsa
4. Запускаем vars.bat:
vars.bat
5. Чистим каталоги от устаревшей информации:
clean-all.bat
* данная команда выполняется один раз, когда на сервере нет информации по ранее созданным сертификатам.
6. Снова запускаем vars.bat (после clean переопределяются некоторые переменные):
vars.bat
Переходим к созданию ключей.
7. Генерируем последовательность центра сертификации:
build-ca.bat
На все запросы нажимаем Enter.
8. Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):
openssl dhparam -out keys\dh.pem 2048
* команда может выполняться долго — это нормально.
9. Генерируем сертификат для сервера:
build-key-server.bat cert
* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
10. После переносим из папки C:\Program Files\OpenVPN\easy-rsa\keys в C:\Program Files\OpenVPN\ssl следующие файлы:
- ca.crt
- cert.crt
- cert.key
- dh.pem
Optional Commands
- To list all available configuration profiles, run this command: . Important: a configuration file typically contains generic options to be able to connect to a specific server, regardless of the device itself. OpenVPN 3 Linux also supports setting more host-specific settings on a configuration profile as well. This is handled via the `openvpn3 config-manage` interface. Any settings here will also be preserved across boots if the configuration profile was imported with the argument.
- Note that it is possible to use the D-Bus path to the configuration profile: . Note: in either of these cases is it necessary to have access to the configuration profile on disk. As long as configuration profiles are available via , all needed to start a VPN session should be present.