Аутентификация OpenVPN / Ошибка дешифрования пакета

Я пытаюсь подключить ноутбук под управлением Windos 10 к серверу Ubuntu 16.04 под управлением OpenVPN.

Клиент продолжает получать эту ошибку:

 MANAGEMENT: >STATE:1491498025,WAIT,,,,,,
 Connection reset, restarting [0]
 SIGUSR1[soft,connection-reset] received, process restarting
 MANAGEMENT: >STATE:1491498025,RECONNECTING,connection-reset,,

Я следовал этому руководству, чтобы настроить OpenVPN. Все по умолчанию, за исключением того, что я изменил на порт 443 и TCP.

На сервере я вижу эту ошибку из "Systemctl status openvpn @ server":

 ovpn-server[4627]: [IP ADDR] Fatal TLS error (check_tls_errors_co), restarting
 ovpn-server[4627]: [IP ADDR] SIGUSR1[soft,tls-error] received, client-instance restarting
 ovpn-server[4627]: TCP connection established with [AF_INET][IP ADDR]
 ovpn-server[4627]: [IP ADDR] TLS: Initial packet from [AF_INET][IP ADDR], sid=5bf6806d 9c9b6639
 ovpn-server[4627]:[IP ADDR] Authenticate/Decrypt packet error: packet HMAC authentication failed
 ovpn-server[4627]: [IP ADDR] TLS Error: incoming packet authentication failed from [AF_INET][IP ADDR]
 ovpn-server[4627]: [IP ADDR] Fatal TLS error (check_tls_errors_co), restarting
 ovpn-server[4627]: [IP ADDR] SIGUSR1[soft,tls-error] received, client-instance restarting

server.conf:

port 443
proto tcp
dev tun
ca ca.crt
cert KICLAB-HV-01.crt
key KICLAB-HV-01.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0
key-direction 0 
mode server
tls-server
cipher AES-128-CBC    # AES
auth SHA256           # SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

base.conf:

client
dev tun
proto tcp
remote [Internal LAN IP for testing] 443
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
cipher AES-128-CBC
auth SHA256 
key-direction 1
comp-lzo
verb 3

Журнал клиента

Attempting to establish TCP connection with [AF_INET][IP:443} [nonblock]
MANAGEMENT: >STATE:1491826387,TCP_CONNECT,,,,,,
TCP connection established with [AF_INET][IP:443}
TCP_CLIENT link local: (not bound)
TCP_CLIENT link remote: [AF_INET][IP:443}
MANAGEMENT: >STATE:1491826388,WAIT,,,,,,
Connection reset, restarting [0]
SIGUSR1[soft,connection-reset] received, process restarting
MANAGEMENT: >STATE:1491826388,RECONNECTING,connection-reset,,,,,
Restart pause, 5 second(s)
TCP/UDP: Preserving recently used remote address: [AF_INET][IP:443}
Socket Buffers: R=[65536->65536] S=[65536->65536]
Attempting to establish TCP connection with [AF_INET][IP:443} [nonblock]
MANAGEMENT: >STATE:1491826393,TCP_CONNECT,,,,,,
TCP connection established with [AF_INET][IP:443}
TCP_CLIENT link local: (not bound)
TCP_CLIENT link remote: [AF_INET][IP:443}
MANAGEMENT: >STATE:1491826394,WAIT,,,,,,
Connection reset, restarting [0]
SIGUSR1[soft,connection-reset] received, process restarting
MANAGEMENT: >STATE:1491826394,RECONNECTING,connection-reset,,,,,
Restart pause, 5 second(s)

Текущий вывод "Systemctl Status openvpn@server" (обратите внимание, что [IP] на самом деле не правильный IP для клиента. Это проблема?):

MULTI: multi_init called, r=256 v=256
IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
IFCONFIG POOL LIST
MULTI: TCP INIT maxclients=1024 maxevents=1028
Initialization Sequence Completed
TCP connection established with [AF_INET][IP]:48758
[IP]:48758 TLS: Initial packet from [AF_INET][IP]:48758, sid=9ab50ac0 a37efe04
[IP]:48758 TLS Error: reading acknowledgement record from packet
[IP]:48758 Fatal TLS error (check_tls_errors_co), restarting
Apr 10 08:36:24 [host] ovpn-server[2191]: [IP]:48758 SIGUSR1[soft,tls-error] received, client-instance restarting

Спасибо!

2 ответа

Решение

У вас нет сертификата для клиента в ваших конфигах. Вы должны сгенерировать один подписанный тем же CA, который вы используете на своем сервере, и добавить его в client.conf следующим образом:

ca "ca.crt"
cert "client.crt"
key "client.key"

С сайта OpenVPN:

Опция --tls-auth использует статический предварительный общий ключ (PSK), который должен быть сгенерирован заранее и распространен среди всех пиров.

У вас есть это на вашем сервере как:

tls-auth ta.key 0 # This file is secret
key-direction 0

Но на клиенте вы это закомментировали:

;tls-auth ta.key 1
...
key-direction 1

Второй аргумент tls-auth является ключевым направлением, поэтому вам не нужно повторять его, используя key-direction строфа.

На вашем сервере просто удалите key-direction 0 в строке, а на вашем клиенте удалите как разделитель комментариев (;) и key-direction 1 линия.

Конечно, ta.key Прежде чем все вышеперечисленное сработает, сначала необходимо установить его на клиентский компьютер - скопируйте его туда с помощью scp или похожие.

Другие вопросы по тегам