Jump to content

Вопросы по интеграции OpenVPN в NDMS


Recommended Posts

27 minutes ago, Le ecureuil said:

Да, на версиях 2.11.D.5.0-1 и 2.16.D.1.0-1 доступен шифр CHACHA20-POLY1305.

Устанавливаете эту версию, ставите в поле cipher CHACHA20-POLY1305 и полe auth NONE на обоих концах -> готово.

о, спасибо! 

>auth NONE

это как же, вообще без аунтификации? поясните пожалуйста, или этому шифру это не требуется (без потерь в безопасности)

Edited by Alexashka
уточнение
Link to comment
Share on other sites

3 минуты назад, Alexashka сказал:

о, спасибо! 

>auth NONE

это как же, вообще без аунтификации? поясните пожалуйста, или этому шифру это не требуется (без потерь в безопасности)

Потому что это AEAD - другой тип, когда шифрование и аутентификация являются единой операцией.

В данном случае ChaCha20 - это шифр, Poly1305 - это аутентификатор.

Link to comment
Share on other sites

5 minutes ago, Le ecureuil said:

Потому что это AEAD - другой тип, когда шифрование и аутентификация являются единой операцией.

В данном случае ChaCha20 - это шифр, Poly1305 - это аутентификатор.

все понятно, больше спасибо за разъяснение! 

Link to comment
Share on other sites

On 2/13/2020 at 1:57 PM, Le ecureuil said:

Да, на версиях 2.11.D.5.0-1 и 2.16.D.1.0-1 доступен шифр CHACHA20-POLY1305.

Добрый день!

Keenetic II, Прошивка 2.16.D.1.0-1

Включаю ChaCha20, пишет, что он не поддерживается.

В конфиге ставлю:

cipher CHACHA20-POLY1305

auth NONE

openvpn2.log ciphers.txt

Link to comment
Share on other sites

17 minutes ago, Alexashka said:

Добрый день!

Keenetic II, Прошивка 2.16.D.1.0-1

Включаю ChaCha20, пишет, что он не поддерживается.

В конфиге ставлю:

cipher CHACHA20-POLY1305

auth NONE

openvpn2.log 387 B · 1 download ciphers.txt 3.15 kB · 0 downloads

Upd. Обновил libopenssl с 1.0.2k до 1.0.2n (opkg update, opkg list-upgradable), то же самое, только версия openssl в логе поменялась.

Где взять openssl 1.1.0?

Edited by Alexashka
Link to comment
Share on other sites

В 18.02.2020 в 12:41, Alexashka сказал:

Upd. Обновил libopenssl с 1.0.2k до 1.0.2n (opkg update, opkg list-upgradable), то же самое, только версия openssl в логе поменялась.

Где взять openssl 1.1.0?

Так вы про opkg/entware? Там ничего этого нет, я про стандартный компонент только говорил.

Link to comment
Share on other sites

On 2/20/2020 at 12:15 AM, Le ecureuil said:

Так вы про opkg/entware? Там ничего этого нет, я про стандартный компонент только говорил.

Жаль, а я уж было обрадовался. Но потом все же решил все перенастроить на встроенный OpenVPN, без использования opkg.

Сгенерировал ключи, создал новый конфиг с встроенными в него ключами (все в одном), добавил новое VPN соединение на другом порту (444 пока) и вставил конфиг, запускаю...

И получаю:

"Error opening configuration file: /tmp/openvpn/OpenVPN0/openvpn.config"

И ещё кучу таких же в логе. В чем причина?

Link to comment
Share on other sites

В соседней ветке нашел, что предлагали убрать client-to-client,  и client-config-dir, сделал, теперь другая проблема: пишет что порт уже занят, но он свободен, я взял 60443. Похоже дело в ipv6, который он судя по логам пытается использовать

"Could not determine IPv4/IPv6 protocol. Using AF_INET6.

 

Link to comment
Share on other sites

И да, а как все таки в случае all-in-one файла использовать конфиги для клиентов (client-config-dir). У меня клиенты разные, одни просто хосты, а один - роутер и за ним подсесть, и надо маршрутизацию делать

Link to comment
Share on other sites

Указал протокол (proto udp4), собственно, ничего не поменялось, сервер так и не завелся, ругается на занятый порт. Пробовал и бинд делать к локальному интерфейсу, все одно. 

netstat -lp показывает, что порт свободен, до включения. после включения сервера в вебе порт становится занят самим сервером, и если его отключить в вебе, он остаётся забинденным.

При этом не важно, первое это включение или нет, сервер неизменно валится с этой ошибкой. Добавил исключение в файрволл, думал может это поможет, нет.

Насчёт отсутствующего файла конфигурации, я вроде разобрался, ругань идёт на временный файл в /tmp/openvpn/..., видимо, если в основном конфиге отсутствуют некоторые минимально необходимые настройки, файл этот не создаётся, и сервер ругается на его отсутствие, а не на неверный конфиг. В моем случае помогло добавление key-direction, который я забыл добавить при изменении параметра tls-auth на секцию.

Мой конфиг:

dev tun

port 60443

proto udp4

ifconfig 10.4.0.1 10.4.0.8

topology subnet

cipher CHACHA20-POLY1305

server 10.4.0.0 255.255.255.0

key-direction 0

tls-server

tls-timeout 120

keepalive 45 120

max-clients 32

persist-key

persist-tun

verb 3

mute 20

daemon

mode server

comp-lzo

tun-mtu 1500

fragment 1300

mssfix 1300

fast-io

txqueuelen 300

sndbuf 26000

rcvbuf 26000

auth-nocache

push "route 192.168.0.0 255.255.255.0"

route 192.168.1.0 255.255.255.0 10.4.0.8

<ca>...</ca>

<cert> ...</cert>

<key>...</key>

<dh>...</dh>

<tls-auth>...</tls-auth>

Link to comment
Share on other sites

Привет! Так я и не понял в чем проблема, но я ее решил, точнее, тактически выждал) сегодня включаю после 3 дней перерыва, и все работает. Ничего не менял (по крайней мере, я так считаю), я даже начал с того, что хотел поэтапно удалять параметры из конфига, добиваясь его запуска. А он взял и запустился с ходу. Что это было, я так и не понял, но на порт он ругаться перестал 

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

Прикладываю, вдруг кому-то понадобится

Server.txt

  • Upvote 1
Link to comment
Share on other sites

добрый день! запустил встроенный OpenVPN на прошивке 2.16.D.1.0-1 на Keenetic II, указал шифр CHACHA20-POLY1305.

Клиент - смартфон на 9 Android (4G интернет, 15-20mbps), приложение -  OpenVPN Connect (скачал последнюю с маркета 0.7.8, в логах пишет OpenVPN версии 2.5, OpenSSL 1.1.1a). Подключаюсь, сеть есть. Данные гоняются. Скорость не прибавилась, как была ДО 1МБайт/с, так и осталась. правда субъективно показалось, что нагрузка на ЦП сервера снизилась.

Однако в логах на сервере фигурирует шифр 'AES-256-GCM', на клиенте пишет только [AEAD].

Включено LZO, TLS-аутентификация по ключу.

Почему в логах сервера пишет другой шифр? он не использует ChaCha20? 

Quote
OpenVPN1
Mi9Lite/176.59.193.132:42454 Data Channel: using negotiated cipher 'AES-256-GCM'
Фев 27 22:01:11
 
OpenVPN1
Mi9Lite/176.59.193.132:42454 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Фев 27 22:01:11
 
OpenVPN1
Mi9Lite/176.59.193.132:42454 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key

 

Установлен OPKG, захожу в ssh, набираю

/usr/sbin/openvpn --show-ciphers

и вижу

AES-128-CBC  (128 bit key, 128 bit block)
AES-128-CFB  (128 bit key, 128 bit block, TLS client/server mode only)
AES-128-CFB1  (128 bit key, 128 bit block, TLS client/server mode only)
AES-128-CFB8  (128 bit key, 128 bit block, TLS client/server mode only)
AES-128-GCM  (128 bit key, 128 bit block, TLS client/server mode only)
AES-128-OFB  (128 bit key, 128 bit block, TLS client/server mode only)
AES-192-CBC  (192 bit key, 128 bit block)
AES-192-CFB  (192 bit key, 128 bit block, TLS client/server mode only)
AES-192-CFB1  (192 bit key, 128 bit block, TLS client/server mode only)
AES-192-CFB8  (192 bit key, 128 bit block, TLS client/server mode only)
AES-192-GCM  (192 bit key, 128 bit block, TLS client/server mode only)
AES-192-OFB  (192 bit key, 128 bit block, TLS client/server mode only)
AES-256-CBC  (256 bit key, 128 bit block)
AES-256-CFB  (256 bit key, 128 bit block, TLS client/server mode only)
AES-256-CFB1  (256 bit key, 128 bit block, TLS client/server mode only)
AES-256-CFB8  (256 bit key, 128 bit block, TLS client/server mode only)
AES-256-GCM  (256 bit key, 128 bit block, TLS client/server mode only)
AES-256-OFB  (256 bit key, 128 bit block, TLS client/server mode only)
CHACHA20-POLY1305  (256 bit key, 8 bit block, TLS client/server mode only)

The following ciphers have a block size of less than 128 bits,
and are therefore deprecated.  Do not use unless you have to.

BF-CBC  (128 bit key by default, 64 bit block)
BF-CFB  (128 bit key by default, 64 bit block, TLS client/server mode only)
BF-OFB  (128 bit key by default, 64 bit block, TLS client/server mode only)
CAST5-CBC  (128 bit key by default, 64 bit block)
CAST5-CFB  (128 bit key by default, 64 bit block, TLS client/server mode only)
CAST5-OFB  (128 bit key by default, 64 bit block, TLS client/server mode only)
DES-CBC  (64 bit key, 64 bit block)
DES-CFB  (64 bit key, 64 bit block, TLS client/server mode only)
DES-CFB1  (64 bit key, 64 bit block, TLS client/server mode only)
DES-CFB8  (64 bit key, 64 bit block, TLS client/server mode only)
DES-EDE-CBC  (128 bit key, 64 bit block)
DES-EDE-CFB  (128 bit key, 64 bit block, TLS client/server mode only)
DES-EDE-OFB  (128 bit key, 64 bit block, TLS client/server mode only)
DES-EDE3-CBC  (192 bit key, 64 bit block)
DES-EDE3-CFB  (192 bit key, 64 bit block, TLS client/server mode only)
DES-EDE3-CFB1  (192 bit key, 64 bit block, TLS client/server mode only)
DES-EDE3-CFB8  (192 bit key, 64 bit block, TLS client/server mode only)
DES-EDE3-OFB  (192 bit key, 64 bit block, TLS client/server mode only)
DES-OFB  (64 bit key, 64 bit block, TLS client/server mode only)
DESX-CBC  (192 bit key, 64 bit block)
RC2-40-CBC  (40 bit key by default, 64 bit block)
RC2-64-CBC  (64 bit key by default, 64 bit block)
RC2-CBC  (128 bit key by default, 64 bit block)
RC2-CFB  (128 bit key by default, 64 bit block, TLS client/server mode only)
RC2-OFB  (128 bit key by default, 64 bit block, TLS client/server mode only)

т.е. вижу что сервер поддерживает CHACHA20-POLY1305

тогда в чем проблема?

Link to comment
Share on other sites

UPD. Странно, но помогло

ncp-ciphers CHACHA20-POLY1305

на сервере. Без этого в упор не хотел шифр ставиться, сбрасывался на AES-256-GCM.

Теперь вижу в логе

Quote
Фев 27 22:33:40
 
OpenVPN1
KeeneticDSL/195.69.218.66:56606 Outgoing Data Channel: Cipher 'CHACHA20-POLY1305' initialized with 256 bit key
Фев 27 22:33:40
 
OpenVPN1
KeeneticDSL/195.69.218.66:56606 Incoming Data Channel: Cipher 'CHACHA20-POLY1305' initialized with 256 bit ke

однако радовался я рано, скорость черепашья, максимум что я видел ~100КБ/с.

чтояделаюнетак?

  • Upvote 1
Link to comment
Share on other sites

2 minutes ago, Кинетиковод said:

С этим параметром тоже завелось. До этого писал ciphers не поддерживается. Скорость не изменилась.

а подскажите, у вас TLS-аутентификация включена?

Если как написано делать, ставить

auth none

То получаю ошибку

Quote

tls-auth enabled, but no valid --auth algorithm specified ('none')

т.е. auth none несовместим TLS-аутентификацией по ключу.

Сейчас auth вообще отсутствует в конфиге, сервер выставляет ее на SHA1.

C ChaCha20 получается нельзя использовать tls-auth?

Я кстати отключал TLS-аутентификацию, чтобы проверить скорость. Не заметил прироста. Вообще честно не заметил прироста по сравнению с тем, что было до ChaCha20.

Либо я неправильно его приготовил (

Link to comment
Share on other sites

12 минуты назад, Alexashka сказал:

а подскажите, у вас TLS-аутентификация включена?

Включена.

12 минуты назад, Alexashka сказал:

То получаю ошибку

Цитата

tls-auth enabled, but no valid --auth algorithm specified ('none')

Аналогично.

13 минуты назад, Alexashka сказал:

C ChaCha20 получается нельзя использовать tls-auth?

Я пробовал с простым ключом, говорит использовать только с tls.

Мутная Чача какая-то, но с ncp-ciphers работает.

Link to comment
Share on other sites

4 minutes ago, Кинетиковод said:

Включена.

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

у меня TLS-auth работает только если я не задаю 'auth none', но в этой ветке выше мне писали, что для использования ChaCha20 на keeneticII надо ставить 'auth none' чтобы добиться скорости. 

Если auth оставить пустым, он выставляется в SHA1 и если я правильно понимаю получается двойная работа, т.к. ChaCha20-POLY1305 уже является шифром с аутентификацией. Видимо отсюда и низкая скорость.

Вообще, я бы хотел оставить включенным TLS, и использовать ChaCha20 для прироста скорости. Пока что сделать мне этого не удалось. Либо такая же скорость, либо даже хуже.

жертвовать безопасностью в угоду скорости я не хочу

Link to comment
Share on other sites

6 hours ago, Кинетиковод said:

Так у меня так же. У нас всё одинаково работает.

 ждём ещё кого-нибудь, кто все объяснит :)

Edited by Alexashka
Link to comment
Share on other sites

  • 3 weeks later...

Подскажите каким образом во встроенном OpenVPN клиенте (kn-1910) можно программно устанавливать логин/пароль перед подключением?

Суть что есть секция 
<auth-user-pass>
login
otp_code
</auth-user-pass>
Но на сервере используется TOTP через алгоритм Google Authenticator и надо как то подменять otp_code на правильный перед каждым подключением.
 

Если поднимаю OpenVPN клиента скриптами из OPKG (Entware) то там такой проблемы нет.
А где же хранятся настройки конфига встроенного OpenVPN и каким образом их можно править из OPKG.
Ну или чтобы цеплял login/otp_code из файлика или еще как но была возможность менять их не только через веб-интерфейс.

Link to comment
Share on other sites

47 минут назад, Gary Komarov сказал:

Подскажите каким образом во встроенном OpenVPN клиенте (kn-1910) можно программно устанавливать логин/пароль перед подключением?

Суть что есть секция 
<auth-user-pass>
login
otp_code
</auth-user-pass>
Но на сервере используется TOTP через алгоритм Google Authenticator и надо как то подменять otp_code на правильный перед каждым подключением.
 

Если поднимаю OpenVPN клиента скриптами из OPKG (Entware) то там такой проблемы нет.
А где же хранятся настройки конфига встроенного OpenVPN и каким образом их можно править из OPKG.
Ну или чтобы цеплял login/otp_code из файлика или еще как но была возможность менять их не только через веб-интерфейс.

Для таких случаев есть opkg.

Link to comment
Share on other sites

Just now, Le ecureuil said:

Для таких случаев есть opkg.

Вот через opkg, скрипт и бинарник на golang или код под nodejs у меня и формируется нужный otp_code от текущего времени и секретки.
Как его подсунуть во встроенный openvpn клиент, чтобы не поднимать еще свой в opkg?

При поднятии встроенного клиента настройки пишутся в "/tmp/openvpn/OpenVPN0/openvpn.config".
Можно конечно попробовать их там успевать перехватывать и подменять но это изврат же.

Link to comment
Share on other sites

58 минут назад, Gary Komarov сказал:

Вот через opkg, скрипт и бинарник на golang или код под nodejs у меня и формируется нужный otp_code от текущего времени и секретки.
Как его подсунуть во встроенный openvpn клиент, чтобы не поднимать еще свой в opkg?

При поднятии встроенного клиента настройки пишутся в "/tmp/openvpn/OpenVPN0/openvpn.config".
Можно конечно попробовать их там успевать перехватывать и подменять но это изврат же.

Правильнее будет поднять свой.

Link to comment
Share on other sites

1 hour ago, Le ecureuil said:

Правильнее будет поднять свой.

Нафик свой, я уже решил проблему.

Прога на golang запускается при старте на роутере, постоянно проверяет каждую секунду наличие файла /var/openvpn/OpenVPN0/openvpn.config.

Если файлик есть то каждые 10 миллисекунд проверяем otp_code внутри и подменяем если не правильный.

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

Встроенный клиент после подключения удаляет файлик openvpn.config и моя прога переходит в режим ожидания с проверкой через 1 секунду.

Link to comment
Share on other sites

Завтра я изменю название этого файла и у вас все разломается. :3_grin:

Серьезно, не нужно костылять. Это все негаранированные вещи, и могут сломаться на ровном месте.

Хотите сделать хорошо - поднимите свой.

Link to comment
Share on other sites

  • 2 weeks later...

 Вышла предварительная версия официального openvpn клиента для Windows с поддержкой "чачи". С Кинетиком "чачу" использует, хоть и ругается при старте на неправильные параметры сервера. Также в новой версии добавлен новый более скоростной драйвер Windows.

Скрытый текст

his is a "technology preview" release meant to facilitate testing of the wintun driver. As the name implies, it is only interesting for Windows users. The OpenVPN version in the installer is based on Git master branch, which means that it contains features that have not been thoroughly tested. Some parts of OpenVPN's wintun support code haven't underwent full code review process, which means that some things may not work and there could still be bugs. The upside is that performance of the wintun driver should be significantly higher than that of the tap-windows6 driver.

To use wintun driver instead of tap-windows6 driver you should:

  • Add "windows-driver wintun" to .ovpn config, or
  • Add "--windows-driver wintun" to openvpn.exe command line

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...