Jump to content

Extra II (KN-1710), KeeneticOS: 3.4.1, OpenVPN client и прочее...


Recommended Posts

На предыдущем релизе 3.03.C16 при смене сессионных ключей ключей интерфейс OpenVPN0 падал и не поднимался. Пришлось поднять отдельный сервис для него, где отключил tls-auth. NAT в туннель убрал по найденному здесь рецепту:

	no ip nat Home
interface OpenVPN0 security-level private
no isolate-private
ip static Home CdcEthernet0
	

Со стороны сервера пушится несколько маршрутов, а за ним сложный роутинг с несколькими статиками на другие гейты. Заработало. Собрался озвучить проблему, но сегодня прилетел новый релиз прошивки. Обновился. Проблему с tls-auth еще не проверил, так как перестал работать предыдущий рецепт с отключением NAT в туннель и развалился роутинг. Могу конечно плюнуть и прописать маршрут до сети, используемой самим сервером OpenVPN и тогда всё заработает (используется топология net30). Но это уже будет совсем костыль, а хочется, чтобы работало правильно и красиво...

Буду признателен за разъяснения и рекомендации.

Link to comment
Share on other sites

Да на текущий момент хочется понять в связи с чем перестал отключаться NAT из Home в OpenVPN0. С конфигураций OpenVPN сервера и клиента всё нормально, с роутингом тоже. Ничего не менялось, кроме прошивки кинетика, а на предыдущей я всё отладил и имел только грабли с tls-auth. Схема простейшая - доступ в интернет через USB LTE свисток (CdcEthernet0), один клиент OpenVPN до узла, через который маршрутизация до нескольких приватных сетей. В качестве DNS используется сервер на дальней стороне туннеля, где описаны все "серые зоны" нескольких доменов M$ AD.

 

Link to comment
Share on other sites

Всё, разобрался. 😃 Это я нарукожопил и потерял один статик роут на дальней стороне туннеля до подсети кинетика. tcpdump всё расставил по своим местам. Хронически виноват. 😃 Воспользуюсь случаем тогда и спрошу, а что нужно внести в startup-config, чтобы не возвращаться к процедуре отключения всеобщего NAT, которую я описал в первом посте? А по tls-auth еще проверю на новой прошивке и отпишусь.

Link to comment
Share on other sites

3 часа назад, d1m4n сказал:

Всё, разобрался. 😃 Это я нарукожопил и потерял один статик роут на дальней стороне туннеля до подсети кинетика. tcpdump всё расставил по своим местам. Хронически виноват. 😃 Воспользуюсь случаем тогда и спрошу, а что нужно внести в startup-config, чтобы не возвращаться к процедуре отключения всеобщего NAT, которую я описал в первом посте? А по tls-auth еще проверю на новой прошивке и отпишусь.

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

Link to comment
Share on other sites

Всё это записывается в EEPROM и рибута и апдейтов прошивки не боится? Кстати, уже прописал в конфиги ключ для tls-auth и мониторю. Кстати, вот в логах

OpenVPN0: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay

. Понижение привилегий заложено в коде и строки в конфиге клиента типа

user root
	group operator

просто игнорируются?  

Link to comment
Share on other sites

59 минут назад, d1m4n сказал:

Всё это записывается в EEPROM и рибута и апдейтов прошивки не боится? Кстати, уже прописал в конфиги ключ для tls-auth и мониторю. Кстати, вот в логах

. Понижение привилегий заложено в коде и строки в конфиге клиента типа

 


user root
	group operator

 

просто игнорируются?  

Openvpn у нас принудительно работает от nobody:nobody, независимо от того, что будет настроено.

Да, настройки сохраняются (если вы их сохраните)

Link to comment
Share on other sites

В общем, как говорится, картина маслом...

Запустился, всё красиво:

I [May 17 14:12:30] OpenVPN0: OpenVPN 2.4.6 [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [AEAD]
I [May 17 14:12:30] OpenVPN0: library versions: OpenSSL 1.1.1g  21 Apr 2020, LZO 2.10
I [May 17 14:12:30] OpenVPN0: mlockall call succeeded
I [May 17 14:12:30] OpenVPN0: UDPv4 link local: (not bound)
I [May 17 14:12:30] OpenVPN0: UDPv4 link remote: [AF_INET]XXX.XXX.XXX.XXX:YYYY
I [May 17 14:12:30] OpenVPN0: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
I [May 17 14:12:31] ndm: Core::ConfigurationSaver: configuration saved.
I [May 17 14:12:33] OpenVPN0: [gw.work.lan] Peer Connection Initiated with [AF_INET]XXX.XXX.XXX.XXX:YYYY
I [May 17 14:12:33] ndm: Network::Interface::OpenVpn: "OpenVPN0": connecting via CdcEthernet0 (CdcEthernet0).
I [May 17 14:12:33] ndm: Network::Interface::OpenVpn: "OpenVPN0": added host route to remote endpoint XXX.XXX.XXX.XXX via 192.168.1.1.
I [May 17 14:12:34] OpenVPN0: TUN/TAP device tun0 opened
I [May 17 14:12:34] OpenVPN0: do_ifconfig, tt->did_ifconfig_ipv6_setup=0
I [May 17 14:12:34] ndm: Network::Interface::Ip: "OpenVPN0": IP address is 172.16.199.6/32.
I [May 17 14:12:34] ndm: Network::Interface::OpenVpn: "OpenVPN0": TUN peer address is 172.16.199.5.
I [May 17 14:12:34] ndm: Network::Interface::OpenVpn: "OpenVPN0": added host route to peer 172.16.199.5 via 172.16.199.6.
I [May 17 14:12:34] ndm: Network::Interface::OpenVpn: "OpenVPN0": install accepted route to 172.16.199.0/255.255.255.0 via 172.16.199.6.
I [May 17 14:12:34] ndm: Network::Interface::OpenVpn: "OpenVPN0": install accepted route to 192.168.124.0/255.255.255.0 via 172.16.199.6.
I [May 17 14:12:34] ndm: Network::Interface::OpenVpn: "OpenVPN0": install accepted route to 10.0.124.0/255.255.255.0 via 172.16.199.6.
I [May 17 14:12:35] ndm: Network::Interface::OpenVpn: "OpenVPN0": install accepted route to 172.27.27.0/255.255.255.0 via 172.16.199.6.
I [May 17 14:12:35] ndm: Network::Interface::OpenVpn: "OpenVPN0": install accepted route to 192.168.132.0/255.255.255.0 via 172.16.199.6.
I [May 17 14:12:35] OpenVPN0: GID set to nobody
I [May 17 14:12:35] OpenVPN0: UID set to nobody
I [May 17 14:12:35] OpenVPN0: Initialization Sequence Completed

А через 3600 секунд (дефолтное значение) получаю вот такой кошмар и ужас:

E [May 17 15:12:33] OpenVPN0: OpenSSL: error:14123041:lib(20):func(291):reason(65)
E [May 17 15:12:33] OpenVPN0: OpenSSL: error:14161044:lib(20):func(353):reason(68)
E [May 17 15:12:33] OpenVPN0: TLS_ERROR: BIO read tls_read_plaintext error
E [May 17 15:12:33] OpenVPN0: TLS Error: TLS object -> incoming plaintext read error
E [May 17 15:12:33] OpenVPN0: TLS Error: TLS handshake failed
E [May 17 15:12:33] ndm: Service: "OpenVPN0": unexpectedly stopped.
C [May 17 15:12:33] ndm: Network::Interface::OpenVpn: "OpenVPN0": system failed [0xcffd0a55], unable to set down tunnel interface: no such device.
C [May 17 15:12:33] ndm: Network::Interface::OpenVpn: "OpenVPN0": system failed [0xcffd0a64], invalid argument.
I [May 17 15:12:33] ndm: Network::Interface::Ip: "OpenVPN0": IP address cleared.
I [May 17 15:12:33] ndm: Network::Interface::OpenVpn: "OpenVPN0": remove installed accepted routes.
I [May 17 15:12:34] ndm: Core::Server: started Session /var/run/ndm.core.socket.
I [May 17 15:12:34] ndm: Core::Session: client disconnected.
I [May 17 15:12:34] ndm: Http::Manager: updated configuration.
I [May 17 15:12:34] ndm: Core::Server: started Session /var/run/ndm.core.socket.
I [May 17 15:12:34] ndm: Core::Session: client disconnected.
I [May 17 15:12:34] avahi-daemon[11808]: avahi-daemon 0.6.32 exiting.
E [May 17 15:12:36] OpenVPN0: Options error: In [CMD-LINE]:1: Error opening configuration file: /tmp/openvpn/OpenVPN0/openvpn.config
W [May 17 15:12:36] OpenVPN0: Use --help for more information.
E [May 17 15:12:36] ndm: Service: "OpenVPN0": unexpectedly stopped.

Конфиг клиента:

client
cipher AES-128-CBC
remote-cert-tls server
ncp-disable

key-direction 1

tls-client

dev tun

nobind
remote XXX.XXX.XXX.XXX YYYY udp4
pull

persist-key
persist-tun

keepalive 5 30

auth-nocache
resolv-retry infinite

comp-lzo no

tun-mtu 1500
fragment 1300
mssfix
fast-io
float
mlock

script-security 3

explicit-exit-notify 1

verb 1

<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----

-----END OpenVPN Static key V1-----
</tls-auth>
<ca>
-----
</ca>
<cert>
-----
</cert>
<key>
-----
</key>

Без tls-auth туннель держится стабильно, а с tls-auth умирает при смене сессионных ключей... Как-то так...

Link to comment
Share on other sites

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

E [May 17 15:12:36] OpenVPN0: Options error: In [CMD-LINE]:1: Error opening configuration file: /tmp/openvpn/OpenVPN0/openvpn.config

VPN работает стабильно.

Link to comment
Share on other sites

  • 8 months later...

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...