Options error on windows ifconfig is required when dev tun is used

OpenVPN Support Forum

Community Support Forum

Trouble connecting client

Trouble connecting client

Post by wankdongs » Wed Feb 07, 2018 10:28 am

I used this guide for setting up my https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04
my openvpn server.

I changed only the port location which is listening and waiting for connection.
However my problem is that when i try to connect on windows i get this error :

Wed Feb 07 11:03:52 2018 us=914334 disabling NCP mode (—ncp-disable) because not in P2MP client or server mode
Options error: On Windows, —ifconfig is required when —dev tun is used
Use —help for more information.

My Tun0 interface and openvpn service seem to be running fine on my server and i have the tap driver installed on my local windows machine.

Should i be using TAP in the config or something ?
I also got an error previously from the first line in my client config which was the name of the client being client1 this error is me second one.

Re: Trouble connecting client

Post by wankdongs » Wed Feb 07, 2018 10:36 am

My client config:

dev tun
proto udp
remote redacted 667
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 4
mute 20

My server config:

port 667
proto udp
dev tun
ca ca.crt
cert ayypt.crt
key ayypt.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push «redirect-gateway def1 bypass-dhcp»
push «dhcp-option DNS 45.76.35.212»
push «dhcp-option DNS 91.239.100.100»
keepalive 10 120

tls-auth ta.key 0 # This file is secret
key-direction 0
cipher AES-128-CBC # AES
auth SHA256
comp-lzo
max-clients 1

status /dev/null
log /dev/null
verb 4

Re: Trouble connecting client

Post by wankdongs » Thu Feb 08, 2018 2:57 pm

Re: Trouble connecting client

Post by TinCanTech » Thu Feb 08, 2018 3:22 pm

Re: Trouble connecting client

Post by wankdongs » Thu Feb 08, 2018 3:29 pm

What’s wrong with my way of requesting help ?
Pretty much all info needed is already specified.

My client OS is windows10(uptodate) and my server = Linux AyyPT 4.4.0-112-generic #135-Ubuntu SMP Fri Jan 19 11:48:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

ens3 Link encap:Ethernet HWaddr redacted
inet addr:redacted Bcast:redacted Mask:255.255.254.0
inet6 addr:redacted Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42814 errors:0 dropped:0 overruns:0 frame:0
TX packets:32671 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7396018 (7.3 MB) TX bytes:5213270 (5.2 MB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1456 (1.4 KB) TX bytes:1456 (1.4 KB)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Не поднимается OpenVPN

Hi all. Пытаюсь настроить впн-туннель между машиной на Debian (сервер) и клиентом на ХР. Туннель не поднимается, при этом на сервере:

Читайте также:  Специальные возможности mac os

Конфиг с которым много лет всё работает без сбоев в продакшене:

openvpn на сервере последней версии, APT-ом ставленный?

Тут хорошо все описано, у меня лично работает по этому HowTo с небольшим допиливанием.

>Конфиг с которым много лет всё работает без сбоев в продакшене:
Безо всяких дополнительных роутов?

обычно такая ошибка возникает в случает несоответствия содержимого файлов ta.key на сервере и клиенте. И на всякий случай сверьте часы на клиенте и сервере, чтобы не бло ошибок сертификатами.

это поднимает сеть между всеми клиентами и сервером. Если нужно ещё что-то то добавь роутов по вкусу.

Делал и по руководству с генту-вики, и по лиссяровскому, и по вышеприведенному — все равно с одной стороны invalid argument, а с другой — unroutable packet. Время синхронизировано, сертификаты и ключи заново перерегистрировал — бестолку.

Может ли проблема быть в файерволе? Сейчас так:

Развертывание VPN сети на основе OpenVPN от А до Я

Введение

Задача

Наверно нет смысла рассказывать для чего используются VPN. Я приведу реальную задачу и расскажу как ее достичь.
Основная задача — это безопасное и простое решение доступа к внутренним ресурсам моих серверов.
Первый сервер является «домашним» серверов, подключенный к широкополосному соединению в городе под управлением CentOS 5.5, выполняющий различные функции, в том числе шлюза для квартирной сети. Назовем его CITY. Квартирная сеть использует адреса 192.168.22.0/24 и 192.168.21.0/24.
Второй сервер установлен на дальнем объекте, например, за городом на даче. Сервер работает под управлением CentOS 5.5 и выполняет функции шлюза для дачной сети и тоже выполняет другие задачи. Доступ в сеть осуществляется с помощью недорогого доступа по технологии 3G — в сервер воткнут USB 3g-модем и настроено устойчивое соединение. Назовем его CAMP. Дачная сеть использует адреса 192.168.23.0/24 и адреса 192.168.24.0/24.
А еще у меня есть ноутбук под управлением Windows XP, который вместе с владельцем попадает в разные сети, в том числе из дома, с работы и прочих гостевых мест, где есть доступ в Интернет. Назовем его NOTEBOOK.
Я хочу иметь доступ с ноутбука на мой домашний сервер CITY, в том числе к файлопомойке по NetBIOS и пр. А еще я хочу иметь доступ на сервер CAMP.
В случае CITY некоторые проблемы доступа можно решить публичным IP адресом. Но для CAMP публичный IP адрес у мобильных операторов практически недоступен или стоит неоправданно дорого для частного использования. А обычные клиенты работают через NAT. На ноутбуке проблемы сходные — как правило, везде NAT, бывают публичные открытые сети, где весь трафик виден всем пользователям.
Решением этих проблем является использование OpenVPN для связи всех компьютеров в единую сеть, заодно, защищенную от посторонних глаз.

Эскиз сети

CITY всегда включен и имеет внешний IP адрес, допустим 22.33.44.55, находится на широком и устойчивом канале, поэтому он будет сервером VPN.
А CAMP и NOTEBOOK клиентами VPN.
Сеть с адресами 192.168.25.0/24 выделяем под VPN.
Мы разрешим роутинг, чтобы видить все нужные сети.

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

Итак шаги для настройки сервера на базе СentOS, впрочем они легко применимы и для FedoraProject и собственно RedHat Enterprise Linux и прочим RPM based дистрибутивам, ну а с небольшими изменениями вполне должны работать по Debian/Ubuntu.
На всякий случай, выключите репозиторий rpmforge, т.к. в нем openvpn собран с неверными путями. Я использую репозиторий epel для установки OpenVPN.
Ставим openvpn:

переходим в рабочий каталог

Настраиваем параметры сервера (необязательно):

Читайте также:  Что такое графическая оболочка linux mint

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

Очищаем все на всякий случай:

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

Создаем сертификат X.509

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

Создаем ta.key (TLS сертификат)

Настраиваем конфигурацию сервера:

Вот такой конфиг файл я использую:

В этом варианте я использую файлы ключей и сертификатов по тем путям, где они реально находятся.
На время отладки оставляем уровень детализации журналов verb 5, затем его можно переключить на verb 1. Это надо сделать обязательно. Максимальный размер журнала — 2 Гб. При достижении этого лимита OpenVPN прекратит работу. Поэтому нужно уменьшить детализацию журналирования и настроить ротацию журнала средствами ОС — logrotate.
log-append перенастроен на нормальное место для записи логов сервера.
client-to-client разрешает трафик между клиентами.
Параметр client-config-dir указывает, где хранятся настройки подключения для каждого клиента. Создаем каталог /etc/openvpn/ccd

В принципе сервер настроен, можно его перезапустить:

Не забудьте прописать автоматический запуск сервиса при перезагрузке системы.

А еще надо настроить firewall для разрешения трафика OpenVPN. Я использую исторически скрипт /etc/rc.d/rc.firewall, который настраивает все цепочки, так как мне надо. Поэтому команды мои выглядят примерно так:

для идеологически правильного /etc/sysconfig/iptables строчка будут выглядить примерно так:

Через интерфейс настройки firewall команды setup нужно добавить в список портов через пробел строчку:

Для разрешения трафика между клиентами я использую команду:

а для разрешения трафика между подсетями:

В общем, у нас сервер окончательно настроен. Проверяем.
Наличие процесса:

и обязательно должен присутствовать интерфейс tun0, если других VPN не запущено.

Настройка учетных записей клиентов

Для генерации и подписывания сертификатов используются два скрипта:

— для создания сертификата с паролем и

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

инициализируем окружение командой:

генерируем ключ для пользователя notebook с паролем:

в подкаталоге ./keys появится комплект файлов для авторизации.
А еще для клиента нужно настроить параметры сети, которые находятся в файлах с именем клиента /etc/openvpn/ccd/, в данном случае нужно редактировать файл notebook:

В этом файле мы указываем адрес и другие сетевые параметры.
Самое главное — назначим адрес для клиента в нашей VPN подсети.
Дла совместимости со стеком TCP/IP Windows адреса клиентам назначаются с интервалом 4, фактически на каждого клиента выделяется подсеть с маской /30: адрес сети, адрес клиента, адрес шлюза, широковещательный адрес.
Вот здесь указан список возможных адресов
http://openvpn.net/index.php/open-source/documentation/howto.html#policy
Первая пара у нас занята адресом самого сервера. Выделяем адреса .5 и .6:

В моем случае, у меня есть свой DNS сервер по адресу 192.168.22.1, он обслуживает локальную DNS зону mynetwork, для настройки я добавлю в файл две строки:

— укажем клиенту какой использовать DNS сервер

— укажем зону по умолчанию для поиска имен DNS.
Поскольку мой сервер CITY имеет две подсети 192.168.22.0/24 и 192.168.21.0/24 и я хочу чтобы клиент мог их видеть, то нужно настроить маршруты, добавляем две строчки:

Теперь тоже самое делаю для клиента CAMP:
заходим в каталог

инициализируем окружение командой:

генерируем ключ для пользователя camp с паролем:

Настраиваем параметры сетевого доступа:

Итак, настроен сервер, созданы две учетные записи для клиентов camp и notebook.
При подключении camp получит адрес 192.168.25.9, а notebook 192.168.25.5
Теперь дело за настройкой клиентов.

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

Для работы клиентов из каталога
/usr/share/openvpn/easy-rsa/2.0/keys/
забираем следующие файлы:
ca.crt — сертификат сервера
ta.key — tls сертификат
%username%.crt — персональный сертификат
%username%.key — персональный ключ

Читайте также:  Загрузить mac os при установленном windows
Настройка клиента под Windows XP на NOTEBOOK

Ставим openvpn вместе с GUI:
http://www.openvpn.net/index.php/open-source/downloads.html
например:
http://swupdate.openvpn.net/community/releases/openvpn-2.2-beta5-install.exe
Надо перегрузить систему, чтобы завершить установку VPN интерфейса.
Копируем клиентские файлы в каталог «C:\Program Files\OpenVPN\config\»
В данном случае, это:
ca.crt
ta.key
notebook.crt
notebook.key

Создаем файл конфигурации клиента notebook.ovpn:

В этом файл выключена запись в файл журнала, в противном случае OpenVPN-GUI не сможет контролировать работу клиента.
Если мы создали сертификат с паролем — нам придется устанавливать соединение всегда руками, т.к. потребуется ввод пароля:
1. Запускаем GUI.
2. В контекстном меню увидим пункт notebook, выбираем connect. Появляется окно журнал работы и запрос пароля на сертификат.
Если используем сертификат без пароля, можно использовать службу OpenVPN:
1. Запускаем services.msc
2. Находим OpenVPN service и ставим автоматический запуск и запускаем службу.
В обоих случаях при успехе — соединение установится, красные цвета иконки OpenVPN-GUI поменяют на зеленые. Будет присвоен адрес 192.168.25.5

Настройка клиента под CentOS на сервере CAMP

забираем клиентские файлы в каталог /etc/openvpn/:

Разрешаем соединение в firewall. Само главное — обратные пакеты UDP пустить:
Я делаю так в своем любимом /etc/rc.d/rc.firewall:

В принципе, клиент настроен, можно его перезапустить:

Не забываем обеспечить автостарт сервиса при перезагрузке.
Если все в порядке — появится интерфейс tun0, ему будет присвоен адрес 192.168.25.9

Наша VPN сеть запущена. Командой ping и доступом к известным сервисам проверяем работоспособность сети.

Диагностика и устранение неполадок

Основные средства проверки работы — это ping и tcpdump. Большинство ошибок выявляются этими командами.
Например, командой

я могу прослушать трафик сервера и убедиться, что сервер видит пакеты и отвечает на них.

Судя по ошибкам — Адаптер VPN не работает под Windows.

Если установлен OpenVPN для Windows, но систему еще не перегружали — Перегрузите систему после установки OpenVPN.

При установке соединения выводится ошибка про журнал.

Если включено ведение журнала в файл, то OpenVPN-GUI может иметь проблемы при поднятии соединения, особенно на этапе запроса пароля. Помогает выключение ведения журнала и высокой детализации, нужно открыть *.ovpn файл и закомментировать две строчки (они в конце) вот так:

Нет соединения.

Со стороны клиента нужно сделать пинг на адрес сервера — ping 22.33.44.55. Если не отвечает — устранить причину.
Под Windows убедиться, что openvpn.exe, openvpn-gui.exe и openvpnserv.exe не заблокирован персональным фаерволом или антивирусом.
Просмотреть ошибки в консоли и логе openvpn.log и погуглить их

Соединение не устанавливается — пакет пришел не «с того адреса».

Сопровождается ошибками:
Incoming packet rejected from . expected peer address…
Такое возможно если клиент находится «рядом» с сервером — пакеты посылаются на один адрес (внешний), а ответы приходят со внутреннего адреса. По умолчанию OpenVPN считает такую конфигурацию небезопасной и блокирует работу. Опция float устраняет проблему.

Соединение есть, но туннель не работает.

1. Убедиться, что персональный firewall не блокирует трафик для подсети 192.168.25.*
2. Что присутствуют маршруты во внутренние подсети — команда в Windows: route print.
3. В случае Vista/W7 не забыть запускать клиента с правами Администратора, иначе не поднимаются маршруты!
В остальных случаях помогает увеличение детализации вывода опцией verb и внимательное штудирование openvpn.log

Послесловие

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

Оцените статью