Как заполнять файл ipp txt
Перейти к содержимому

Как заполнять файл ipp txt

  • автор:

Статический IP клиента OpenVPN

Если вы используете OpenVPN для организации частной виртуальной сети, то возможно захотите, чтобы у ваших клиентов были статические IP адреса. Это достаточно удобно для того чтобы иметь возможность быстро получить доступ к нужному устройству.

Добавится такого эффекта можно двумя способами. С помощью файла ipp.txt или директории ccd. В этой статье мы рассмотрим оба способа как сделать статический IP клиента OpenVPN.

Статический IP клиента OpenVPN

1. Настройка ipp.txt

Название ipp расшифровывается как ifconfig pool persist. Для того чтобы IP адреса из этого файла работали необходимо добавить такую строчку в конфигурационный файл сервера:

sudo vi /etc/openvpn/server.conf

Затем нужные IP адреса можно добавить в файле /etc/openvpn/ipp.txt. Синтаксис этого файла такой:

имя_клиента , ip_адрес

Обратите внимание, что IP адрес должен быть в диапазоне выдаваемых адресов OpenVPN сервером. Посмотреть диапазон можно найдя строчку server в конфигурационном файле сервера:

server 10.8.0.0 255.255.255.0

В данном случае используются IP адреса от 10.8.0.1 до 10.8.0.255. Причём первый адрес, как правило присваивается самому серверу. Также можно посмотреть какой адрес присвоен серверу сейчас и из той же подсети выдавать адреса клиентам. Узнать адрес сервера можно посмотрев IP адрес сетевого интерфейса tun0:

ip -br a | grep tun

Например, если вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:

sudo vi /etc/openvpn/ipp.txt

Для применения изменений необходимо перезапустить сервер OpenVPN:

sudo systemctl restart openvpn@server

2. Настройка ccd

Вариант с ipp.txt довольно простой. Но если вам нужно больше настроек, то можно воспользоваться ccd. Это расшифровывается как client config dir. С помощью этой возможности можно для каждого клиента задавать отдельную конфигурацию, в том числе и IP адрес. Для того чтобы это работало надо добавить в конфигурационный файл такую строчку:

sudo vi /etc/openvpn/server.conf

Теперь в папке /etc/openvpn/ccd можно создавать конфигурационные файлы с именем клиента и прописывать туда настройки, которые будут применены конкретно для этого клиента при подключении.

Например, если вы хотите чтобы для клиента raspberrypi выдавался IP адрес 10.8.0.112. То нужно создать файл /etc/openvpn/ccd/raspberrypi с таким содержимым:

sudo vi /etc/openvpn/ccd/raspberrypi

ifconfig-push 10.8.0.112 255.255.255.0

После этого, аналогично необходимо перезапустить OpenVPN.

3. Проверка IP адреса клиента

В не зависимости от выбранного вами метода, надо проверить применились ли изменения. Для этого на клиентском устройстве выполните команду:

Выводы

В этой небольшой статье мы рассмотрели как сделать статические IP адреса клиентов OpenVPN. Как видите, это довольно просто и удобно.

Как сделать статический IP клиента OpenVPN.

При использовании OpenVPN для организации частной виртуальной сети часто возникает необходимость, чтобы у клиентов были статические IP адреса. Это достаточно удобно для того, чтобы быстро получить доступ к нужному устройству. Добавится этого можно двумя способами. С помощью файла ipp.txt или директории ccd. В статье рассмотрим оба способа как сделать статический IP клиента OpenVPN.

Настраиваем IPP.TXT

Название ipp расшифровывается как ifconfig pool persist. Для того чтобы IP адреса из этого файла работали необходимо добавить такую строчку в конфигурационный файл сервера:

$ sudo vi /etc/openvpn/server.conf

$ ifconfig-pool-persist ipp.txt

Затем нужные IP адреса можно добавить в файле /etc/openvpn/ipp.txt. Синтаксис этого файла такой:

имя_клиента , ip_адрес

Обращаем внимание на то, что IP адрес должен быть в диапазоне выдаваемых адресов OpenVPN сервером. Посмотреть диапазон можно найдя строчку server в конфигурационном файле сервера:

Здесь используются IP адреса от 10.8.0.1 до 10.8.0.255. Причём первый адрес присваивается самому серверу. Можно посмотреть какой адрес присвоен серверу сейчас и из той же подсети выдавать адреса клиентам. Узнать адрес сервера можно посмотрев IP адрес сетевого интерфейса tun0:

Как сделать статический IP клиента OpenVPN.

Е сли вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:

Как сделать статический IP клиента OpenVPN.

Для применения изменений необходимо перезапустить сервер OpenVPN:

$ sudo systemctl restart openvpn@server

Настраиваем CCD

Вариант с ipp.txt легкий. Если необходимо больше настроек, то можно воспользоваться ccd. Это расшифровывается как client config dir. С помощью этой возможности можно для каждого клиента задавать отдельную конфигурацию, в том числе и IP адрес. Чтобы это работало надо добавить в конфигурационный файл такую строчку:

$ sudo vi /etc/openvpn/server.conf

client-config-dir /etc/openvpn/ccd

В папке /etc/openvpn/ccd можно создавать конфигурационные файлы с именем клиента и прописывать туда настройки, которые будут применены конкретно для этого клиента при подключении.

Если вы хотите чтобы для клиента raspberrypi выдавался IP адрес 10.8.0.112. Нужно создать файл /etc/openvpn/ccd/raspberrypi с таким содержимым:

$ sudo vi /etc/openvpn/ccd/raspberrypi

ifconfig-push 10.8.0.112 255.255.255.0

Как сделать статический IP клиента OpenVPN.

Дальше необходимо перезапустить OpenVPN

Проверяем IP адреса клиентов

Независимо от выбранного вами метода, надо проверить применились ли изменения. На устройстве клиента вводим команду:

Как сделать статический IP клиента OpenVPN.

Мы рассмотрели несколько способов как сделать статические IP адреса клиентов OpenVPN.

Как заполнять файл ipp txt

Я уже не раз рассказывал как сконфигурировать собственный OpenVPN сервер. Пользователи подключаются по сертификатам и им динамически выдаются свободные ip-адреса из заданного диапазона. Встала задача выдавать некоторым клиентам постоянные ip-адреса, чтобы была возможность подключаться к ним тоже.

Собственно, решается это довольно просто, если знать как. В файл конфигурации сервера OpenVPN нужно добавить буквально пару строк:

  • client-to-client — разрешаем клиентам видеть друг-друга в сети
  • ifconfig-pool-persist ipp.txt — наличие этой строки указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt, в котором прописывается привязка имени пользователя к ip-адресу.

Файл ipp.txt должен иметь следующий формат:

username1, username2 и username3 соотвествуют именам выданных сертификатов пользователей.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Windows XP и терминальный сервер на Server 2008 R2 Руководство пользователя Pixelmator Pro на русском языке Восстановление данных с RAID массива на контроллере Adaptec 6405 Не открываются сайты антивирусов Видимо всё. сколько циклов перезарядки реально выдерживает батарея MacBook Сколько денег мы тратим на зарядку смартфонов и ноутбуков?

Комментариев: 10

Это все хорошо и правильно. Только не забывайте, что перед редактированием ipp.txt надо остановить сервис service openvpn stop , а после редактирования не забыть service openvpn start. Попытка отредактировать при запущенном сервисе приводит к тому, что на экране все красиво, но после openvpn restart все возвращается на круги своя со старым ipp.txt. ��

Не работает почему-то. После включения сервера, он снова назначает адреса какие ему вдумается и перезаписывает ipp.txt, причем не теми адресами которые он назначил. В общем бред какой-то. в чем смысл тогда

Подтверждаю — не работает. OpenVPN 2.4.7. Присваивает адреса какие попало, явочным порядком. ipp.txt вообще вычищает, только название остается. Есть и другие способы зафиксировать адреса клиентов, и они точно так же не работают. Смиритесь. Что-то OpenVPN делает хорошо, а что-то он не будет делать никогда.

Вру. Всё-таки сработал способ через параметр

Объявляете эту директорию в конфиге сервера, а потому в эту директорию помещаете конфигурационные файлы клиентов. Но не те, которые на самих клиентах должны быть, а специальные. Например, имя файла «Client», расширения нет, внутри:

ifconfig-push 192.168.4.10 192.168.4.9

iroute 192.168.0.0 255.255.255.0

Имя файла совпадает с именем клиента, как указывал автор статьи. Ну и кладется этот файл в директорию, которую объявили в конфиге сервера. У меня не сразу, но сработало.

1. настроить по инструкции автора

2. подключиться к openvpn серверу, при этом сервер выдаст случайный ip и пропишет его в ipp.txt

3. остановить сервер

4. отредактировать файл ipp.txt (вписать нужный ip)

5. запустить сервер

6. подключиться. Теперь присвоен нужный ip

Назначаем ipp.txt только для чтения.

Не работает ни тот, ни другой способ.

Всё было ок с client-config-dir на старой кубунте 14.04, не помню, какая версия openvpn там была, реп опенвпн’овский был подключен, easy-rsa 2.

Поставил 20.04, поначалу запихал в конфиг и ccd, и ipp — присваивает адреса по своему усмотрению, при этом, как уже отмечали, в ipp пишет другие, кажется на 2 меньше. Остановил, отредактировал ipp, запустил — перезаписывает, при этом может удалить подключенных, а неподключенных переписать.

Остановил, поменял в конфиге ipp на ccd, запустил — опять адреса от балды, и всё равно в ipp снова записал.

Последний коммент — запятые в конце каждой строки ipp — не катит, перезаписывает по своему, без этих запятых.

2.4.6 — работает, но важно положение строки ifconfig-pool-persist ipp.txt в конфиге.

Так же не работало и очищало файл ipp.txt при старте сервера пока не переместил строку в конец файла конфига. После — сервер стал сам писать ip новых клиентов в файл и присваивать существующие.

Вот так лучше думаю

Идём в VPN → OpenVPN → Client Specific Overrides, кнопка Add. Нужно создать настройки для конкретных клиентов. Привяжем каждому клиенту свой IP адрес

Как сделать статический IP клиента OpenVPN.

При использовании OpenVPN для организации частной виртуальной сети часто возникает необходимость, чтобы у клиентов были статические IP адреса. Это достаточно удобно для того, чтобы быстро получить доступ к нужному устройству. Добавится этого можно двумя способами. С помощью файла ipp.txt или директории ccd. В статье рассмотрим оба способа как сделать статический IP клиента OpenVPN.

Настраиваем IPP.TXT

Название ipp расшифровывается как ifconfig pool persist. Для того чтобы IP адреса из этого файла работали необходимо добавить такую строчку в конфигурационный файл сервера:

$ sudo vi /etc/openvpn/server.conf

$ ifconfig-pool-persist ipp.txt

Затем нужные IP адреса можно добавить в файле /etc/openvpn/ipp.txt. Синтаксис этого файла такой:

имя_клиента , ip_адрес

Обращаем внимание на то, что IP адрес должен быть в диапазоне выдаваемых адресов OpenVPN сервером. Посмотреть диапазон можно найдя строчку server в конфигурационном файле сервера:

Здесь используются IP адреса от 10.8.0.1 до 10.8.0.255. Причём первый адрес присваивается самому серверу. Можно посмотреть какой адрес присвоен серверу сейчас и из той же подсети выдавать адреса клиентам. Узнать адрес сервера можно посмотрев IP адрес сетевого интерфейса tun0:

Как сделать статический IP клиента OpenVPN.

Е сли вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:

Как сделать статический IP клиента OpenVPN.

Для применения изменений необходимо перезапустить сервер OpenVPN:

$ sudo systemctl restart openvpn@server

Настраиваем CCD

Вариант с ipp.txt легкий. Если необходимо больше настроек, то можно воспользоваться ccd. Это расшифровывается как client config dir. С помощью этой возможности можно для каждого клиента задавать отдельную конфигурацию, в том числе и IP адрес. Чтобы это работало надо добавить в конфигурационный файл такую строчку:

$ sudo vi /etc/openvpn/server.conf

client-config-dir /etc/openvpn/ccd

В папке /etc/openvpn/ccd можно создавать конфигурационные файлы с именем клиента и прописывать туда настройки, которые будут применены конкретно для этого клиента при подключении.

Если вы хотите чтобы для клиента raspberrypi выдавался IP адрес 10.8.0.112. Нужно создать файл /etc/openvpn/ccd/raspberrypi с таким содержимым:

$ sudo vi /etc/openvpn/ccd/raspberrypi

ifconfig-push 10.8.0.112 255.255.255.0

Как сделать статический IP клиента OpenVPN.

Дальше необходимо перезапустить OpenVPN

Проверяем IP адреса клиентов

Независимо от выбранного вами метода, надо проверить применились ли изменения. На устройстве клиента вводим команду:

Как сделать статический IP клиента OpenVPN.

Мы рассмотрели несколько способов как сделать статические IP адреса клиентов OpenVPN.

VPN-подключение IP-устройств

В данной статье рассматриваются вопросы настройки VPN-подключения следующих IP-устройств:

Настройка VPN-подключения осуществляется через WEB-интерфейс устройств.

Устройство при этом выполняет роль VPN-клиента и подключается к удаленному VPN-серверу.

В настоящее время поддерживается работа следующих типов протоколов:

  • PPPTP
  • PPPoE
  • а также технологии OpenVPN

Для устройств КИО-2М, КИО-2МД, КУН-IPM всех модификаций (1.х, 2.x, 3.x) версий прошивок < x.50 не допускается обновление прошивки по VPN-интерфейсу.

Обновление устройства по VPN приведет к неработоспособности устройства. Восстановление будет возможно только в ремонтном отделе Текон-Автоматика.

Для обновления прошивки следует использовать только локальный интерфейс.

Если в настройках установлен флажок «Отключить локальный интерфейс (Входящие соединения разрешены только по VPN)«, следует снять его, перезагрузить устройство, выполнить обновление прошивки по локальному интерфейсу.

Настройка

В самом простом случае в WEB-интерфейсе устройства достаточно указать

  • включить PPTP
  • имя пользователя
  • пароль
  • IP-адрес сервера
  • MTU = 1474

Будьте аккуратны с опцией Отключить локальный интерфейс — т.к. соединение будет разрешено только через защищенный канал. В противном случае доступ к устройству возможен и через VPN и по «исходному IP-адресу». Данную опцию рекомендуется включать после тестовой проверки VPN-подключения.

Настройка дополнительных параметров авторизации

В прошивках старых КИО и КУН-IPM (3.55, 3.76) по-умолчанию настроена авторизация через mppe.

Если вам необходмо использовать для авторизации другой механизм, например: chap, то вам следует вручную отредактировать конфигурационный файл  

для поддержки авторизации по chap следует изменить строку  

Редактирование файла pptp возможно путем подключения к устройству через ssh

Диагностика

Для диагностики подключения удобно использовать запрос log.cgi

В открывшемся логе нас интересуют только строки, содержащие pptp [xxx]:.

Корректное подключение может выглядеть, например следующим образом:

  • в 16 строке указан IP-адрес, полученный устройством
  • в 17 — IP-адрес VPN-сервера, к которому было осуществлено подключение

И далее периодически в логе могут возникать сообщения

В случае проблем с подключением, будет отображена та или иная ошибка

Для диагностики проблем подключений по PPTP для новый концентраторов КУН-IP8, КУН-IP4 (для КУН-IPM данный способ не работает) удобно поступать следующим образом:

  1. отключить опцию PPTP
  2. включить доступ по SHH в меню Контроль доступа
  3. перезагрузить устройство
  4. подключиться по SHH с помощью, например Putty

Далее в консоли набрать

И наблюдать более подробный лог, например:

— ошибка, приведенная в примере, связана с отсутствием прохождения GRE-пакетов на маршрутизаторе, за которым установлен КУН-IP.

Для остановки нажать Ctrl+z

Далее можно по необходимости (в зависимости от отображаемой ошибки) можно поменять параметры, например: логин/пароль в WEB-интерфейсе, нажать сохранить, и не перегружая устройства повторить ввод команды pppd call .

Анализ возможных ошибок и их причины см. в статье:

  1. PPTP Client Diagnosis HOWTO http://pptpclient.sourceforge.net/howto-diagnosis.phtml
PPPoE
Настройка

В самом простом случае в WEB-интерфейсе устройства достаточно указать

  • включить PPPoE
  • имя пользователя
  • пароль
  • IP-адрес сервера
  • MTU = 1492
Диагностика

Практического тестирование работы PPPoE подключений на объектах нашими специалистами на данный момент не проводилось.

Настройка OpenVPN 2.3.16 (устаревшая версия)

Внимание! Замечание от 2021 года.
Данная версия OpenVPN  является  устаревшей. В настоящее время следует устанавливать версию 2.5.х (см. описание ниже)
Руководство оставлено в качестве общей информации о настройке.
 

Установка

Для начала нужно скачать программу OpenVPN версии 2.3.16-I001. Инструкция проверена только на данной версии.

Установочный файл запускаем от имени администратора. При установке ставим галочки на всех компонентах.

Openvpn1.JPG

Далее указываем папку установки программы (рекомендуется оставить по умолчанию).

Openvpn2.JPG

Нажимаем „install”. После программа установится, не потребовав перезагрузки.

Далее приступаем к подготовке OpenVPN-сервера для его настройки.

Настройка

Прежде всего нужно зайти в папку C:\OpenVPN:

  • создать папку с названием ssl ,
  • создать папку с названием tmp,
  • создать текстовый файл verify.txt, следующего содержания

Переименовать verify.txt в verify.bat

Далее переходим в папку C:\OpenVPN\easyrsa и переименовываем файл vars.bat.sample в vars.bat

Запускаем командную строку с правами администратора и вводим команду

и нажимаем enter.

Далее вводим команду

и нажимаем enter

Openvpn5.JPG

Openvpn6.JPG

Во всех параметрах нажимаем enter, не вводя никаких значений.

Openvpn3.JPG

Openvpn4.JPG

Далее запускаем команду

, где vpn – это примитивное название нашего OpenVPN сервера.

Это же название нужно будет ввести в параметр «common name» и нажать enter, в остальных полях нажимать enter без ввода каких либо значений, а на два последних вопроса ответить yes.

Openvpn7.JPG

Openvpn8.JPG

Теперь приступаем к созданию клиентских ключей. Запускаем команду

, где client1 — это логин нашего первого клиента. Параметр «common name» так же указываем, как client1. На последние два вопроса отвечаем так же yes

Openvpn9.JPG

Аналогично добавляем client2, client3 и т.д.

Приступаем к конфигурации сервера OpenVPN. Заходим в папку key, копируем от туда файлы

  • dh1024.pem,
  • ca.crt,
  • vpn.crt,
  • vpn.key

Далее переходим в папку cofig и создаем там текстовый файл vpn.txt

Открываем этот файл и копируем в него следующий текст _

Сохраняем и переименовываем его в vpn.ovpn

Замечаение: в некоторых конфигурациях следует указывать строчку 

вместо via-file

Далее нам нужно, что бы сервер присваивал клиентам фиксированные ip-адреса, а не динамические, т.к. программа Scada не умеет работать по DHCP.

Пускай наша сеть будет 10.0.0.1-10.0.0.255.

Для совместимости с Windows, OpenVPN сервер работает по следующему принципу: сервер устанавливает соединение точка-точа с подключенным к нему клиентом и выделяет для этого пару адресов из подсети с префиксом /30, первый адрес он присваивает себе, а второй— клиенту.

Исходя из этого, имеем следующий список возможных пар клиентских адресов сети 10.0.0.0:

, где 5 и 6 — пара сети 10.0.0.4/30, которая может быть выделена, например: для подключения первого клиента — client1.

Для фиксирования IP-адреса за определенным клиентом, создаем в папке C:\OpenVPN текстовый ipp.txt

В этом файле мы пишем:

Т.е. для нашего первого клиента запись будет выглядеть так

Такая запись, с логином и соответствующим ему адресом, должна быть для каждого клиента, зарегистрированном в OpenVPN-сервере.

Пример файла ipp.txt

Конфигурационные файлы сервера готовы, теперь приступаем к запуску OpenVPN-сервера.

Запуск OpenVPN сервера

Openvpn10.JPG

Нажимаем применить и запускаем ярлык с правами администратора. После этого в трее появляется значок OpenVPN GUI. Через несколько секунд он становиться зелёного цвета, это означает, что сервер запущен.

Настройка OpenVPN версии 2.5.3 (актуальная версия)

При подключении устройств с новыми прошивками  к openvpn серверу верси 2.3.х могут возникнуть проблемы.
В таком случае рекомендуем настроить openvpn 2.5.3.

OpenVPNdownload.png

EasyRSA3.0.png

Распаковывем архив куда-нибудь. И заходим в каталог EasyRSA-3.0.8.

EasyRSAstart.png

Откроится консольное окно.

Easyrsa-utilit.png

Создаем СА сертифтикат:

Создаем пару ключей для севера:

Нужно ещё подписать req-файл сервера для корректного типа:

После чего появится файл server.crt в папке \pki\issued.

Создаём ключ Диффи-Хельмана:

Содаём папку С:\ssl и копируем в неё из пакпки pki наши ключи ca.crt, dh.pem, server.key и server.crt.

Создаём в там же текстовый файл ipp.txt. 

Создаём там же батник verify.bat:

Создаём конфигурационный текстовый файл для сервера ovpnsrv.ovpn и копируем в него текст:

Запускаем c рабочего стола OpenVPN GUI, в трее появится иконка:

Снимок экрана (3).png

После чего нажимаем «Подключиться». Дальше openvpn спросит пароль ключа сервера. Тот пароль при котором создавалась его пара ключей.

После сервер должен запуститься и иконка станет зелёной.

Настройка концентраторов и/или контроллеров

Далее приступаем к настройке клиентов, в нашем случае это КУН-IP8 (КУН-IP4) или КИО-8(4)L.

Заходим в web-конфигуратор и переходим на страничку Конфигурация сети — OpenVPV.

Нас интересуют следующие поля:

  • IP адрес сервера — это ,собственно, IP-адрес интерфейса Пульта ПК
  • порт сервера — оставляем по умолчанию 1194
  • имя пользователя — логин клиента(client1)
  • пароль — пароль сервером проверяться не будет, но функции «пустого пароля» нет, по этому вводим любые значения, например 123, и подтверждаем
  • подтверждение пароля — вводим тот же пароль
  • CA сертификат — файл ca.crt. Открываем его блокнотом или иным текстовым редактором и копируем его содержимое в поле CA сертификат

Openvpn11.JPG

Сохраняем изменения и перезагружаем устройство.

Просмотр лога соединений OpenVPN-сервера

В логах сервера можно посмотреть статистику подключения, в трее нужно кликнуть на значок OpenVPN GUI 2 раза левым кликом.

В логе видим, что с client1 установлено соединение через пару адресов 10.0.0.6, 10.0.0.5. Теперь устройство доступно по нашей vpn сети по адресу 10.0.0.6.

Openvpn12.JPG

Для нормальной работы OpenVPN-сервера в настройках брандмауэра Windows должны присутствовать исключения для OpenVPN Deamon и OpenVPN GUI.

Для автоматического запуска OpenVPN-сервера удобнее использовать службу OpenVPNService, которую необходимо настроить.

Заходим в меню Пуск — панель управления — Администрирование — Службы, выбираем OpenVPNService, открываем свойства и меняем тип запуска с «вручную» на «автоматически», при этом программа OpenVPN GUI работать не будет, так как одновременно не могут работать и служба и OpenVPN GUI.

Для просмотра состояния подключения OpenVPN-сервера в этом случае следует открыть текстовый файл openvpn.log ,находящийся в C:\OpenVPN\log.

Ошибка 10054

+ в лог-файле КУН-IP может отображаться сообщение: «нет файла ключа «dls.key»

Для устаранения ошибки, следует включить на АРМ штатный брандмауэр и создать правило разрешающее входящее подключение на порт UDP 1194.

Дополнительно

Для надёжности в настройках OpenVPN IP-устройств рекомендуется ставить галочку — Отключить локальный интерфейс: (Входящие соединения будут разрешены только по VPN!). После этого устройство будет доступно только по сети VPN.
Однако нужно иметь ввиду, что, если по какой-нибудь причине OpenVPN-сервер выйдет из строя и его настройки будут утеряны, то придётся вручную сбрасывать на заводские настройки каждое устройство vpn сети.

VPN-мост в локальную сеть

Обычно, при создании VPN, используется подключение типа точка-точка к некоторому серверу, либо установка ethernet-туннеля с некоторым сервером, при котором туннелю назначается определённая подсеть. Сервер VPN при этом выполняет функции маршрутизации и фильтрования трафика для доступа к локальной сети через VPN.

Данная статья рассматривает другой подход к созданию виртуальной сети, при котором удалённые системы включаются в уже существующую локальную подсеть, а сервер VPN выполняет роль Ethernet-шлюза. При использовании такого подхода мы всё ещё имеем возможность фильтровать трафик на основании способа подключения (например, использовать для локальной сети и для удалённых пользователей разные фильтры), но исключается необходимость настройки маршрутизации, а удалённые машины включаются прямо в локальную сеть, видят ресурсы, даже способны использовать широковещательные посылки вообще без дополнительной настройки. Через такой VPN у них отображаются все компьютеры локальной сети Windows, все доступные XDMCP-серверы при XDMCP broadcast и т. д.

Структура сети и настройка сервера

Предположим, что имеется офис с локальной сетью, используется IP-подсеть 192.168.168.0/24. В эту локальную сеть мы включим домашних пользователей, то есть они будут иметь адрес из этой же самой подсети. Необходимо убедиться, что у них «дома» не встречается данная подсеть, и что никакие системы в локальной сети не имеют адресов из диапазона, который мы выделим для удалённых пользователей.

Поддержка моста в ядре

Для работы такой техники нам нужны некоторые ядерные драйвера. Это универсальный драйвер виртуальных сетевых интерфейсов tun, и драйвер ethernet-моста bridge. Можно включить их в ядро, или собрать модулями:

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

Программное обеспечение

Для сервера потребуется OpenVPN и утилиты для обслуживания моста. В Gentoo они собираются следующим образом:

При использовании >=sys-apps/baselayout-1.12.6 этого достаточно, для более старых версий потребуются специальные утилиты для обслуживания tun/tap-устройств:

Настройка сети

Положим, eth2 — интерфейс, к которому подключена локальная сеть, с назначенным адресом 192.168.168.254. Его настройка выглядела примерно так:

Поскольку он будет участвовать в мосте, ему не нужно назначать адреса. Также, в мосте участвует вновь создаваемый виртуальный интерфейс tap0, которому тоже не назначается никакого адреса. Адрес, который использовался eth2, назначается теперь мосту br0:

Также нужно создать настроечные скрипты для указанных интерфейсов:

Достаточно автоматически загружать только интерфейс br0. depend_br0() автоматически поднимет все остальные необходимые ему для работы:

Создание ключей OpenVPN

Мы будем авторизовывать клиентов посредством RSA-ключей OpenSSL. Для упрощения процесса, для нас приготовили несколько init-скриптов:

Там есть файл vars, в который мы занесём общие значения:

Внизу этого файла мы заполняем наши переменные:

Загружаем переменные из этого файла и строим CA (Certificate Authority):

Ключ сервера

Для генерации ключа сервера с именем office, используем следующую команду:

На вопрос «Common Name» нужно ответить именем сервера (в нашем случае, office). На два вопроса в конце «Sign the certificate? [y/n]» и «1 out of 1 certificate requests certified, commit? [y/n]» отвечаем «y».

При необходимости, можно будет создать дополнительные ключи серверов. Например, это могут быть резервные серверы доступа для повышения надёжности системы. Они создаются той же командой, перед ней нужно выполнить source ./vars.

Параметры Диффи-Хеллмана

Здесь ничего дополнительно делать не придётся, но придётся подождать.

Этот файл нужен только на сервере.

Ключи клиентов

Каждому клиенту необходимо выдать свой ключ. Для клиента с именем client ключ создаётся командой

На вопрос о «Common Name» отвечаем именем клиента (в данном случае, client). На два вопроса в конце отвечаем согласием.

Сгенерированные ключи и сертификаты передаём клиентам через защищённый канал. При необходимости, можно создавать ещё ключи той же командой. Перед её запуском, необходимо загрузить окружение — выполнить source ./vars.

Настройка и запуск сервиса OpenVPN

Для запуска следует использовать следующую конфигурацию сервера (файл /etc/openvpn/openvpn.conf):

Ключ office.key должен иметь режим 600 (доступ только владельцу). Файлы office.crt и dh1024.pem имеют режим 644.

Настройка фильтрования

Поскольку мы используем мост, есть несколько особенностей организации фильтрования пакетов. Например, не все проходящие пакеты могут вообще оказаться IPv4. Для настройки работы моста в ядре существует несколько параметров:

  • bridge-nf-call-arptables
    Логическая переменная bridge-nf-call-arptables управляет передачей трафика ARP в цепочку FORWARD пакетного фильтра arptables. Установленное по умолчанию значение 1 разрешает передачу пакетов фильтрам, 0 – запрещает.
  • bridge-nf-call-iptables
    Логическая переменная bridge-nf-call-iptables управляет передачей проходящего через мост трафика IPv4 в цепочки iptables. Используемое по умолчанию значение 1 разрешает передачу пакетов для фильтрации, 0 – запрещает.
  • bridge-nf-call-ip6tables
    Действие аналогично предыдущему, только оно настраивает передачу трафика IPv6 для фильтрования в цепочки ip6tables.
  • bridge-nf-filter-vlan-tagged
    Логическая переменная bridge-nf-filter-vlan-tagged определяет возможность передачи трафика IP/ARP с тегами VLAN программам фильтрации пакетов (arptables/iptables). Значение 1 (установлено по умолчанию) разрешает передачу пакетов с тегами VLAN программам фильтрации, 0 – запрещает.

Для фильтрования пакетов, проходящих через мост, используется соответствие physdev, которое различает, с какого и на какой порт моста следует пакет. Включаем его в ядре:

Кроме этого, конфигурация ядра должна разрешать передачу пакетов на фильтрацию iptables, т.е. bridge-nf-call-iptables=1 и bridge-nf-call-ip6tables=1 (если вы используете IPv6).
После можете использовать, например, такие правила для фильтрования:

Поподробнее про настройку фильтрации между портами поста можно почитать в статье Building bridges with Linux

Если вы не хотите делать никаких различий между пользователями LAN и пользователями bridged VPN, вы можете просто выключить эти параметры в ядре (они включены по умолчанию):

Клиенты

На клиенте необходимо создать конфигурационный файл OpenVPN следующего содержания:

Если сервер подключен через несколько провайдеров, можно повысить устойчивость сети к отказам. Для этого клиенту нужно прописать несколько опций remote, по одной на сервер, в порядке «сначала предпочтительные».

Имена файлов, указанные в параметрах ca, cert и key — это файлы, переданные через защищённый канал. Права доступа к файлу key должны быть установлены в 600.

Linux

Необходим universal tun/tap driver в ядре, либо модулем, но загруженный.

Gentoo

При установке net-misc/openvpn создаётся скрипт /etc/init.d/openvpn. Этот скрипт запускает openvpn с конфигурационным файлом /etc/openvpn/openvpn.conf. Мы, однако, можем поддерживать несколько конфигураций OpenVPN одновременно, если сделаем симлинки вида /etc/init.d/openvpn.network-name -> /etc/init.d/openvpn — каждый такой скрипт запускает OpenVPN с конфигурационным файлом /etc/openvpn/network-name.conf.

Соответственно, помещаем туда вышеприведённый конфиг, создаём симлинк и кладём скрипты в поддиректорию в /etc/openvpn/. В конфиге прописываем полный путь к ключу и сертификатам. Следите, чтобы имена файлов в конфиге не пересекались, во избежание неприятных эффектов!

Запуск и останов сети производятся через управление сервисом /etc/openvpn.network-name.

Windows

Конфигурационный файл помещается в директорию «C:\Program Files\OpenVPN\config\» с именем вроде «office.ovpn», туда же помещаются остальные файлы — ключи и сертификаты. Если мы их помещаем в поддиректорию (например, хотим использовать несколько виртуальных сетей и все они предоставили файлы с одинаковым именем ca.crt), указываем полные пути к файлам.

Для запуска сетей можно либо запустить сервис OpenVPN (тогда будут запущены все конфигурации *.ovpn, найденные в config\), либо по отдельности — щёлкаем по файлу .ovpn правой кнопкой и выбираем «Запустить OpenVPN с этой конфигурацией».

Возможные проблемы

Проверить доступность сервера, если он запущен на TCP, можно обычным telnetом.

Windows
Нет свободного виртуального адаптера TAP

По логу OpenVPN видно, что клиент успешно присоединился к серверу, авторизовался, но не смог привязать виртуальную сеть к виртуальному адаптеру. Скорее всего, какие-то другие процессы уже задествовали все имеющиеся в системе адаптеры TAP-Win32. Это мог быть и сам OpenVPN, повисший и не отдавший адаптер.

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

Собственный vpn? ⁠ ⁠

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Начну, пожалуй, с причин, по которым я захотел его. Живу я с недавних пор в районе, где проводного интернета нет, а мобильный по LTE представлен только одним оператором. После переезда я расчехлил свой старый TP-LINK MR 3020, припаял разъем под антенну wifi и накрутил саму антенну, в usb вставил купленный у друга huawei m150-2 (E3372s). Все было замечательно, пока единственный доступный оператор с единственным «безлимитным» тарифом не решил брать 200% сверху за факт «раздачи» интернета. Итого — 300%. Я такие вещи обычно называю — «о***ли».

На все это наложилось нежелание постоянно видеть сообщение, что такой-то сайт закрыт по решению каких-то там дядек, знающих лучше меня, как мне жить. А интернет нужен для работы. И привык я смотреть фильмы и сериалы онлайн, а то и в UO на FW погонять изредка.

То есть скорость скачивания и задержки должны быть приемлимыми.

К тому же, я заметил, что вечерами явно присутствует ограничение на число соединений. то есть — открываем 10 вкладок, 11-я уже говорит об ошибке — «соединение сброшено». Закрываем какую-либо, обновляем 11-ю — все открывается.

Я хотел установить клиента VPN сразу в роутере, что позволило бы не заморачиваться с клиентами на конечных устройствах (два андроид-фона, медиацентр на pi2/openelec, пара ноутов) и скрыть от провайдера сам факт раздачи. Провайдер должен видеть один шифрованный канал на подходящий для этого порт.

Построена она на openwrt, поэтому сия инструкция сгодится для любой openwrt — прошивки с установленным пакетом openvpn, да и для других кастомных прошивок тоже.

Итак — OpenVPN. Серверная часть. Опыт работы с ним уже был, пусть и без клиентской части в роутере. Я много работаю с дистрибутивами CentOS, преимущественно 6.X, поэтому её и выбрал. Нам понадобится vps/vds сервер, который можно относительно недорого арендовать. У меня была возможность протестировать три площадки, и по итогам я сделал свой выбор. Рассматривал площадки исключительно в РФ, хотелось комфортной скорости в рунете. Как ни крути, с зарубежными площадками есть такие проблемы.

Первая площадка — недорогой VDS на kvm (более подходящая технология виртуализации), 129р/мес, 400мб ОЗУ, ssd, MSK. Пинги радуют, но общая скорость маловата.

Вторая площадка — kvm, Новосибирск. 400р. Ресурсы сервера хорошие. Пинги не радуют, скорость по итогу тоже.

Третья площадка — OpenVZ, MSK, 1Gb ОЗУ, ssd, 299р. (UDP: полез проверять цены и выяснил, что тарифы подняли, но ресурсов значительно больше. Подробнее в самом конце поста). Пришлось попросить техподдержку подключить tun/tap девайсы, сделайте это сразу, если у Вас OpenVZ. Перед покупкой уточните, что это возможно. Ссылку на эту площадку я отправлю попросившему пикабушнику в электропочту, но запросы пишите мне на мойник_собака_майлру. Приложите ссылку на свой профиль, буду проверять каждого, пикабушникам 1 день не высылаю 🙂

Как Вы уже поняли, ограничения на доступы к сайтам не распространяются на хостинги и ДЦ, не предназначенные для розничной доставки интернета населению. Это хорошо.

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Обновляем все пакеты

Устанавливаем нужные пакеты

Настраиваем автообновление даты и времени, правильные значения нам нужны для работы openvpn-сервера

Разрешаем форвард пакетов

Возможно, на kvm также понадобится отключить selinux

Сервер перезагрузится, логинимся заново. Далее нам нужно скачать easyrsa3, распаковать его и сгенерировать несколько сертификатов, нужных для работы как сервера, так и клиента:

Также нам понадобится ключ TA:

Скачивание идет с моего сайта, ибо я не помню, где брать оригинал и не знаю, будет ли подходящая версия. Последней строкой генерируется сертификат клиента. Следующие файлы нужно пока сохранить себе на комп через WinSCP: /etc/openvpn/easyrsa3/pki/private/client.key, /etc/openvpn/easyrsa3/pki/ca.crt, client.crt, /etc/openvpn/ta.key

Далее создаем файл /etc/openvpn/server.conf следующего содержимого:

Краткое резюме конфига сервера. TAP вместо TUN я выбрал, потому что хотел соединять через этот же сервер несколько мест в одну локальную сеть — это по работе. Для этого достаточно сгенерировать дополнительные клиентские сертификаты и их настроить в клиенте вместо client.key/client.crt. Строчка выше, где присутствует build-client-full.

Режим udp (протокол udp) позволяет работать тоннелю с минимальными задержками, минуя ненужные на данном этапе процедуры гарантированной доставки, которые имеются в TCP. Пусть этим занимаются протоколы и приложения уже внутри тоннеля.

Порт 664/udp позволяет слегка «прикинуться» протоколом ASF-SECURE-RMCP. Я не знаю, зачем он нужен, но в нем есть слово SECURE, и наш тоннель зашифрован. Лучшего я не придумал. 443 (https) работает по TCP, нам неподходит. Шифрование BF-CBC является простым и легким, минимально нагружающим процессор как сервера, так и клиента. Напомню, клиент у нас — роутер, и сложное шифрование очень значительно снижает скорость работы.

Далее создадим в каталоге /etc/openvpn файл ipp.txt, и будем в него прописывать внутренние адреса наших клиентов. Пока клиент у нас один. Не то, чтобы это было необходимо, но так будет проще в будущем, если клиентов несколько.

Включаем автозагрузку openvpn и стартуем серверную часть:

Если старт не удался — лезем в лог и читаем, думаем. Можно выложить ошибку в комменты, подумаем вместе. Лог у нас задан в конфиге сервера: log openvpn.log, располагается в /etc/openvpn.

Для работы в SSH-консоли пригодится уже установленный нами файл-менеджер, запускаемый одноименной командой: mc. Если кто знаком с norton commander, far или хотя бы total commander — то он проблем с использованием испытывать не будет.

Итак, серверная часть запущена. Но у нас есть только подключение к серверу, а нам надо, чтобы сервер прикинулся роутером и NAT-ил трафик. Тут нам поможет iptables, и у нас два варианта. Более классический, но не всегда работающий на OpenVZ:

где нужно eth0 заменить на имеющийся интерфейс, который видно командой ifconfig. Если не прокатило, то удаляем правило (-A меняем на -D) и пробуем такой вариант:

Возможно, включить «таблицу nat» также нужно посредством обращения в техподдержку, если у вас OpenVZ!

Внешний ip видно все той же командой ifconfig, да и в ПУ хостера тоже. Все эти манипуляции с iptables имеет смысл делать после подключения клиента, чтобы было чем проверять результат. Когда все получилось — сохраняем конфиг iptables: service iptables save

Теперь клиент. Лезем на роутер все теми же putty и winscp. Создадим в каталоге /root каталог openvpn, скопируем в него ранее сохраненные с сервера файлы:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Файл client.ovpn нужно создать, его содержимое:

Если вдруг на вашем openwrt не установлен openvpn — то установите его

Далее приводим файл /etc/config/openvpn к виду:

И в вебморде luci включаем его:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Проверяем, изменился ли наш ip-адрес например на myip.ru. Должен быть адрес сервера vds.
Если что не так — по прежнему читаем и анализируем лог на сервере.

Теперь дополнение. Если вдруг Вам нужно пробросить какой-либо порт внутрь локалки — то пробрасывать дважды — на сервере и в роутере. С роутером сами разберетесь, а вот как на сервере, для примера:

iptables -t nat -A PREROUTING -p ПРОТОКОЛ(tcp/udp) -d ВНЕШНИЙ_IP —dport ВНЕШНИЙ_ПОРТ -j DNAT —to-destination 10.8.0.250:ПОРТ_КУДА

Не забываем service iptables save после проверки.

Писалось по памяти, что то мог забыть или где то незначительно ошибиться. Готов в комментах оказать поддержку. Также, при возникновении проблемы прошерстите комменты, вдруг ее уже решили?

UPD: Выяснил, что с момента аренды сервера на самой «быстрой» по итогам тестов площадке изменились цены, но и выросли ресурсы. Теперь она за 420 р/мес предлагает 4гб озу и два быстрых ядра. В связи с чем могу абсолютно бесплатно помочь настроить серверную часть для ряда пикабушников, изъявивших данное желание.

То есть — платить Вы будете за сервер вскладчину. Но вам нужно организоваться, т.е. нужен человек, который будет собирать ежемесячно оплату и собсно оплачивать сервер, отвечать за него и т.д. Мне нехочется этим заниматься. Но настроить сервер и наделать сертификатов с конфигами я могу, повторюсь, бесплатно.

Итоги через OpenVPN:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

924 поста 15K подписчик

Правила сообщества

Все дистрибутивы хороши.

Бля, на секунду подвис пытаясь понять на какую вкладку я зашёл — пикабу или хабр.

Можно было сильно проще
Ставим докер. (sudo apt-get install docker, в rpm надо подключать внешний репазиторий а то там докер старый как гов^Wкости мамонта)
CID=$(docker run -d —restart=always —privileged -p 1194:1194/udp -p 443:443/tcp umputun/dockvpn)
docker run -t -i -p 8080:8080 —volumes-from $CID umputun/dockvpn serveconfig
забираем конфиг с ключами по http://ip:8080/
И радуемся жизни, работает везде, даже в центоси (брр).
Подробнее тут http://p.umputun.com/p/2014/08/12/svoi-sobstviennyi-vpn-za-3.

I have a PEN. I have a VPN.

Иллюстрация к комментарию

Сначала ничего не понял, а потом тоже ничего не понял

Доступен OpenVPN 2.6.0⁠ ⁠

Доступен OpenVPN 2.6.0 Технологии, VPN, Openvpn

После двух с половиной лет с момента публикации ветки 2.5 подготовлен релиз OpenVPN 2.6.0, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.

Обеспечена поддержка неограниченного числа соединений.

В состав включён модуль ядра ovpn-dco, позволяющий существенно ускорить производительность VPN. Ускорение достигается за счёт выноса всех операций шифрования, обработки пакетов и управления каналом связи на сторону ядра Linux, что позволяет избавиться от накладных расходов, связанных с переключением контекста, даёт возможность оптимизировать работу за счёт прямого обращения к внутренним API ядра и исключает медленную передачу данных между ядром и пространством пользователя (шифрование, расшифровка и маршрутизация выполняется модулем без отправки трафика в обработчик в пространстве пользователя).

В проведённых тестах по сравнению с конфигурацией на основе интерфейса tun применение модуля на стороне клиента и сервера при использовании шифра AES-256-GCM позволило добиться прироста пропускной способности в 8 раз (с 370 Mbit/s до 2950 Mbit/s). При применении модуля только на стороне клиента пропускная способность возросла в три раза для исходящего трафика и не изменилась для входящего. При применении модуля только на стороне сервера пропускная способность возросла в 4 раза для входящего трафика и на 35% для исходящего.

Предоставлена возможность использования режима TLS с самоподписанными сертификатами (при применении опции «—peer-fingerprint» можно не указывать параметры «—ca» и «—capath» и обойтись без запуска PKI-сервера на базе Easy-RSA или похожего ПО).

В UDP-сервере реализован режим согласования соединения на основе Cookie, при котором в качестве идентификатора сеанса используется Cookie на основе HMAC, что позволяет серверу проводить верификацию без сохранения состояния.

Добавлена поддержка сборки с библиотекой OpenSSL 3.0. Добавлен параметр «—tls-cert-profile insecure» для выбора минимального уровня безопасности OpenSSL.

Добавлены новые управляющие команды remote-entry-count и remote-entry-get для подсчёта числа внешних подключений и вывода их списка.

В процессе согласования ключей более приоритетным методом получения материала для генерации ключей теперь является механизм EKM (Exported Keying Material, RFC 5705), вместо специфичного механизма OpenVPN PRF. Для применения EKM требуется библиотека OpenSSL или mbed TLS 2.18+.

Обеспечена совместимость с OpenSSL в FIPS-режиме, что позволяет использовать OpenVPN на системах, удовлетворяющих требованиям безопасности FIPS 140-2.

В mlock реализована проверка резервирования достаточного размера памяти. При доступности менее 100 МБ ОЗУ для повышения лимита осуществляется вызов setrlimit().

Добавлена опция «—peer-fingerprint» для проверки корректности или привязки сертификата по fingerprint-отпечатку на основе хэша SHA256, без применения tls-verify.

Для скриптов предоставлена возможность отложенной (deferred) аутентификации, реализуемой при помощи опции «—auth-user-pass-verify». В скриптах и плагинах добавлена поддержка информирования клиента об ожидании (pending) аутентификации при применении отложенной аутентификации.

Добавлен режим совместимости (—compat-mode), позволяющий подключаться к старым серверам, на которых используется OpenVPN 2.3.x или более старые версии.

В списке, передаваемом через параметр «—data-ciphers», разрешено указание префикса «?» для определения необязательных шифров, которые будут задействованы только при наличии поддержки в SSL-библиотеке.

Добавлена опция «—session-timeout» при помощи которой можно ограничить максимальное время сеанса.

В файле конфигурации разрешено указание имени и пароля при помощи тега <auth-user-pass></auth-user-pass>.

Предоставлена возможность динамической настройки MTU клиента, на основе данных об MTU, переданных сервером. Для изменения максимального размера MTU добавлена опция «—tun-mtu-max» (по умолчанию 1600).

Добавлен параметр «—max-packet-size» для определения максимального размера управляющих пакетов.

Удалена поддержка режима запуска OpenVPN через inetd. Удалена опция ncp-disable. Объявлены устаревшими опция verify-hash и режим статических ключей (оставлен только TLS). В разряд устаревших переведены протоколы TLS 1.0 и 1.1 (параметр tls-version-min по умолчанию выставлен в значение 1.2). Удалена встроенная реализация генератора псевдослучайных чисел (—prng), следует использовать реализацию PRNG из криптобиблиотек mbed TLS или OpenSSL. Прекращена поддержка пакетного фильтра PF (Packet Filtering). По умолчанию отключено сжатие (—allow-compression=no).

В список шифров по умолчанию добавлен CHACHA20-POLY1305.

OpenVPN. Инструкция по применению (копия с Хабра)⁠ ⁠

OpenVPN. Инструкция по применению (копия с Хабра) IT, Программирование, Разработка, VPN, Openvpn, Open Source, Linux, Системное администрирование, Длиннопост

Виртуальные частные сети (VPN) давно вошли в повседневную жизнь. Множество технологий и реализаций сервиса приватных сетей (как для частного применения, так и для использования внутри периметра организаций), обеспечивающих определённый уровень безопасности, доступны для использования широкому кругу ИТ-специалистов.

Не смотря на обилие технологий, предлагаю остановиться на старом добром OpenVPN (в связке с EASY-RSA). Решение от Джеймса Йонана отличается гибкостью, функциональностью, надёжностью и непрерывностью разработки на протяжении приличного временного периода. Так сказать, мастодонт от мира VPN-решений.

Спойлер — ссылка на довольно функциональное решение (ничего особенного, чистый бэкэнд), написанное на bash некоторое время назад, ждёт вас в конце публикации (в виде github-репозитория под именем «openvpn_helper»), а здесь же уделю внимание общей структуре и некоторым аспектам использования набора скриптов и OpenVPN.

Список необходимых компонентов (используемая ОС — AlmaLinux 8):

2. Описание общей структуры репозитория

2.1. Директория «ovpn-server»

Директория содержит файлы и поддиректории двух типов: статичные (входящие в репозитория непосредственно) и генерируемые автоматически.

Статичные:

* « main.sh » — файл, содержащий основную кодовую базу репозитория.

* «vpn.env» — основной файл конфигурации.

* « full_setup_vpn_server.sh » — скрипт полной установки VPN-сервера. После запуска исполняет следующие действия:

1) инициация структуры файлов/директорий для управления ключами easyrsa («./easyrsa init-pki»);

2) создание корневого сертификата («./easyrsa build-ca»);

3) генерация ключа Диффи-Хелмана («./easyrsa gen-dh»);

4) создание запроса на выпуск сертификата VPN-сервера («./easyrsa gen-req vpn-server»);

5) импорт и подписание сертификата VPN-сервера («./easyrsa sign-req server vpn-server»);

6) генерация списка отозванных сертификатов («./easyrsa gen-crl»);

7) генерация секретного ключа ta.key («/usr/sbin/openvpn —genkey —secret «$PKI_DIR/ta.key»»), используемого как на стороне сервера, так и на стороне клиента. Необходим для обеспечения дополнительного уровня безопасности (защищает от сканирования прослушиваемых VPN-сервером портов, переполнения буфера SSL/TLS, DoS-атак и flood-атак, а также вводит дополнительный механизм аутентификации между сервером и клиентом);

8) генерация файла конфигурации для VPN-сервера, вспомогательных скриптов и файлов со справочной информацией;

9) копирование всех необходимых сертификатов и файлов конфигурации, необходимы для работы VPN-сервера, в директорию «/etc/openvpn/server».

* « create_cli_cert_and_conf.sh » — скрипт генерации клиентского набора сертификатов и файла конфигурации.

* « revoke_client_cert.sh » — скрипт отзыва клиентских сертификатов.

* « gen_crl_and_restart_ovpn.sh » — скрипт генерации CRL-сертификата (Certificate Revocation List или список отозванных сертификатов), содержащего сведения о всех отозванных клиентских сертификатах (отозванных посредством « revoke_client_cert.sh »). Скрипт необходимо запускать каждый раз после отзыва клиентского сертификата.

* « get_client_cert_expire_info.sh » — скрипт проверки клиентских сертификатов на предмет устаревания.

* « get_server_cert_expire_info.sh » — скрипт проверки серверных сертификатов на предмет устаревания.

Файлы и директории, формируемые на этапе полной установки VPN-сервера ( full_setup_vpn_server.sh ):

* директория «pki_root/pki» — содержит развёрнутую структуру файлов/директорий для управления ключами easyrsa. Краткое описание файлов/директорий структуры:

1) certs_by_serial — директория хранения выпущенных сертификатов (в рамках данной структуры pki), ранжированных по серийным номерам;

2) issued — директория хранения выпущенных сертификатов, ранжированных по имени (CN);

3) private — директория хранения закрытых ключей (в т.ч. и закрытого ключа корневого сертификата) к соответствующим сертификатам;

4) renewed — директория хранения обновлённых сертификатов. В рамках «openvpn_helper» не используется.

5) reqs — директория хранения запросов на выпуск сертификатов.

6) revoked — директория хранения отозванных запросов/сертификатов/закрытых ключей;

7) ca.crt — корневой сертификат;

8) crl.pem — список отозванных сертификатов;

9) dh.pem — ключ Диффи-Хеллмана;

10) index.txt — актуальная база данных всех сертификатов в рамках данной структуры управления ключами/сертификатами;

11) index.txt.attr — содержит параметр «unique_subject = yes», запрещающий создание сертификатов с одинаковыми именами до процедуры отзыва;

12) index.txt.attr.old — предыдущее значение параметра index.txt.attr;

13) index.txt.old — предыдущее содержание базы данных сертификатов index.txt. Изменяется, например, после отзыва клиентского сертификата);

14) openssl-easyrsa.cnf — стандартные для данной структуры параметры с указанием имён переменных, которые возможно переопределить через переменные окружения;

15) safessl-easyrsa.cnf — содержание аналогично файлу openssl-easyrsa.cnf, но с указанием конкретных значений;

16) serial — используется для промежуточного хранения серийного номера генерируемого сертификата до момента его подписания. После подписания серийный номер перемещается в файл “serial.old”;

17) serial.old — содержит серийный номер последнего сгенерированного (и подписанного) сертификата;

18) ta.key — секретный ключ для реализации tls-аутентификации.

* «RESTART_OVPN-$ VPN_SERVER_NAME_S.sh » (где VPN_SERVER_NAME_S — параметр из vpn.env) — скрипт перезапуска экземпляра OpenVPN, основанного на конфигах и сертификатах, сгенерированных посредством « full_setup_vpn_server.sh » (на основе файла конфигурации «vpn.env», расположенного в текущей директории).

* «SET-STATIC-IP-FOR-CLIENTS.txt» — заполняется в формате «username,ip-address», если требуется, чтобы клиентам VPN-сервера выдавались статичных ip-адреса. После внесения изменений необходимо запустить скрипт «RESTART»

* «STOP_OVPN-$ VPN_SERVER_NAME_S.sh » (где VPN_SERVER_NAME_S — параметр из vpn.env) — полный останов VPN-сервера.

* «README_MAIN.txt» — краткая инструкция об использовании VPN-сервера.

* «README-user-management.txt» — памятка об управлении пользователями. Возможность коннекта к VPN (помимо сертификатов) ограничивается локальными УЗ, созданными на хосте и состоящими в определённой группе пользователей.

* «readme-firewalld-rules.txt» — памятка о настройке файервола (firewalld).

* «readme-selinux-rules.txt» — памятка о конфигурации selinux.

* «SAVED_CERT_PASSWORDS.txt» — сохранённые пароли (от корневого сертификата и сертификата VPN-сервера).

Файлы и директории, формируемые на этапе генерации клиентских сертификатов ( create_cli_cert_and_conf.sh ):

* директория «cli_certs» — содержит поддиректории вида «CLIENT_CERT_NAME-files», где расположен набор клиентских конфигов и сертификатов, а также архив для передачи пользователю.
=================

2.2. Директория «run_if_dnsmasq_is_not_installed»

Скрипт « run.sh ». Простой скрипт, осуществляющий установку сервиса dnsmasq.

Файл конфигурации «dnsmasq.conf». Содержит пример конфигурации сервиса без вышестоящих dns-серверов.

Для использования DNS-сервера, установленного на хосте с OpenVPN, необходимо подкорректировать правила firewalld. Рекомендации по настройке смотреть в файле «readme-firewalld-rules.txt» (после развёртывания VPN-сервера).

2.3. Директория «run_if_openvpn_is_not_installed»

Скрипт « run.sh » устанавливает необходимый для работы VPN набор софта: dnf-репозиторий «epel-release», openvpn, easy-rsa.

2.4. Директория «run_if_selinux_enabled»

Директория содержит 2 файла:

* selinux-модуль «ovpn_mod0.te»;

* скрипт « run.sh », устанавливающий пакет «selinux-policy» и применяющий selinux-модуль «ovpn_mod0».

2.5. Директория «run_if_zip_is_not_installed»

Скрипт « run.sh » устанавливает zip-архиватор, используемый при создании архивов для передачи конечному пользователю.

2.6. Файл-инструкция «if_need_another_vpnserver_on_this_host.txt»

Документ, кратко описывающий алгоритм развёртывания второго (и последующих) VPN-сервисов на одном и том же хосте.

Алгоритм таков (для примера):

1) создаём директорию, например, «ovpn-server0»;

2) переносим в неё содержание директории «ovpn-server» (исключения: cli_certs, pki_root);

3) редактируем в директории «ovpn-server0» файл «vpn.env», уделяя особое внимание параметрам: VPN_SERVER_NAME_S,

Разрешает форвардинг (перенаправление) трафика ipv4, что важно для осуществления доступа из VPN-сети в интранет.

3. Описание основного файла конфигурации vpn.env

Параметры, относящиеся только к генерации сертификатов и конфига (например, «/etc/openvpn/server/server.conf») VPN-сервера ( full_setup_vpn_server.sh ):

* VPN_CONF_DIR_S — директория хранения файлов конфигурации OpenVPN. Дефолтное значение — «/etc/openvpn/server».

* VPN_SERVER_NAME_S — имя VPN-сервера в контексте возможности запуска нескольких экземпляров VPN в зависимости от имени файла конфигурации. Желательно, чтобы этот параметр совпадал с частью (ovpn-XXX) имени директории, где расположен файл «vpn.env»).

* IP_VPN_SERVER_S — ip-адрес интерфейса, смотрящего в Интернет.

* VPN_PORT_S — порт интерфейса, смотрящего в Интернет. Должен быть уникален, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_SERV_LOG_DIR_S — директория размещения логов VPN-сервера. Значение по умолчанию — /var/log/openvpn.

* VPN_MAX_CLIENTS_S — максимальное количество клиентов VPN-сервера. В топологии «subnet» при использовании подсети для VPN с маской 24 (или 255.255.255.0) максимально возможное кол-во клиентов равно 83. Значение по умолчанию — 32.

* VPN_NETWORK_S — описание VPN-сети в формате «SUBNET SUBNET-mask». Значение по умолчанию — «172.16.10.0 255.255.255.0». Должно быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_DHCP_IP_S — адрес встроенного DHCP. Значение по умолчанию — 172.16.10.1. Должен быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_INTERNAL_NETWORK_ROUTE_S — маршрут до интранета (параметр передаётся клиентам VPN-сервера при подключении), к которой необходим доступ из VPN-сети. Заполнять в соответствии с конкретными параметрами вашей сети.

* VPN_SERVER_LOG_LEVEL_S — уровень логирования VPN-сервера. Значение по умолчанию — 0.

* VPN_NETWORK_MASQUERADE_SRC_S — описание подсети VPN-сервера, необходимое при отправке директив фаерволу (firewalld). Должно быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_INTERNAL_NETWORK_MASQUERADE_DST_S — описание внутренней подсети, необходимое при отправке директив фаерволу (firewalld).

* VPN_INTERNAL_IP_DEV_NAME_S — имя интерфейса, смотрящего во внутреннюю сеть.

* VPN_TUN_DEV_NAME_S — имя интерфейса, используемого при старте VPN-сервера. Должен быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_SERVER_INT_FIREWALLD_ZONE_S — зона фаервола, к которой должны принадлежать интерфейсы:

в) интерфейс, являющийся дефолтовым гейтвэем для VPN-сервера.

Пункт (в) необходим только в том случае, если VPN-сервер предполагается использовать как шлюз по умолчанию для VPN-клиентов.

Параметры, относящиеся только к генерации клиентских сертификатов и конфига ( create_cli_cert_and_conf.sh ):

* IP_VPN_SERVER_CL — белый (и статичный) ip-адрес (или доменное имя), к которому необходимо обратиться VPN-клиенту для доступа к интрасети.

* VPN_PORT_CL — соответствующий порт для параметра IP_VPN_SERVER_CL.

* VPN_CLI_LOG_DIR_LINUX_CL — директория хранения лог-файлов, если клиент VPN-сервера — это хост с ОС Linux.

* VPN_CLI_LOG_LEVEL_CL — уровень логирования VPN-клиента.

Параметры EASY-RSA (используются как при генерации сертификатов как для VPN-сервера, так и для клиента):

* EASY_RSA_DIR_C — место расположения исполняемого файла easyrsa. Дефолтовое значение — /usr/share/easy-rsa/3.

* EASYRSA_CERT_EXPIRE_EV — время устаревания (в днях) выпущенных сертификатов (в т.ч. и корневого). Дефолтовое значение — 3654 дней (10 лет).

* EASYRSA_CRL_DAYS_EV – время устаревания (в днях) списка отзыва сертификатов (CRL). Дефолтовое значение — 3654 дней (10 лет).

* EASYRSA_KEY_SIZE_EV – размер ключа шифрования.

* EASYRSA_REQ_COUNTRY_EV – страна.

* EASYRSA_REQ_PROVINCE_EV – область.

* EASYRSA_REQ_CITY_EV – город.

* EASYRSA_REQ_ORG_EV – организация.

* EASYRSA_REQ_OU_EV – подразделение организации.

* EASYRSA_REQ_CN_EV – имя сервера.

* EASYRSA_REQ_EMAIL_EV – email-адрес администратора.

4. Заключение

Не смотря на функциональность и гибкость (особенно при наличии оснастки, описанной, например, выше), у OpenVPN есть недостаток (присутствует и у аналогичных решений) — механизм списка отозванных сертификатов (который CRL).

Если удалить клиентский сертификат из директории «issued» (структура управления ключами easyrsa), то его отзыв (посредством команды revoke) при компрометации окажется недоступным, что создаёт вероятность использования такого сертификата злоумышленниками. И в этом случае единственным вариантом обезопасить интранет от посторонних глаз — перевыпуск корневого сертификата, что влечёт за собой необходимость перевыпуска остальных сертификатов.

Логично было бы генерировать не список отозванных сертификатов (CRL), а список актуальных сертификатов (например, Cert Actual List), но, видимо, разработчики OpenVPN (а также Easy-RSA), когда-то решили иначе, что создаёт необходимость очень тщательно следить за всеми выпущенными/отозванными сертификатами.

Простейшая настройка собственного VPN⁠ ⁠

Добрый день, пикабушники!

Сразу скажу: я не собираюсь строить из себя эксперта в этой области, но в последнее время тема стала крайне актуальной, просили помочь с установкой и настройкой многие друзья и родственники, и даже тут, на пикабу, пришлось пару раз отметиться по этому вопросу, где меня и попросили запилить пост. (@Warspirit, ты в телевизоре). Ну что ж, мне не трудно, многим полезно.

Получилось очень, очень много букв, но ответственно заявляю, что по этой инструкции смогла купить сервер и подключиться к инстаграму моя бабушка, а это многого стоит. Если есть критика или дополнение – буду только рад услышать ваше мнение в комментариях.

В итоге у нас будет: недорогой VPN, работающий на арендованном нами сервере по протоколу OpenVPN, работающий быстрее всех бесплатных аналогов и очень многих платных. Самый простой, без всяких плюшек вроде маскировки туннеля, выбора отдельных сайтов, которые через этот туннель будут открываться и прочих финтифлюшек, простая рабочая машина, которая обеспечивает отличные скорость и конфиденциальность вкупе с обходом блокировок, а большего нам и не нужно. Итак, поехали.

Для начала определимся с терминологией на случай, если кому-то еще не прожужжали на эту тему все уши.

• VPN –надежный «туннель» от вас до удаленного сервера. Все провайдеры, спецслужбы и прочие заинтересованные лица снаружи могут увидеть только пункт назначения и гору непонятных буковок, которые представляют собой шифрованное «что, куда и откуда».

• VPS/VDS – между двумя этими понятиями для нас разницы нет. По сути, это виртуальный компьютер где-то далеко, на котором мы и будем поднимать VPN-сервер.

• VPN-сервер – программа, которая стоит на удаленном компьютере и является одной из сторон создания туннеля. Вторая сторона – ваш компьютер/телефон.

• OpenVPN – одна из технологий создания VPN-туннеля, созданная еще 20 лет назад, но с тех пор только прибавившая актуальности. Поддерживает десятки алгоритмов шифрования, имеет огромный пласт возможностей, но из всего этого нам надо знать то, что он быстр, он надежен и его еще никто не взломал. Во всяком случае, об этом не известно широкой аудитории, а абсолютно надежных систем не существует. Имеет приложения для Windows, Linux, Mac, Android и iPhone. Вероятность того, что ваше устройство не в этом списке, исчезающе мала.

• Хостер – тот, кто сдал вам в аренду сервер.

Затем нужно определиться с выбором сервера. Минимальные системные требования настолько минимальны, что подойдет практически любой VPS, который существует на рынке. В данный момент у меня трудится сервер с 512 МБ RAM, 10 ГБ ROM и одним 3 ГГц ядром процессора, а обычная нагрузка по всем показателям не превышает 10-20%. Единственное, на что стоит обратить внимание – наличие TUN/TAP устройства (если вам нужна эта статья, то никакой практической пользы эта информация вам не принесет, так что можете не вникать), но о его отсутствии обычно предупреждается большими красными буквами. Кроме того, обязательная характеристика – линукс. (проблем тут он вам не доставит). Желательно – Debian или CentOS последней версии, которая доступна на сайте. Windows не брать ни в коем случае, она дороже и не подходит для быстрой установки описанным способом. Операционная система выбирается при покупке сервера, потом ее можно переустановить.

С требуемыми характеристиками разобрались. Осталось определить местоположение сервера.

Если вам нужна конфиденциальность, то наилучшим вариантом, конечно же, будет зарубежный сервер. Как минимум потому, что вытащить информацию о том, куда ходил такой-то IP, из другой страны на порядок сложнее, чем потребовать ее от своего провайдера. Сам протокол OpenVPN предоставляет достаточную надежность, чтобы не бояться прослушки канала провайдером и заинтересованными лицами, особенно если поэкспериментировать с настройками шифрования (каждое изменение стандартных настроек, особенно алгоритма хеширования, усложняет взлом в разы при условии использования надежных алгоритмов). Ну а если вы решили обзавестись VPN только ради обхода блокировок, как я, то, скорее всего, подойдет и любой российский сервер. Не все провайдеры «последней мили» тратятся на установку дорогого оборудования, осуществляющего блокировки, а уж среди облачных гигантов таких и вовсе единицы. Мне пока что попадался только один из более чем десятка опробованных, и я спокойно вернул деньги по причине «не устроили условия».

После недавних колебаний курса цены на зарубежный VPS в общем выросли, но пока что еще держатся в пределах разумного (надеюсь, это надолго, но, возможно, при покупке имеет смысл оплатить сразу на несколько месяцев, чтобы потом не потратить лишнего). Сразу могу предупредить, что легко мог пропустить хорошее предложение, поэтому прошу добавить в комментариях, если у кого есть более вкусные варианты. Кроме того, я не знаю, что сейчас творится с оплатой зарубежных сервисов, так что эту сторону вопроса я попросту не учитывал.

Самый простой вариант выбора – загуглить «аренда vps в европе». Цены будут нормальными, но все же гораздо выше, чем если подбирать вдумчиво. Например, https://gcorelabs.com/ru/hosting/vds/europe/ За 240 рублей в месяц вы получаете вполне приятный по характеристикам сервер, несколько европейских столиц на выбор и 200 мбит/с канал с безлимитом по трафику. Но я бы все же рекомендовал открыть страницу с подбором сервера, как эта https://hostinghub.ru/vps-search/ и подобрать себе подходящий вариант в любой стране мира.

Из российских серверов подойдет практически любой. Я пользуюсь https://skyhost.ru за 84-80 руб/мес (в зависимости от периода оплаты. Довольно распространенная практика), но канал тут только 10 мбит/с, мне больше и не надо. Есть и дешевле, но там либо проблемы со стабильностью, либо большие ограничения. Если хотите скорости – https://justhost.ru/ , то же самое, но с каналом 200 мбит/с и на 20 рублей дороже. Хотите что-то интереснее – десятки сайтов-агрегаторов к вашим услугам по запросу «подбор vps.

Итак, с провайдером вы определились. Показывать процесс регистрации не имеет смысла — создаете аккаунт, выбираете сервер, операционную систему, оплачиваете. В случае возникновения трудностей пишите в комментарии или в службу поддержки. Второй вариант надежнее.

После оплаты вам на почту через некоторое время падает IP-адрес, логин и пароль. Выглядит это примерно так:

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

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

Логин-пароль мы получили. Пользователи Linux и MacOS открывают терминал и вводят туда «ssh root@<IP-адрес сервера>, мы же идем на сайт https://www.chiark.greenend.org.uk/

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Открываем, соглашаемся с предупреждением, если оно возникает, устанавливаем. В меню программ появляется папка PuTTy, в ней мы открываем одноименный файл PuTTy. Появляется вот такое окно. В указанное окошко вводим IP, нажимаем Open. Больше ничего не меняем.

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

В итоге у всех вылезло черное окно терминала, в котором система просит нас ввести логин и пароль или просто пароль. (При первом подключении будет предупреждение о неизвестном сервере, соглашаемся). Вводим. (Копирование и вставка осуществляются с помощью нестандартных Ctrl+Shift+C/V, кроме того, вставить можно просто кликом правой кнопкой мыши по окну. Символы пароля при вводе не отображаются даже в виде звездочек. Не пугайтесь, они есть, просто невидимы. Ошиблись – три секунды держите кнопку «стереть»). Иногда случается так, что присланный пароль не работает ни в какую, тогда мы идем на сайт хостера и через панель клиента меняем его на свой. Обычно там все написано, но если возникли проблемы – опять же, комментарии или техподдержка.

В итоге у нас есть вот такое окно, в которое последовательно вставляем три команды, после каждой нажимаем «ввод» и дожидаемся завершения (снова появится вот такая строка-приглашение к вводу)

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Команды взяты со страницы разработчика скрипта: https://github.com/angristan/openvpn-install . Все проверено, вирусов нет. Копируем полностью, от первого символа до последнего, точки не забываем, пробелы в конце и в начале простительны

После этого программа начинает работать сама, вам нужно лишь нажимать Ввод, когда она просит, оставляя все как есть, и дожидаться того момента, когда она попросит придумать имя нового подключения. Займет это около минуты. Приглашение выглядит так:

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Придумываем не слишком сложное имя и два раза нажимаем Ввод, пока снова не появится приглашение ко вводу. Вводим команду ls (эл-эс английские, маленькие)

Появится список всех файлов в данной директории. Среди них будет один под названием <введенное_вами_имя>.ovpn Печатаем:

Выделяем снизу вверх все от “</tls-crypt> до строчки “client”, строка приглашения к вводу в выделение попасть не должна. Копируем сочетанием клавиш Ctrl+Shift+C. Открываем блокнот и вставляем. Сохраняем где-нибудь на рабочем столе с любым именем файла, но заканчиваться оно должно на .ovpn. Обратите внимание на рамочку на скриншоте, там должно значиться именно «Все файлы».

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Идем на сайт https://openvpn.net/vpn-client/ и скачиваем приложение под свою систему. Устанавливаем. Открываем. Окно выглядит так. Переходим на вкладку File и перетягиваем в окошко наш файлик, сохраненный на рабочем столе, либо открываем его же с помощью кнопки Browse

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Нажимаем оранжевую кнопочку Connect и наслаждаемся, блокировки нас уже не волнуют. Значок программы появился на панели задач, когда надо включить или отключить VPN (некоторые сайты, тот же авито, отказываются через него работать) мы нажимаем на нее и используем зеленый переключатель в левом верхнем углу.

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Простейшая настройка собственного VPN Linux, VPS, VPN, Openvpn, Сервер, Инструкция, Длиннопост

Приложение для телефона можно скачать в Play Market или App Store. Для него потребуется точно такой же файлик, можно даже этот. Но два одновременных соединения с помощью одного файлика (он называется профиль) установить не получится, поэтому для создания второго, третьего и десятого, которые можно распространить по всей семье или среди друзей, мы снова подключаемся к серверу, как и раньше, и вводим команду

Выпадает небольшое меню, в котором мы можем добавить новый профиль, удалить один из существующих (он больше не сможет подключиться) или вовсе удалить OpenVPN с сервера. Выбираем 1, придумываем имя, два раза нажимаем на ввод и опять копируем вывод команды cat <введенное_вами_имя>.ovpn в файлик на рабочем столе, откуда его можно передать куда угодно. Работает пересылка по ватсап и телеграм, а также по другим мессенджерам. На принимающей стороне надо всего лишь установить приложение и нажать на присланный файл, после чего соединиться.

Как-то так. В ближайшем будущем планировал записать нормальное видео, как это делается, и добавить в комментарии, но пока что существует только текстовая инструкция. Создано под давлением родственников и знакомых)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *