Не удалось импортировать соединение vpn ubuntu

Обновлено: 04.07.2024

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек.

Хотим соединить в одну виртуальную сеть несколько локальных сетей в офисах, географически расположенных в разных местах, посредством Интернета. Хотим иметь доступ в рабочую локальную сеть из дома или в поездке Имея сервер с белым IP есть желание выходить в сеть с этого IP (например если этот IP за пределами страны или сети, в которой блокируются определенные ресурсы в Интернете)

Локальная сеть 1

Локальная сеть 2

Все действия проводятся с правами суперпользователя root.

Установка

И на сервере и на клиенте ставим один и тот же пакет.

Создание сервера

Создание ключей и сертификатов

Защита соединения в OpenVPN в данном случае строится на использовании сертификатов и ключей для сервера и для клиентов.

Переходим в созданную директорию, где и займёмся генерацией ключей и сертификатов

Редактируем файл переменных

Здесь можно заполнить например так:

копируем конфиг openssl

Очищаем от старых сертификатов и ключей папку keys и создаем серийный и индексные файлы для новых ключей

Создаем сертификат. По умолчанию поля будут заполняться данными, введенными ранее в vars, поэтому можно ничего не менять.

Создаем ключ сервера

FIXME

A challenge password []: Если вы решили ввести challenge password, то необходимо убедиться, что сохранили этот пароль в безопасном месте. Если вам понадобится когда-нибудь переустановить этот сертификат, то потребуется ввести этот пароль снова.

В конце соглашаемся с запросом на подпись и добавление сертификата в базу.

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

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

Cоздаем ключ для tls-аутификации

Создание файла конфигурации сервера

Создадим директорию для клиентских конфигов

Можно запускать наш сервер OpenVPN

Смотрим список интерфейсов

Если среди прочих видим

значит VPN-сервер завелся. Если нет, то смотрим лог

Настройка маршрутизации на стороне сервера

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

Создаем файл в каталоге ccd с тем же именем, что и ключ для клиента, т.е. /etc/openvpn/ccd/client

Включаем ipv4_forwarding

Создание клиента

Создание ключей и сертификатов

Переходим в созданную директорию, где и замёмся генерацией ключей и сертификатов

Создаем ключ клиента

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

Если хотим защитить ключ паролем, то генерируем его другой командой

В этом случае при запуске соединения нужно будет каждый раз вводить пароль на ключ.

Теперь нужно не забыть скопировать ключи (ca.crt, client.crt, client.key, ta.key) на клиента OpenVPN в /etc/openvpn/keys/ Если планируется на клиенте импортировать файл настроек .ovpn вместе с сертификатами и ключами, например, для Android, важно в конфигурации клиента исключить строку tls-auth, вместо нее добавить key-direction 1. В противном случае будет ошибка вида tls error: incoming packet authentication failed from [af_inet].

Создание файла конфигурации клиента

/etc/openvpn/client.conf

ИЛИ единый файл конфигурации клиента client.ovpn с сертификатами и ключами для импорта

Можно запускать наш клиент OpenVPN

Настройка маршрутизации на стороне клиента

Машина с openvpn уже готова работать с сервером в чём можно убедится

Но для того, чтобы пользоваться туннелем в другой офис могли другие устройства в локальной сети нужно указать им, чтобы доступ в подсеть 192.168.1.0/24 осуществляется через 192.168.0.100. Или, что часто проще и быстрее прописать это правило маршрутизации на роутере, который является шлюзом для устройств в сети.

Включаем ipv4_forwarding

Также как в случае с сервером.

Настройка выхода в интернет с IP сервера

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

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

Если же вы хотите организовать доступ из VPN сети в интернет с IP адреса сервера, то вам нужно настроить на сервере NAT. Сделать это можно следующей командой (на сервере):

Здесь мы указали, что сеть 10.8.0.0/24 будет выходить наружу через интерфейс eth0.

Для того что бы настройки iptables сохранились после перезагрузки нужно их дополнительно сохранить:

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

К конфиге клиента client.conf нужно добавить строчку

Отзыв сертификата

Если все прошло штатно вы должны увидеть следующий вывод, сообщающий о том, что сертификат отозван:

Скрипт revoke-full создаст CRL-файл (certificate revocation list, список отозванных сертификатов) с именем crl.pem в подкаталоге keys. Файл должен быть скопирован в каталог, в котором сервер OpenVPN может получить к нему доступ. Ранее в конфиге мы прописали, что этот файл должен находится в /etc/openvpn, туда и копируем.

Отключение автозапуска OpenVPN

Это бывает полезно, например для клиента с ключем защищенным паролем, т.к. всё равно при старте системы такое соединение не поднимется в виду отсутствия пароля для ключа. Да и в том случае, если вы сделали ключ с паролем, значит, скорее всего, вам не нужно постоянное соединение.

Тест производительности OpenVPN

Сеть гигабит (без шифрования последовательная скорость передачи 120 МБ/с). Скорость буду указывать в мегабайтах, НЕ в мегабитах! Скорость всегда упиралась в ВМ, где процессор бы полностью занят. ЦП клиента был загружен не более 10% - 40% на 1/6 ядер. Отключаем сжатие ;comp-lzo - прибавка не более 1 МБ/с - до 15 МБ/с Отключаем аутентификацию auth none +2 МБ/с - до 17 МБ/с Сжатие comp-lzo сжимает хорошо сжимаемые файлы в 2 раза хуже, чем zlib, зато почти не влияет не загрузку ЦП (в десятки раз быстрее). Проверял на копировании установленного в Windows Libreoffice 5. Сжатие в zip с помощью архиватора 7z дало результат около 35%, сжатие comp-lzo по статистике сетевого интерфейса - около 70%.

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

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

может совпадать со внутренним, но в целях защиты лучше левый из 5-значной группы

Редактировать: Исправлено тогда, когда патч вышел с добавлением конфигурации VPN. Больше не используйте Linux / Ubuntu сейчас.

Я установил OpenVPN Network-Manager, выполнив sudo apt-get install network-manager-openvpn команду :, которая также устанавливает пакет gnome.

Это позволило импортировать конфигурации в соответствии с 13.10, но при новой установке я могу указать .conf файлы, но после нажатия кнопки импорта диспетчер просто исчезает, и соединение не добавляется.

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

Соединяясь через терминал, выполнив: sudo openvpn --config /path/to/openvpn.conf попросил у меня имя пользователя, затем пароль, но потом не соединяется.

Для очереди на повторное открытие: у кого-то есть чрезвычайно хороший обходной путь для этого, и он использовал правку, чтобы вставить это, но это заслуживает своего собственного ответа: голосование за повторное открытие .

запустите его из командной строки, посмотрите, появляются ли ошибки, и найдите его (или добавьте к этому вопросу).

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

Сначала установите необходимые пакеты

Создание файлов Эти файлы должны всегда оставаться в безопасности и быть конфиденциальными.

  1. Создайте каталог с именем openvpn в вашем домашнем каталоге. Скопируйте файл вашего VPN-клиента (переименованный в client.ovpn) в каталог openvpn.
  2. Необязательно: Сохраните оригинальную копию файла - назовите ее client.ovpn.orig
  3. Далее мы создадим 4 файла в каталоге openvpn.
  4. Смотрите в нижней части этого файла, как автоматизировать следующие шаги
  5. Откройте файл client.ovpn в текстовом редакторе.
  6. Создайте файл с именем ca.crt - скопируйте текст между <ca> и </ca> из client.ovpn в этот файл
  7. Создайте файл под названием client.crt - скопируйте текст между <cert> и </cert> из client.ovpn в этот файл
  8. Создайте файл под названием client.key - скопируйте текст между <key> и </key> из client.ovpn в этот файл
  9. Создайте файл с именем ta.key - скопируйте текст между <tls-auth> и </tls-auth> из client.ovpn в этот файл. На данный момент у меня есть 6 файлов в моем каталоге openvpn (включая файл резервной копии).

5-9 Я только что понял, как сделать скрипт bash. Возглас Скопируйте следующий текст в текстовый файл:

Я сохранил файл как openvpnconvert в папке openvpn вместе с файлом client.ovpn. Сделал его исполняемым с помощью команды chmod a + x:

А потом запустил это:

Изменить файл client.ovpn

Наконец, вам нужно запустить openvpn из интерфейса командной строки (CLI)

перейдите в папку openvpn

Запустите openvpn, если вы используете указанные мной имена файлов, см. Ниже, в противном случае используйте ваши имена файлов.

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

I am trying to import a .ovpn file from the network manager. Here are the steps I follow.

Network Manager → VPN Connections → configure VPN

This opens the Network Connections dialogue. Then,

Add → import saved vpn configuration → choose .ovpn file

This should load my .ovpn configuration, but instead I get a prompt saying

ERROR: plugin does not support import capability.


I can still use VPN using the command

is this a bug that needs to be filed?


34k 54 54 gold badges 85 85 silver badges 138 138 bronze badges


593 1 1 gold badge 4 4 silver badges 10 10 bronze badges I had a similar problem importing the .ovpn file on one of 2 32 bit installs I updated to Lubuntu 16.04 yesterday. I was ab le to enter the config manually and get it to work. The puzzling thing to me is why it failed on one system and not the other.

11 Answers 11

I know this is an old question but since I still couldn't find an (easy) answer I want to help others (and future me).

offcourse replace FILE_NAME with the full path to your file name

This will tell you exactly what's wrong with the file and which lines you should edit/delete.

After you edited the file with the recommendations the command gave you. You can import the file.

731 1 1 gold badge 8 8 silver badges 11 11 bronze badges Thanks. This method allow to understand the problem. It show error messages. In my case errors emerged from deprecated options in .ovpn file. Tried a lot of methods but none of them worked. Using this command i found where is the error. Thanks! Using this tells you what the problem exactly was, instead of the unhelpful error message you get from the GUI. Thanks. This command imported the connection without an error. Thanks. Still wondering why the gnome ui just allows me to view the configuration (save is disabled).

That said, while I'm able to successfully connect to the VPN, I'm not able to hit any host over the VPN. On trying to manually set these values using the network manager GUI, I see that only numerical IP addresses are accepted. String values like remote_host or net_gateway cannot be entered via the GUI.

I've also had success importing the same .OVPN file without any modification in Fedora 23, Windows 10 (using Viscosity), OS X El Capitan (using Viscosity) and earlier versions of Ubuntu. Something is definitely broken in 16.04.

Я пытаюсь добавить VPN в свою сеть, но опция неактивна.


Скриншот неактивного индикатора

Я установил network-manager-openvpn но все равно не повезло. Редактирование моего соединения не показывает какие-либо настройки VPN или вкладки.

Буду признателен, если кто-нибудь сможет указать мне правильное направление!

РЕДАКТИРОВАТЬ: В случае, если у кого-то еще есть эта проблема, формулировка "Добавить VPN-подключение" вводит в заблуждение, так как говорит вам, что вам нужно добавить VPN-соединение, а не то, что вы должны нажать, чтобы добавить его оттуда.

Поэтому выберите "Изменить подключения", "Добавить", а затем выберите свой VPN.

3 ответа

В случае, если у кого-то еще есть эта проблема, формулировка "Добавить VPN-соединение" вводит в заблуждение, так как говорит вам, что вам нужно добавить VPN-соединение, а не то, что вы должны нажать, чтобы добавить его оттуда.

Поэтому выберите "Изменить подключения", "Добавить", а затем выберите свой VPN.

Я недавно настроил VPN на Xubuntu 16.04 LTS впервые. Вот что я должен был сделать:

Я использовал network-manager-openvpn-gnome вместо network-manager-openvpn, чтобы получить возможность импортировать файлы конфигурации VPN.

После этого я мог пойти в:

  1. Редактировать соединения внизу меню
  2. Нажмите на кнопку Добавить в следующем окне
  3. Выберите тип подключения
  4. Импортируйте сохраненную конфигурацию VPN


После этого я смог редактировать VPN соединение

  1. Редактировать соединения. внизу меню
  2. Выберите VPN-соединение, которое я хочу редактировать
  3. Нажмите на кнопку Изменить


Самый простой способ - использовать команду на терминале:

nm-applet обычно запускается при входе в систему менеджером сеансов на рабочем столе и не требует запуска вручную.

Читайте также: