Установите плагин OpenVPN Client, чтобы сгенерировать конфигурацию.
Хотя OpenVPN по умолчанию устанавливается в pfSense, либо в его серверном, либо в клиентском режиме, у нас нет предустановленного пакета, который позволяет нам автоматически генерировать конфигурацию для клиентов. Если мы перейдем в диспетчер пакетов в «Система / Диспетчер пакетов» и перейдем на вкладку «Доступные пакеты», мы сможем установить пакет «OpenVPN-client-export», который позволит нам выполнить именно это действие, что значительно облегчит конфигурация клиентов, импортирующая конфигурацию сервера с соответствующими цифровыми сертификатами.
После установки мы будем готовы перейти к следующему шагу — созданию цифровых сертификатов.
Сценарий использования (начальная настройка)
Пользователь хочет безопасно соединиться с OpenWrt маршрутизатором. На данный момент пользователь уже может получить доступ к OpenWrt маршрутизатору, но через внешнюю сеть, такую как Интернет. Конечным результатом станет прямое частное соединение между OpenVPN клиентом и сервером. В основном это будет выглядеть так, будто OpenVPN клиент находится в подсети маршрутизатора(но не в той подсети, которая является для маршрутизатора внешней).
Это руководство описывает 3 файла конфигурации для OpenVPN:
Стандартный (TUN) Сервер: Простейший вид OpenVPN сервера, Клиенты управляются исключительно OpenVPN, им также может быть выделена отдельная подсеть.
Сервер в режиме моста (TAP) : Также может называться “ethernet-bridge”. Эта конфигурация создаст виртуальный ethernet кабель между сервером и клиентом. Это означает что OpenVPN клиенты будут такими же участниками подсети, как и те которые подключены к маршрутизатору физически. IP-адреса им будет раздавать DHCP-сервер.
Клиент: OpenVPN будет работать в режиме клиента и соединится с OpenVPN сервером.
Следует отметить, что TAP это не синоним сетевого моста, тем не менее TAP адаптер нужен для сетевого моста, в то же время рекомендуется использовать TUN, если не нужен сетевой мост. Для простоты мы будем использовать эти термины как взаимозаменяемые, так как сравнение терминов “сервер” и “сервер-мост” может привести к путанице. TUN будет использоваться для обозначения традиционного сервера, в то время как TAP будет относиться к “серверу-мосту”.
Можно настраивать OpenVPN на OpenWrt удалённо. Однако рекомендуется делать это локально, так как это упростит поиск и устранение неисправностей.
TUN сервер расходует меньше ресурсов и только отсылает трафик, предназначенный только для клиента. В то время, как TAP сервер менее эффективный и отсылает клиентам широковещательный трафик.
TUN сервер может использовать ту же подсеть, что и сервер DHCP, если это требуется, однако рекомендуется выделять диапазон IP-адресов для TUN сервера за пределами диапазона DHCP, иначе могут возникнуть IP конфликты (один IP-адрес будет использоваться как DHCP, так и TUN сервером для двух разных клиентов).
Для TUN сервера легче настроить безопасность, так как его клиенты могут находиться в отдельной подсети, которая может легко контролироваться межсетевым экраном. Благодаря тому, что клиентам в данном режиме не отсылается широковещательная информация, злоумышленник не сможет получить доступ к большому объёму данных.
Сервер TAP объединяет клиентов в сеть более бесшовной образом, это может упростить процесс настройки различных сетевых приложений
Обратите внимание на то, что независимо от выбранного метода, создание правил межсетевого экрана имеет более важное значение безопасности, чем выбор между TUN и TAP сервером.. При использовании TAP сервера рекомендуется изменить маску подсети на отличную от 192.168..XXX или 192.168.1.XXX. Они очень распространены и приведут к конфликтам в маршрутизации
Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1
Они очень распространены и приведут к конфликтам в маршрутизации. Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1
При использовании TAP сервера рекомендуется изменить маску подсети на отличную от 192.168..XXX или 192.168.1.XXX. Они очень распространены и приведут к конфликтам в маршрутизации. Это обычно может быть достигнуто путём изменения IP-адреса OpenWrt/OpenVPN маршрутизатора к чему-то наподобие 192.168.7.1
Как разделить туннель на томатных роутерах
У Tomato нет встроенной маршрутизации на основе политик, как DD-WRT, поэтому вы в значительной степени застряли с использованием IPTables для выполнения своей работы. На панели инструментов Tomato, когда ваше соединение OpenVPN уже установлено и работает, это пример того, как включить выборочную маршрутизацию..
Перейти к администрация > Сценарии > Межсетевой экран и добавьте эти команды:
iptables -I FORWARD -i br0 -o tun11 -j ПРИНЯТЬ iptables -I FORWARD -i tun11 -o br0 -j ПРИНЯТЬ iptables -I INPUT -i tun11 -j ОТКЛОНИТЬ iptables -t nat -A POSTROUTING -o tun11 -j MASQUERADE
Перейдите на вкладку «WAN Up» и добавьте эти команды, заменив >ИСТОЧНИК IP-АДРЕС< с локальным IP-адресом устройства, которое вы хотите маршрутизировать через VPN:
спать 30 ip route flush table 200 ip route flush cache IP правило добавить из >ИСТОЧНИК IP-АДРЕС< поиск 200 VPN_GW = `ifconfig tun11 | awk ‘/ inet addr / {split ($ 2, A,»:»); печать A } ‘` ip route добавить таблицу 200 по умолчанию через $ VPN_GW dev tun11
На левой боковой панели перейдите к VPN-туннелирование > OpenVPN Client. В конфигурации клиента OpenVPN перейдите к продвинутый. Под Пользовательская конфигурация, добавьте эту команду:
Маршрут-nopull
Туннельный Сплит Паулио Джорджио, лицензированный по CC BY 2.0
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
Настройка сервера
Переходим в папку C:\Program Files\OpenVPN\config-auto (или для старой версии C:\Program Files\OpenVPN\config) и создаем файл server.ovpn. Открываем его на редактирование и приводим к следующему виду:
port 443
proto udp
dev tun
dev-node «VPN Server»
dh «C:\\Program Files\\OpenVPN\\ssl\\dh.pem»
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\ssl\\cert.crt»
key «C:\\Program Files\\OpenVPN\\ssl\\cert.key»
server 172.16.10.0 255.255.255.0
max-clients 32
keepalive 10 120
client-to-client
compress
ncp-disable
fast-io
cipher AES-256-CBC
persist-key
persist-tun
status «C:\\Program Files\\OpenVPN\\log\\status.log»
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
verb 4
mute 20
* где port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1194, занятые порты в Windows можно посмотреть командой netstat -a); dev-node — название сетевого интерфейса; server — подсеть, в которой будут работать как сам сервер, так и подключенные к нему клиенты.
** так как в некоторых путях есть пробелы, параметр заносится в кавычках.
*** при использовании другого порта необходимо проверить, что он открыт в брандмауэре или на время тестирования отключить его.
В сетевых подключениях Windows открываем управление адаптерами — TAP-адаптер переименовываем в «VPN Server» (как у нас указано в конфигурационном файле, разделе dev-node):
Теперь открываем службы Windows и находим «OpenVpnService». Открываем ее, настраиваем на автозапуск и включаем:
Ранее переименованный сетевой интерфейс должен включиться:
VPN-сервер работает. Проверьте, что сетевой адаптер VPN Server получил IP 172.16.10.1. Если он получает что-то, на подобие, 169.254…, выключаем сетевой адаптер — перезапускаем службу OpenVpnService и снова включаем сетевой адаптер.
Правила для IPTABLES.
Для того что-бы это все работало, в фаерволе (iptables), если он используется, нужно разрешить трафик. Пример куска моего скрипта настройки, касающегося openvpn:
#!/bin/bash
###################################################
# Переменные
###################################################
#указываем внешний ip сервера и внешн. сетевой интерфейс
INET_IP1=195.239.136.ххх
INET_IFACE1=eth2
# указываем внутренний ip сервера и внутр. сетевой интерфейс
LAN_IP=10.10.10.4
LAN_IFACE=eth0
# указываем сетевой интерфейс VPN, и сеть, ему принадлежащую
VPN_IFACE=tun0
VPN_RANGE=10.8.0.0/24
# внутренняя сеть
LAN_RANGE=10.10.10.0/24
# сетевой интерфейс петли и ip
LO_IFACE=lo
LO_IP=127.0.0.1
###################################################
#OpenVPN
###################################################
# разрешаем трафик между локальной сетью и VPN
# (необходимо для возможности доступа к серверу по внутреннему ip. c клиента)
$ip -A FORWARD -p all -i $LAN_IFACE -o $VPN_IFACE -j ACCEPT
$ip -A FORWARD -p all -o $LAN_IFACE -i $VPN_IFACE -j ACCEPT
# разрешаем входящий и исходящий трафик для vpn-интерфейса
# (необходимо для возможности установки vpn соединения)
$ip -A INPUT -p all -i $VPN_IFACE -j ACCEPT
$ip -A OUTPUT -p all -o $VPN_IFACE -j ACCEPT
# разрешаем icmp пакеты через vpn
# (необходимо для пинга)
$ip -A INPUT -p icmp -m icmp -i $VPN_IFACE —icmp-type echo-request -j ACCEPT
$ip -A OUTPUT -p icmp -m icmp -o $VPN_IFACE —icmp-type echo-request -j ACCEPT
$ip -A FORWARD -p icmp -m icmp -i $VPN_IFACE -o $LAN_IFACE —icmp-type echo-request -j ACCEPT
$ip -A FORWARD -p icmp -m icmp -o $VPN_IFACE -i $LAN_IFACE —icmp-type echo-request -j ACCEPT
$ip -A INPUT -p icmp -m icmp -i $VPN_IFACE —icmp-type echo-reply -j ACCEPT
$ip -A OUTPUT -p icmp -m icmp -o $VPN_IFACE —icmp-type echo-reply -j ACCEPT
$ip -A FORWARD -p icmp -m icmp -i $VPN_IFACE -o $LAN_IFACE —icmp-type echo-reply -j ACCEPT
$ip -A FORWARD -p icmp -m icmp -o $VPN_IFACE -i $LAN_IFACE —icmp-type echo-reply -j ACCEPT
Установка и настройка сервера Openvpn
Давайте перейдем ко второму серверу, чтобы установить и настроить openvpn. Вам также потребуется создать некорневого пользователя на этом сервере и предоставить ему соответствующие привилегии.
Чтобы установить openvpn на ubuntu, выполните следующие команды:
На сервере openvpn утилита easyrsa будет использоваться для генерации запроса сертификата, который будет проверен и подписан сервером центра сертификации (ЦА). Выполните те же действия, что и в предыдущем разделе, чтобы установить Easyrsa.
Теперь распакуйте загруженный файл tgz:
Ограничьте доступ только пользователю:
Переместите EasyRSA-3.0.8 в каталог:
Замена шлюза по-умолчанию для маскировки всего трафика
Настройка на сервере для клиента, которая указывает заменять шлюз по-умолчанию, на микротике не работает. Если указать в настройках openvpn сервера галочку на параметре Add Default Route, то тоже ничего работать не будет. Просто не будет пускать в интернет. Хотя для меня это было не понятно. По идее, это как раз то, что нужно. Не могу сейччас привести скриншот маршрутов, коотрые будут прописаны, если установить эту галку. Я пишу статью, подключившись к роутеру удаленно, скрин сделать не могу, потеряю доступ.
Я могу привести только гарантированно работающий вариант. Сейчас расскажу смысл проделанного и приведу список маршрутов, которые добавил.
- Первым делом создаем маршрут до openvpn сервера с Distance 1.
- Маршуруту по-умолчанию, который обеспечивает доступ в интернет через usb модем, назначаем Distance 2.
- Создаем новый маршрут по-умолчанию с Distance 1, где в качестве шлюза указано openvpn подключение.
После этого вы будете иметь доступ в интернет через usb модем напрямую, если openvpn client будет отключен. После подключения vpn клиента к серверу, стандартный маршрут становится неактивным, а по-умолчанию становится новый маршрут со шлюзом в качестве vpn соединения. Весь ваш трафик будет замаскирован vpn соединением и пойдет через openvpn сервер.
0.0.0.0/0 | 192.168.8.1 | Стандартный маршрут по-умолчанию, когда не подключен openvpn |
0.0.0.0/0 | ovpn-out1 | Маршрут по-умолчанию через vpn сервер |
10.8.0.0/24 | 10.8.0.21 | Автоматически создаваемый маршрут для подссети vpn тоннелей |
10.8.0.21 | ovpn-out1 | То же самое, автоматически создаваемый маршрут |
94.142.141.246 | 192.168.8.1 | Маршрут к openvpn server через usb модем |
192.168.7.0/24 | bridge1 | Маршурт для локальной сети, создается автоматически |
192.168.8.0/24 | lte1 | Маршрут до usb модема, создается автоматически |
- 192.168.8.1 — адрес usb модема, 192.168.8.100 — адрес микротика на lte интерфейсе, к которому подключен модем
- 192.168.7.1 — адрес микротика в локальной сети
- 10.8.0.21 — адрес vpn тоннеля для данного клиента, адрес самого клиента при этом 10.8.0.22
- 94.142.141.246 — openvpn server
Когда будете настраивать, не забудте включить NAT на openvpn интерфейсе, так же как у вас он настроен на основном.
Настраиваем сервер (создаем файл-конфиг и заполняем его):
touch /etc/openvpn/server.conf
nano /etc/openvpn/server.conf
port 17993 # порт, на котором будет слушать сервер
proto tcp # протокол (по умолчанию udp)
dev tun # тип устройства (tun или tap)
############################ KEYS #######################################
tls-server # явно указывает, что данный хост является tls-server
tls-auth keys/ta.key 0 # 0-сервер , 1- для конфига клиента
ca /etc/openvpn/keys/ca.crt # файл сертификата для CA
cert /etc/openvpn/keys/gate.crt # сертификат сервера
key /etc/openvpn/keys/gate.key # ключ сервера
dh /etc/openvpn/keys/dh1024.pem # файл с ключем Диффи-Хелмана
########################## END KEYS #####################################
# автоматически присваивает адреса всем клиентам (DHCP) в указанном
# диапазоне с маской сети. Данная опция заменяет ifconfig и может
# работаеть только с TLS-клиентами в режиме TUN, соответственно
# использование сертификатов обязательно.
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов
push «route 10.10.10.0 255.255.255.0» # передача клиенту маршрута к сетке,
# в которой сервер.
# каждые 10 секунд посылать ping на удаленный хост, и, если за 60 секунд
# не было получено ни одного пакета — то перезапускать туннель.
keepalive 10 60
# параметр сжатия трафика, идущего через виртуальный туннель.
# Может принимать значения yes, no, adaptive.
# Последнее используется по умолчанию.
comp-lzo
# Для улучшения безопасности рекомендовано запускать
# все сервисы с минимальными правами. Openvpn будет работать от имени nobody.
user nobody
group nogroup
persist-key # указывает не перечитавать файлы ключей при перезапуске туннеля
persist-tun # данная опция оставляет без изменения устройства tun/tap
#при перезапуске OpenVPN.
# сервер работает в режиме демона
daemon
############################ LOGS #######################################
status openvpn-status.log # указывает путь к статус-файлу,
# в котором содержится информация о текущих соединениях и
# информация о интерфейсах TUN/TAP
log-append openvpn.log # дописывать сообщения в лог-файл, а не перезаписывать.
verb 4 # уровень логирования
mute 20 # в лог будет записываться только по 20 сообщений из одной категории
########################### END LOGS ####################################
client-to-client # позволяет клиентам видеть друг друга (сети)
client-config-dir /etc/openvpn/ccd # папка содержащая маршруты к сетям
# клиентов и посылаемые клиентам ip адреса клиента и сервера
ccd-exclusive # каждому клиенту свои настройки
management localhost 7505
tun-mtu 1500 # устанавливает максимальный размер MTU
tun-mtu-extra 32
mssfix 1450
# маршруты к сетям клиентов
route 192.168.10.0 255.255.255.0 10.8.0.2
route 192.168.0.0 255.255.255.0 10.8.0.2
route 192.168.2.0 255.255.255.0 10.8.0.2
Создание сертификатов
Если вы создаёте OpenVPN сервер (любого типа), вы должны создать сертификаты безопасности
по нижеприведённым инструкциям. Если вы используете OpenVPN как клиент, требуемые сертификаты должны были быть предоставлены вам с вашими конфигурационными данными.
easyrsa init-pki nopass easyrsa build-ca easyrsa gen-dh easyrsa build-server-full my-server nopass easyrsa build-client-full my-client nopass
Вышеприведённые команды создадут сертификат сервера с именем my-server и сертификат клиента с именем my-client.
Путь сохранения сертификатов и ключей по умолчанию /root/pki.
Вы можете создать несколько клиентских сертификатов, запустив несколько раз и указав разные имена.
Вы можете создать новый набор сертификатов, запустив и те же команды снова.
Базовые параметры VPN
-
Имя подключения. Конечные пользователи видят это имя при просмотре устройства для списка доступных VPN-подключений.
-
Настраиваемые доменные имена (только Zscaler): предустанавлить вход приложения Zscaler в поле с доменом, к который принадлежат пользователи. Например, если имя пользователя есть, домен статически появляется в поле при открываемом приложении. Если вы не введите доменное имя, используется доменная часть upN в Azure Active Directory (AD).
-
Адрес VPN-сервера: IP-адрес или полное доменное имя (FQDN) VPN-сервера, с помощью которого подключаются устройства. Например, введите или .
-
Имя облака организации (только Zscaler): введите имя облака, в котором предусмотрена ваша организация. URL-адрес, который используется для входов в Zscaler, имеет имя.
-
Метод проверки подлинности. Выберите способ проверки подлинности устройств на VPN-сервере.
-
Сертификаты. В сертификате проверки подлинности выберите существующий профиль сертификата SCEP или PKCS для проверки подлинности подключения. Настройка сертификатов содержит некоторые рекомендации по профилям сертификатов.
-
Имя пользователя и пароль. Конечные пользователи должны ввести имя пользователя и пароль для входа на VPN-сервер.
Примечание
Если имя пользователя и пароль используются в качестве метода проверки подлинности для VPN Cisco IPsec, они должны доставить SharedSecret через настраиваемый профиль настраиваемого устройства Apple.
-
Производные учетные данные. Используйте сертификат, полученный с смарт-карты пользователя. Если не настроен производный эмитент учетных данных, Intune подсказает вам добавить один. Дополнительные сведения см. в руб. Использование производныхучетных данных в Microsoft Intune.
-
-
Исключенные URL-адреса (только Zscaler): При под подключении к VPN Zscaler указанные URL-адреса доступны за пределами облака Zscaler.
-
Разделять туннель: включить или отключить, чтобы устройства могли решать, какое подключение использовать, в зависимости от трафика. Например, пользователь в отеле использует VPN-подключение для доступа к файлам работы, но использует стандартную сеть отеля для регулярного просмотра веб-страниц.
-
Идентификатор VPN (Настраиваемый VPN, Zscaler и Citrix): идентификатор для используемой вами VPN-приложения и поставляется поставщиком VPN.
-
Введите пары ключей и значений для пользовательских атрибутов VPN вашей организации (Custom VPN, Zscaler и Citrix): Добавьте или импортируете ключи и значения, настраиваемые для vpn-подключения. Помните, что эти значения обычно поставляются поставщиком VPN.
-
Включить управление сетевым доступом (NAC) (Cisco AnyConnect, Citrix SSO, F5 Access): При выборе я согласен, ID устройства входит в профиль VPN. Этот ID можно использовать для проверки подлинности в VPN, чтобы разрешить или предотвратить доступ к сети.
При использовании Cisco AnyConnect с ISE убедитесь в том, что:
- Если вы еще не сделали этого, интегрируете ISE с Intune для NAC, как описано в Microsoft Intune как MDM Server в руководстве администратора движка удостоверений Cisco.
- Включить NAC в профиле VPN.
При использовании SSO Citrix с шлюзом убедитесь:
- Подтвердим, что вы используете Citrix Gateway 12.0.59 или выше.
- Подтвердите, что у пользователей на устройствах установлен citrix SSO 1.1.6 или более поздний.
- Интеграция шлюза Citrix с Intune для NAC. См. руководство по интеграции Microsoft Intune/Enterprise с netScaler (сценарий развертывания LDAP+OTP) Citrix.
- Включить NAC в профиле VPN.
При использовании F5 Access убедитесь в том, что:
- Подтверди, что вы используете F5 BIG-IP 13.1.1.5 или более поздней.
- Интеграция BIG-IP с Intune для NAC. См. осанки устройств с помощью руководства по системам управления конечной точкой F5.
- Включить NAC в профиле VPN.
Для vpn-партнеров, поддерживаюных ID устройства, VPN-клиент, например SSO Citrix, может получить ID. Затем он может запрашивать Intune, чтобы подтвердить регистрацию устройства, и если профиль VPN соответствует или не соответствует требованиям.
Чтобы удалить этот параметр, воссоздайте профиль и не выберите я согласен. Затем перенаменуем профиль.
-
Введите пары ключей и значений для vpn-атрибутов NetMotion Mobility (только для мобильности NetMotion): введите или импортируете пары ключей и значений. Эти значения могут быть предоставлены поставщиком VPN.
-
Microsoft Tunnel (только Microsoft Tunnel): Выберите существующий сайт. Vpn-клиент подключается к общедоступным IP-адресу или FQDN этого сайта.
Дополнительные сведения см. в Microsoft Tunnel intune.
Установка OpenVPN на клиенте
Запустите следующую команду для установки OpenVPN на клиентской машине.
apt-get install openvpn mkdir -p /etc/openvpn/certs/
Настройки даны исходя из расположения файлов здесь:
- /etc/openvpn/certs/ca.crt
- /etc/openvpn/certs/client.crt
- /etc/openvpn/certs/client.key
- /etc/openvpn/certs/ta.key
Используя текстовый редактор, настройте конфигурацию OpenVPN клиента в ‘/etc/openvpn/client.conf‘ на клиенте. Пример конфигурации ниже:
client remote 185.117.153.79 ca /etc/openvpn/certs/ca.crt cert /etc/openvpn/certs/client.crt key /etc/openvpn/certs/client.key cipher DES-EDE3-CBC comp-lzo yes dev tun proto udp tls-auth /etc/openvpn/certs/ta.key 1 nobind auth-nocache persist-key persist-tun user nobody group nogroup
Обратите внимание на строку remote 185.117.153.79 – вам обязательно нужно заменить это значение на IP вашего собственного VPN сервера!
Запустите следующую команду для настройки OpenVPN запускаться при загрузке.
update-rc.d -f openvpn defaults
Запустите службу OpenVPN на клиенте.
service openvpn restart
Установка и настройка OpenVPN
Один компьютер будет играть роль сервера. Второй – клиента. На сервере при установке OpenVPN нужно установить флажок EasyRSA – для генерации сертификатов и ключей.
В теории можно скачать и более поздний релиз, но лучше скачивать проверенную версию. Так как я не настраивал последние версии. Если дойдут руки, то дополню статью.
После запуска программы установки включаем EasyRSA (на сервере) и устанавливаем. Программа устанавливается просто и не требует каких-либо специфических настроек при установке.
Затем устанавливаем программу втором компьютере который будет играть роль клиента.
Далее нужно настроить компьютеры, что бы они видели друг друга в сети. Этот процесс зависит от установленной у вас операционной системы. Фактически вам нужно включить сетевое обнаружение.
Создание сертификатов и генерация ключей
Ключи и сертификаты создаются на сервере OpenVPN. Для их создания необходимо выполнить следующие действия:
Запустите командную строку от имени администратора.
С помощью команды cd перейдите в папку C:\Program Files\OpenVPN\easy-rsa и выполните команду init-config.bat, после чего в папке easy-rsa появиться файл vars.bat.
Откройте vars.bat с помощью блокнота или иного текстового редактора. Я открыл в Notepad++. Укажите свои данные.
Данные можно указывать в процессе работы с OpenVPN.
Вернитесь в командную строку и по очереди выполните команды vars и clean-all поочередно.
Выполните команду build-dh. Если у вас появиться ошибка «openssl» не является внутренней или внешней командой, исполняемой программой или пакетный файлом, то нужно добавить в переменные среды путь OpenVPN\bin.
Для этого нужно в переменную среды Path создать путь C:\Program Files\OpenVPN\bin.
Затем заново откройте командную строку и выполните пункты 4-5 заново.
Подождите до завершения процесса. В результате в паке \OpenVPN\easy-rsa\keys появиться файл dh2048.pem.
Создайте новый сертификат Certificate Authority (CA) и ключ, для чего введите команду build-ca. После завершения процесса в папке keys появятся два файла ca.crt и ca.key.
Создайте сертификат и ключ сервера. Для этого введите команду build-key-server к которой нужно добавить (в моем случае abuzov-name), то есть моя команда будет build-key-server abuzov-name. В конце дайте положительный ответ (y) на два вопроса.
Создайте сертификат и ключ для клиента. Введите команду build-key , например build-key ClientVPN1.
Создайте ключ для аутентификации пакетов, для этого выполните команду openvpn —genkey —secret keys/ta.key. В результате в папке easy-rsa\keys появится файл ta.key
Имя | Где применяется | Назначение | Секретность |
---|---|---|---|
ca.crt | Сервер + все клиенты | Корневой сертификат (Root CA certificate) | Нет |
ta.key | Сервер + все клиенты | Файл аутентификации пакетов | Да |
ca.key | Сервер | Корневой ключ (Root CA key) | Да |
dh2048.pem | Сервер | Файл параметров | Нет |
abuzov-name.csr | Сервер | Сертификат сервера | Нет |
abuzov-name.key | Сервер | Ключ сервера | Да |
ClientVPN1.csr | Только на ClientVPN1 | Сертификат клиента | Нет |
ClientVPN1.key | Только на ClientVPN1 | Ключ клиента | Да |
Теперь нужно скопировать соответствующие ключи на сервер и клиент в папку config (в моем случае это C:\Program Files\OpenVPN\config).
Прописываем маршрут OpenVPN
Теперь самое главное. Мы не сможем подключиться к общей папке, пока не пропишем маршрут на Debian. Т.к. наш VPN клиент знает куда подключаться, а наша виртуалка не знает куда отвечать (если только ваш VPN сервер не является шлюзом по умолчанию для всех компов, к которым вы хотите подключаться).
В моем примере VPN сервер не является шлюзом по умолчанию, так что маршрут нужен.
Добавляем следующую строчку:
route add -net 10.10.20.0/24 gw 192.168.94.2
Эта команда означает, что мы хотим для любого адреса из сети 10.10.20.0 255.255.255.0 отправлять все пакеты на шлюз 192.168.94.2.
Теперь закиньте что-нибудь в общую папку или просто создайте текстовый файлик, чтобы проверить, что все доступно, например так:
echo 12345 > /home/user/testshare/test.txt
После этого тестируем нашу общую папку:
Вводим учетные данные нашего Samba пользователя и видим, что всё доступно
А сейчас давайте несколько усложним задачу. Помимо файлового хранилища, мы хотим перенести наш VPN сервер на вторую виртуалку с Debian ( ) и к тому же мы хотим, чтобы весь трафик шел через него.