매시간 OpenVPN 서버와의 연결 끊기 9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error:

OpenVPN구성에 다소 이상한 문제가 있습니다. Windows 7공식 최신 OpenVPN클라이언트에서 OpenVPN서버로 연결 중 입니다 ( OpenVPN 2.1.4 i386-redhat-linux-gnu).

문제는 OpenVPN정확히 1 시간 후에 서버 에서 연결이 끊어지고 이에 대한 지시문 / 옵션이 무엇인지 이해할 수 없다는 것입니다. 클라이언트 문제일까요? 다른 Windows시스템과 Windows VPN클라이언트를 시도했습니다 . Linux클라이언트는 같은없이 단선 예상 노력하고 있습니다.

이 문제를 해결하는 데 도움을 주시겠습니까? 나는 책을 읽고 인터넷 검색을 시도하고 어떤 사람들은 놀 조언 keepalivereneg-sec지침. 그러나 그것은 도움이되지 않는 것 같습니다.

OpenVPN 서버 설정

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 192.168.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
client-config-dir ccd
route 192.168.51.0 255.255.255.0
keepalive 60 600
reneg-sec 5000
hand-window 15
tls-auth ta.key 0
comp-lzo
max-clients 50
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
crl-verify crl.pem
management localhost 11111
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
push "dhcp-option DNS 192.168.2.1"
push "dhcp-option DOMAIN example.com"
push "dhcp-option SEARCH example.com"

서버 로그 (reinit_src = 1의 문제가 아닙니까?)

Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS: move_session: dest=TM_LAME_DUCK src=TM_ACTIVE reinit_src=1
Oct  9 07:24:53 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS key negotiation failed to occur within 15 seconds (check your network connectivity)
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 [UNDEF] Inactivity timeout (--ping-restart), restarting
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 SIGUSR1[soft,ping-restart] received, client-instance restarting

클라이언트 로그

RwrWRwRwRwRwTue Oct 09 07:26:39 2012 us=796000 TLS: soft reset sec=0 bytes=7405621/0 pkts=9459/0
Tue Oct 09 07:26:39 2012 us=600000 ERROR: could not read Auth username from stdin
Tue Oct 09 07:26:39 2012 us=600000 Exiting
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 192.168.2.1 MASK 255.255.255.255 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 10.0.0.0 MASK 255.0.0.0 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 Closing TUN/TAP interface

대단히 감사합니다.



답변

범인은 인증 구성 인 것 같습니다. 당신이 사용하는 plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login연결하는 유효한 사용자 이름 / 암호 조합을 제공하기 위해 클라이언트를 필요로한다. 분명히, 이것은 키를 다시 입력 할 때 필요하며 OpenVPN 클라이언트가 stdin( ERROR: could not read Auth username from stdin) 에서 사용자 이름을 요청할 수없는 것 같습니다 .

서버 구성에서 reneg-sec를 높이는 것이 문제가되지 않는 이유는 서버와 클라이언트 구성을 모두 기본값 3600 초 이상으로 효과적으로 높이려면 매개 변수를 지정해야하기 때문입니다. 1 시간의 원인-보고있는 연결을 끊습니다).

그래서 당신의 선택은

  • 사용자 입력이 필요하지 않은 인증 방법을 사용하십시오 (증명서가 필요합니다)
  • 연결 설정 후 클라이언트가 사용자 이름 / 암호 조합을 요구하지 않는 이유를 해결하십시오.
  • 키를 다시 입력하는 기간을 늘리거나 키를 완전히 사용하지 않도록 설정하십시오 (연결의 보안이 약해 지므로 반드시 문제의 해결 방법은 아닙니다)

답변

당신은 당신의 시도 할 수 reneg-sec 0있습니다 server.conf:

https://duo.com/docs/openvpn

https://tldrify.com/m80

정말 간단합니다. OpenVPN은 기본적으로 3600 초마다 새 TLS 세션을 재협상하려고 시도하므로 새 OTP를 사용하여 매번 다시 인증해야합니다. 이런 종류의 행동을 피하기 위해서는 openvpn에게 TLS 세션을 재협상하지 않고 기존 세션을 유지하도록 keepalive지시 reneg-sec 0하는 것입니다.


답변

클라이언트 구성에 ‘auth-nocache’옵션을 추가했을 때 비슷한 효과가 발생했습니다. 인증서와 사용자 이름 + 비밀번호 조합을 사용하여 인증합니다.

openvpn이 다음과 같은 경고를보고 한 연결 로그에서 몇 번 확인했습니다.

경고 :이 구성은 암호를 메모리에 캐시 할 수 있습니다.이를 방지하려면 auth-nocache 옵션을 사용하십시오.

그래서 나는이 옵션을 추가하고 어떻게되는지 볼 것이라고 생각했습니다. 글쎄, 위의 경고는 사라지지만 1 시간 후에 대화 상자가 나타나서 사용자 이름과 암호를 묻는 메시지가 나타납니다.

Andrew의 위 구성 에이 옵션이 포함되어 있지 않으므로 암호를 캐시하지 않는 이유에 대해 조금 당황했습니다. 어쩌면 이것은 최신 버전의 openvpn을 사용하고 있거나 서버 구성 에서이 옵션을 클라이언트에 푸시하도록 설정할 수 있기 때문일 수 있습니다.

Windows 용 OpenVPN GUI v5가 설치된 OpenVPN 2.2.1-8 + deb7u2에서 볼 수 있습니다.