Jump to content
Sign in to follow this  
d1m4n

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). Но это уже будет совсем костыль, а хочется, чтобы работало правильно и красиво...

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
3 часа назад, d1m4n сказал:

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

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

Share this post


Link to post
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

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

Share this post


Link to post
Share on other sites
59 минут назад, d1m4n сказал:

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

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

 


user root
	group operator

 

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

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

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

Share this post


Link to post
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 умирает при смене сессионных ключей... Как-то так...

Share this post


Link to post
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 работает стабильно.

Share this post


Link to post
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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...