LINUX.ORG.RU
решено ФорумAdmin

openvpn TLS Error: TLS handshake failed

 


0

1

Добрый день уважаемые форумчане.

Я настроил два сервера с openvpn, решил проблемы с iptables и drop. Один из серверов так же выступает клиентом второго и подключается к второму серверу.

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

В syslog я получаю следующее:

Sun Mar 22 17:06:53 2020 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jan  9 2019
Sun Mar 22 17:06:53 2020 library versions: OpenSSL 1.0.2g  1 Mar 2016, LZO 2.08
Sun Mar 22 17:06:53 2020 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Sun Mar 22 17:06:53 2020 Control Channel Authentication: tls-auth using INLINE static key file
Sun Mar 22 17:06:53 2020 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sun Mar 22 17:06:53 2020 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sun Mar 22 17:06:53 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sun Mar 22 17:06:53 2020 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Sun Mar 22 17:06:53 2020 UDPv4 link local: [undef]
Sun Mar 22 17:06:53 2020 UDPv4 link remote: [AF_INET]91.122.221.112:1194
Sun Mar 22 17:07:53 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun Mar 22 17:07:53 2020 TLS Error: TLS handshake failed
Sun Mar 22 17:07:53 2020 SIGUSR1[soft,tls-error] received, process restarting
Sun Mar 22 17:07:53 2020 Restart pause, 2 second(s)
Sun Mar 22 17:07:55 2020 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Sun Mar 22 17:07:55 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sun Mar 22 17:07:55 2020 UDPv4 link local: [undef]
Sun Mar 22 17:07:55 2020 UDPv4 link remote: [AF_INET]**.***.***.112:1194

В логах сервера, примерно то же самое.

Документация говорит, что появление такой проблемы типично в следующих Случаях

Разница между моим ПК и сервером(выступающим в роли клиента) только в том, что во втором работает ovpn server. Со своего ПК я подключаюсь, с сервера(выступающим в роли клиента) не могу.

На сервере(выступающим в роли клиента) открыты порты 1194 и 1195.
На сервере(выступающим в роли клиента) более низкая версия openssl.

Подскажите куда копать.



Последнее исправление: andrey7690 (всего исправлений: 3)

На сервере(выступающим в роли клиента) более низкая версия openssl.

это необходимость или прихоть?

anonymous
()

Подскажите куда копать.

«Отсюда и до обеда» !!!
Вам в вашей предыдущей теме уже писали
1. Полные пути до всех ключей/сертов/отдельный лог(log-append) чтобы не путаться.
2. Повысить логирование параметр verb 11
3. Запустить openvpn --config /path/config-name
А потом смотреть на выхлопы. Но прежде чем спрашивать, стоит и самому разобраться со своей сетью. Вы так и не осилили нарисовать схему сети. И при этом просите какой-то помощи. Извините телепаты из нас так себе.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

andrey7690
() автор топика
Ответ на: комментарий от Anoxemian

добавлю: трансопрт между серверами таки сделай на ipsec или wireguard

Вы хотите вызвать разрыв мозга у ТС ? Посмотрите соседнюю тему от него. :)

anc ★★★★★
()
Ответ на: комментарий от anc

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

andrey7690
() автор топика
Ответ на: комментарий от andrey7690

Уж простите, но последний пост в вашей предыдущей теме, так же является полной глупостью. Так же там я написал откуда копать нужно, но вы не последовали совету. И не последовали советам других. А продолжаете как писал анон «тыкать».
Ещё раз предлагаю просто спокойно сесть и расписать всё на схеме для себя самого. Тогда станет без разницы хоть ovpn, хоть ipsec, хоть wireguard, хоть tinc и т.д. Разница будет только в настройках. А вот тут мы вам с случае если не получаеться, постараемся помочь.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Сервер(выступает исключительно сервером ovpn)

Цикличный кусок лога:

Sun Mar 22 18:34:09 2020 us=212659 SCHEDULE: schedule_find_least wakeup=[Sun Mar 22 18:34:11 2020 us=135843] pri=267344810
Sun Mar 22 18:34:09 2020 us=212680 PO_CTL rwflags=0x0001 ev=8 arg=0x55c47669e168
Sun Mar 22 18:34:09 2020 us=212701 PO_CTL rwflags=0x0001 ev=7 arg=0x55c47669e068
Sun Mar 22 18:34:09 2020 us=212725 I/O WAIT TR|Tw|SR|Sw [1/136498]
Sun Mar 22 18:34:10 2020 us=349899  event_wait returned 0
Sun Mar 22 18:34:10 2020 us=349946 I/O WAIT status=0x0020
Sun Mar 22 18:34:10 2020 us=350421 MULTI: REAP range 240 -> 256
Sun Mar 22 18:34:10 2020 us=350453 **.***.**.**:44533 TIMER: coarse timer wakeup 1 seconds
Sun Mar 22 18:34:10 2020 us=350492 **.***.**.**:44533 TLS: tls_multi_process: i=0 state=S_PRE_START, mysid=3ed7a5da 75f3b067, stored-sid=7d49fd1b 15882a54, stored-ip=[AF_INET]**.***.**.**:445$
Sun Mar 22 18:34:10 2020 us=350516 **.***.**.**:44533 TLS: tls_process: chg=0 ks=S_PRE_START lame=S_UNDEF to_link->len=0 wakeup=604800
Sun Mar 22 18:34:10 2020 us=350540 **.***.**.**:44533 ACK reliable_can_send active=1 current=0 : [1] 0
Sun Mar 22 18:34:10 2020 us=350576 **.***.**.**:44533 ACK reliable_send_timeout 16 [1] 0
Sun Mar 22 18:34:10 2020 us=350598 **.***.**.**:44533 TLS: tls_process: timeout set to 14
Sun Mar 22 18:34:10 2020 us=350626 **.***.**.**:44533 TLS: tls_multi_process: i=1 state=S_INITIAL, mysid=83162bd8 97e3e1f4, stored-sid=00000000 00000000, stored-ip=[AF_UNSPEC]
Sun Mar 22 18:34:10 2020 us=350654 **.***.**.**:44533 TLS: tls_multi_process: i=2 state=S_UNDEF, mysid=00000000 00000000, stored-sid=00000000 00000000, stored-ip=[AF_UNSPEC]
Sun Mar 22 18:34:10 2020 us=350689 **.***.**.**:44533 SCHEDULE: schedule_add_modify wakeup=[Sun Mar 22 18:34:12 2020 us=135843] pri=267344810
Sun Mar 22 18:34:10 2020 us=350722 SCHEDULE: schedule_find_least wakeup=[Sun Mar 22 18:34:12 2020 us=135843] pri=1508855979
Sun Mar 22 18:34:10 2020 us=350743 PO_CTL rwflags=0x0001 ev=8 arg=0x55c47669e168
Sun Mar 22 18:34:10 2020 us=350764 PO_CTL rwflags=0x0001 ev=7 arg=0x55c47669e068
Sun Mar 22 18:34:10 2020 us=350788 I/O WAIT TR|Tw|SR|Sw [1/136498]
Sun Mar 22 18:34:11 2020 us=487963  event_wait returned 0
Sun Mar 22 18:34:11 2020 us=487999 I/O WAIT status=0x0020
Sun Mar 22 18:34:11 2020 us=488022 MULTI: REAP range 0 -> 16
Sun Mar 22 18:34:11 2020 us=488045 **.***.**.**:44533 TIMER: coarse timer wakeup 1 seconds
Sun Mar 22 18:34:11 2020 us=488078 **.***.**.**:44533 SCHEDULE: schedule_add_modify wakeup=[Sun Mar 22 18:34:13 2020 us=135843] pri=1508855979
Sun Mar 22 18:34:11 2020 us=488110 SCHEDULE: schedule_find_least wakeup=[Sun Mar 22 18:34:13 2020 us=14289] pri=1890505480

Конфиг:

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret
dh /etc/openvpn/dh2048.pem
server 10.9.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "route 10.4.31.0 255.255.255.0"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0 # This file is secret
key-direction 0
cipher AES-128-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
verb 9
explicit-exit-notify 1

Cервер(который выступает как сервер ovpn и клиентом первого сервера)

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

client
dev tun
proto udp
remote (**.***.**.** 1194
pull-filter ignore redirect-gateway
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
tls-auth ta.key 1
cipher AES-128-CBC
auth SHA256
key-direction 1
verb 9
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Лог:

Лог

andrey7690
() автор топика
Последнее исправление: andrey7690 (всего исправлений: 2)
Ответ на: комментарий от anc

Я найду подходящий курс на юдеми и выучу тему построения сетей как отче наш. У меня очень простая сеть, я нарисую схему сегодня до 22.00.

andrey7690
() автор топика
Ответ на: комментарий от anc

Они внутри файла *.ovpn, на домашнем ПК, я же не указываю пути, он берет их из файла. Могу предположить , что клиент по умолчанию смотрит в первую очередь в /etc/openvpn/ , а потом уже внутри .ovpn. Но вы опять назовёте это глупостью. Возможно цифра за ta.key указывает порядок.

andrey7690
() автор топика
Последнее исправление: andrey7690 (всего исправлений: 1)
Ответ на: комментарий от andrey7690

А ta.key не в нем? Приводите тогда полный конфиг только без содержания ключей и сертов в тэгах. Только тэги! начали закончили.
Типа
<ca>
-----BEGIN CERTIFICATE-----
тут ничего не показываем
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key -----
тут ничего не показываем
-----END OpenVPN Static key V1-----
</tls-auth>
И так далее.
Полный конфиг без содержания самих сертов и ключей.

anc ★★★★★
()
Ответ на: комментарий от anc

Прикладываю .ovpn:

client

;dev tap
dev tun

;dev-node MyTap

;proto tcp
proto udp

remote ************* 1194
;remote my-server-2 1194
pull-filter ignore redirect-gateway


;remote-random

resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

# Try to preserve some state across restarts.
persist-key
persist-tun

;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
#ca ca.crt
#cert client.crt
#key client.key

remote-cert-tls server

# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth ta.key 1

cipher AES-128-CBC
auth SHA256

key-direction 1

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
<ca>

</ca>
<cert>

-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----

</tls-auth>

andrey7690
() автор топика
Ответ на: комментарий от anc

pull-filter ignore "redirect-gatewa это вообще убрано из файла конфигурации клиента на сервере. Здесь забыл убрать.

tls-auth сейчас уберу.

andrey7690
() автор топика

человек. тот сервер, который еще и клиент должен запускать 2 (два) инстанса openvnp. с разными конфигами соответственно))

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian
  1. Первый стартует с системой, его конфиг и ключи лежат в /etc/opnvpn/*
  2. Клиент запускаю руками openvpn –config client.ovpn
Sun Mar 22 20:50:52 2020 Control Channel Authentication: tls-auth using INLINE static key file

КМК это означает что он берет tls из client.ovpn.

Выхлоп не поменялся.

andrey7690
() автор топика
Ответ на: комментарий от andrey7690

Может все-таки не полагаться на КМК, а смотреть выхлопы
ip a
ip r
как мининимум? И на основании этого хоть как-то думать?
А то у вас все ещё остается то что писал анон «методом тыка».

anc ★★★★★
()
Ответ на: комментарий от anc

Что это дает?

Вывод без запущенного openvpn –config client.ovpn

med@aplatov764-vps-1:~/opt/ovpn$ ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:3e:50:53:a8 brd ff:ff:ff:ff:ff:ff
    inet **.***.**.61/23 brd **.***.**.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2a02:408:7711:54:77:111:34:61/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::216:4eff:fe50:43a8/64 scope link 
       valid_lft forever preferred_lft forever
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
godvinmeddefault via **.***.**.1 dev ens3 onlink 
10.8.0.0/24 via 10.8.0.2 dev tun0 
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1 
**.***.**.0/23 dev ens3  proto kernel  scope link  src **.***.**.61 
andrey7690
() автор топика
Ответ на: комментарий от andrey7690

Что это дает?

Понимание куда и что будет роутится. Сколько повторять? Если с роутингом все в порядке, тогда уже смотрим FW. И ещё, если будет не согласование по cipher сжатию и т.п., это будет видно уже в логах самого ovpn достаточно наглядно.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

И как всегда, вы правы, что то с маршрутизацией не так, сейчас проверю iptables

1. Нет пинга с сервера ни до 8.8.8.8, ни до других серверов.
2. С клиентов сервера из п. 1. пинг до 8.8.8.8 есть.
andrey7690
() автор топика
Последнее исправление: andrey7690 (всего исправлений: 1)
Ответ на: комментарий от andrey7690

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

andrey7690
() автор топика
Ответ на: комментарий от andrey7690

Разберусь с шлюзом отпишусь.

Это лишнее. Найдите лучше шаблон заявления по собственному в соотвествии законодательства той территории где вы находитесь.
За столько дней можно было прочитать и «сети для самых маленьких»(первые части), и iptables tutorial, и полную документацию по openvpn у него очень годный man. Вы же продолжаете как «мартышка и очки». Может все-таки начать с обучения а не «тыкателем копипастером» быть?

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.