본문 바로가기
실생활 IT 지식 블로그 실생활 IT 지식 블로그

시놀로지 OpenVPN 연결 실패, TLS 핸드셰이크 오류가 발생하는 원인

IT왕세자 읽는 시간 약 18분

시놀로지 NAS에 VPN Server를 설치하고 OpenVPN을 설정하면 외부에서도 안전하게 NAS와 내부 네트워크에 접근할 수 있습니다.

특히 공유기의 포트포워딩을 최소화하면서 외부에서 NAS에 접속할 수 있다는 점 때문에 OpenVPN을 사용하는 경우가 많습니다.

그런데 설정을 완료하고 클라이언트에서 접속을 시도했을 때 다음과 같은 오류가 나타나는 경우가 있습니다.

TLS Error: TLS key negotiation failed to occur within 60 seconds 또는 TLS Error: TLS handshake failed

이런 메시지가 표시되면 인증서가 잘못됐다고 생각하기 쉽습니다.

하지만 OpenVPN의 TLS 핸드셰이크 오류는 클라이언트와 VPN 서버가 정상적인 연결을 시작하지 못하는 상황에서도 발생할 수 있습니다. OpenVPN 공식 문서 역시 TLS key negotiation timeout의 대표적인 원인으로 서버까지의 네트워크 연결 실패, 방화벽, NAT 포트포워딩, 잘못된 서버 주소 등을 설명하고 있습니다.

따라서 이 오류가 발생했을 때는 인증서만 계속 확인하기보다 서버 주소 → 포트 → 공유기 포트포워딩 → NAS 방화벽 → OpenVPN 설정 → 인증서와 암호화 설정 순서로 확인하는 것이 좋습니다.

TLS 핸드셰이크란 무엇일까?

OpenVPN은 연결을 시작할 때 바로 데이터를 주고받는 것이 아닙니다.

먼저 클라이언트와 서버가 서로 통신할 수 있는지 확인하고, 인증과 암호화에 필요한 정보를 교환합니다.

이 과정에서 사용되는 것이 TLS입니다.

쉽게 표현하면 다음과 같습니다.

OpenVPN 클라이언트 → NAS의 OpenVPN 서버 연결 → TLS 협상 → 인증 → VPN 터널 생성

그런데 첫 번째 단계에서 서버에 연결되지 않거나, 연결은 됐지만 인증과 암호화 조건이 맞지 않으면 TLS 핸드셰이크가 완료되지 않을 수 있습니다.

따라서 TLS 핸드셰이크 오류라고 해서 무조건 인증서 문제라고 생각하면 안 됩니다.

가장 먼저 확인해야 할 것은 OpenVPN 포트

시놀로지 VPN Server에서 OpenVPN은 기본적으로 UDP 1194번 포트를 사용합니다.

Synology 역시 OpenVPN 설정에서 기본 데이터 전송 포트가 UDP 1194이며, NAS와 라우터의 포트포워딩 및 방화벽 설정에서 UDP 1194가 열려 있는지 확인하도록 안내하고 있습니다.

따라서 OpenVPN 연결이 실패한다면 가장 먼저 현재 VPN Server가 어떤 포트를 사용하고 있는지 확인해야 합니다.

예를 들어 VPN Server에서 OpenVPN 포트를 변경했다면 클라이언트의 .ovpn 파일에도 동일한 포트가 반영되어야 합니다.

서버는 UDP 1194를 사용하고 있는데 클라이언트가 UDP 443으로 접속하려고 한다면 정상적으로 연결되지 않습니다.

공유기의 포트포워딩이 잘못됐을 수 있다

외부에서 NAS의 OpenVPN 서버에 접속하려면 인터넷에서 들어온 VPN 요청이 NAS까지 전달되어야 합니다.

일반적인 구조는 다음과 같습니다.

외부 클라이언트 → 인터넷 → 공유기 → NAS → VPN Server

여기서 공유기의 포트포워딩이 잘못되어 있다면 클라이언트는 NAS의 OpenVPN 서버까지 도달하지 못합니다.

예를 들어 NAS의 내부 IP가 192.168.0.20이라면 공유기에서 OpenVPN에 사용하는 UDP 포트를 해당 NAS로 전달하도록 설정해야 합니다.

특히 공유기를 교체했거나 초기화한 이후부터 OpenVPN 연결이 되지 않는다면 포트포워딩 설정이 사라졌는지 먼저 확인하는 것이 좋습니다.

NAS의 내부 IP가 변경됐는지 확인

포트포워딩이 정상적으로 보이더라도 NAS의 내부 IP가 변경됐다면 문제가 발생할 수 있습니다.

예전에는 NAS가 192.168.0.20을 사용했는데 현재는 192.168.0.35를 사용하고 있다면 공유기는 여전히 이전 주소로 OpenVPN 연결을 전달할 수 있습니다.

이 경우 VPN Server는 정상적으로 실행되고 있어도 외부 클라이언트의 요청이 NAS까지 도착하지 않습니다.

따라서 공유기의 포트포워딩 대상 IP와 NAS가 현재 사용하고 있는 IP가 동일한지 확인해야 합니다.

NAS를 장기간 운영할 계획이라면 내부 IP가 변경되지 않도록 DHCP 예약이나 고정 IP를 적절하게 사용하는 것도 도움이 됩니다.

DDNS 주소가 잘못된 경우

외부에서 OpenVPN을 사용할 때는 공인 IP 대신 DDNS 주소를 사용하는 경우가 많습니다.

예를 들어 클라이언트 설정 파일에 특정 DDNS 주소가 입력되어 있다면 해당 도메인이 현재 집이나 사무실 인터넷 회선의 공인 IP를 정확하게 가리켜야 합니다.

인터넷 회선의 공인 IP가 변경됐는데 DDNS 정보가 갱신되지 않았다면 클라이언트는 잘못된 주소로 접속을 시도하게 됩니다.

이 경우 클라이언트에서는 TLS 핸드셰이크 오류처럼 보일 수 있습니다.

따라서 OpenVPN 연결이 갑자기 실패하기 시작했다면 DDNS 주소가 현재 공인 IP를 가리키고 있는지도 확인하는 것이 좋습니다.

.ovpn 설정 파일의 서버 주소를 확인

시놀로지 VPN Server에서는 OpenVPN 클라이언트용 설정 파일을 내보낼 수 있습니다.

Synology에 따르면 내보낸 구성에는 클라이언트용 openvpn.ovpn 파일과 인증 관련 파일 등이 포함될 수 있습니다.

이 파일에서 특히 확인해야 할 부분이 remote 설정입니다.

클라이언트는 이 설정을 이용해 어느 서버와 어떤 포트로 연결할지 결정합니다.

따라서 NAS의 현재 DDNS 주소나 공인 IP와 .ovpn 파일에 입력된 서버 주소가 다르다면 연결이 실패할 수 있습니다.

예전에 생성한 .ovpn 파일을 계속 사용하고 있다면 현재 NAS 환경과 설정이 달라졌을 가능성도 있습니다.

VPN Server의 OpenVPN 설정과 클라이언트 설정이 일치해야 한다

OpenVPN에서는 서버와 클라이언트의 설정이 서로 맞아야 합니다.

특히 다음과 같은 항목을 확인해야 합니다.

  • 연결 프로토콜
  • OpenVPN 포트
  • 암호화 설정
  • 인증 방식
  • TLS 관련 설정
  • 인증서
  • CA 파일
  • tls-auth 또는 관련 키 설정

Synology 역시 VPN 클라이언트의 인증 및 암호화 설정이 VPN Server에서 지정한 설정과 동일해야 정상적으로 연결할 수 있다고 안내합니다.

따라서 서버 설정을 변경한 후 예전에 만들어 둔 .ovpn 파일을 그대로 사용하는 경우 문제가 발생할 수 있습니다.

서버 설정을 변경했다면 새로운 설정 파일을 사용하는 것이 좋다

OpenVPN 설정을 변경했다면 기존 클라이언트 설정 파일이 현재 서버 환경과 일치하지 않을 수 있습니다.

특히 인증서나 암호화 관련 설정을 변경했다면 기존 .ovpn 파일을 계속 사용하는 것보다 VPN Server에서 새로운 구성 파일을 다시 내보내 사용하는 것이 안전합니다.

Synology는 VPN Server에서 인증서를 변경한 경우 VPN Server가 다시 시작되며, 새로운 .ovpn 파일을 모든 클라이언트에 다시 내보내야 한다고 안내합니다.

따라서 설정을 여러 번 변경했다면 기존 파일을 계속 수정하기보다는 현재 서버 설정을 기준으로 새 클라이언트 설정 파일을 생성하는 방법을 먼저 고려하는 것이 좋습니다.

NAS 방화벽에서 OpenVPN 포트를 차단할 수 있다

공유기 포트포워딩이 정상인데도 연결되지 않는다면 NAS의 방화벽을 확인해야 합니다.

시놀로지 DSM에서 방화벽을 활성화한 경우 특정 포트나 네트워크의 접근을 차단할 수 있습니다.

공유기에서 UDP 1194를 NAS로 전달하더라도 NAS 방화벽에서 해당 연결을 차단한다면 OpenVPN 클라이언트는 서버와 정상적으로 통신할 수 없습니다.

특히 최근에 DSM 방화벽 규칙을 추가했거나 네트워크 보안 설정을 변경했다면 이 부분을 확인하는 것이 좋습니다.

다만 문제를 해결하기 위해 방화벽을 무조건 비활성화하는 것은 권장하지 않습니다.

필요한 OpenVPN 포트와 네트워크만 허용하도록 규칙을 조정하는 것이 좋습니다.

이중 NAT 환경인지 확인

집이나 사무실의 네트워크가 인터넷 → 통신사 공유기 → 개인 공유기 → NAS 형태라면 이중 NAT 환경일 가능성이 있습니다.

이 경우 개인 공유기에서 UDP 1194 포트포워딩을 설정했다고 하더라도 외부에서 들어온 요청이 첫 번째 공유기에서 막힐 수 있습니다.

OpenVPN 공식 문서에서도 NAT 게이트웨이를 사용하는 경우 VPN 서버로 연결되는 포트포워딩이 필요하다고 설명합니다.

따라서 OpenVPN 연결이 전혀 시작되지 않는다면 공유기가 한 대인지, 상위에 다른 라우터가 존재하는지도 확인하는 것이 좋습니다.

CGNAT 환경도 확인해야 한다

최근에는 일부 인터넷 환경에서 사용자가 직접 공인 IPv4를 할당받지 않고 통신사 측의 CGNAT 뒤에 연결되는 경우가 있습니다.

이 경우 공유기에서 포트포워딩을 설정해도 인터넷에서 NAS로 직접 들어오는 연결 자체가 어려울 수 있습니다.

따라서 공유기 포트포워딩 정상 → NAS 방화벽 정상 → OpenVPN 설정 정상인데도 외부에서 전혀 연결되지 않는다면 인터넷 회선이 실제 공인 IP를 사용하는 환경인지 확인할 필요가 있습니다.

이 문제는 NAS 설정만 변경해서 해결되지 않을 수 있습니다.

OpenVPN 서버의 인증서도 확인

TLS 핸드셰이크라는 이름 때문에 가장 먼저 인증서를 확인하고 싶어질 수 있습니다.

실제로 인증서가 만료되었거나 클라이언트가 신뢰할 수 없는 인증서를 사용하면 TLS 협상에 실패할 수 있습니다.

OpenVPN은 인증서 만료, 잘못된 인증서, CA 불일치 등 여러 인증 관련 오류를 TLS 과정에서 발생시킬 수 있습니다.

시놀로지 VPN Server는 DSM의 제어판 → 보안 → 인증서에 등록된 인증서를 사용합니다. Synology는 타사 인증서를 사용하는 경우 해당 인증서를 가져온 뒤 VPN Server를 다시 시작하도록 안내하고 있습니다.

따라서 인증서가 최근에 변경됐거나 만료됐다면 이 부분도 확인해야 합니다.

OpenVPN 버전 차이로 발생할 수도 있다

오래된 OpenVPN 클라이언트와 최신 서버를 함께 사용하는 경우에도 문제가 발생할 수 있습니다.

OpenVPN 2.6 및 OpenSSL 3.0 계열에서는 이전 버전에서 사용되던 약한 인증서나 오래된 암호화 방식이 더 이상 기본적으로 허용되지 않는 경우가 있습니다.

예를 들어 오래된 인증서나 예전의 암호화 알고리즘을 사용하고 있다면 최신 OpenVPN 클라이언트에서 연결이 거부될 수 있습니다.

따라서 NAS의 OpenVPN 설정을 오랫동안 변경하지 않았고 클라이언트 프로그램만 최신 버전으로 업데이트한 이후 문제가 발생했다면 OpenVPN 버전과 암호화 설정의 호환성도 확인해야 합니다.

보안을 낮추는 방식으로 오래된 암호화를 강제로 허용하기보다는 가능하면 서버와 클라이언트를 현재 지원되는 설정으로 맞추는 것이 좋습니다.

TLS-Auth 설정이 맞지 않는 경우

OpenVPN에서는 tls-auth를 이용해 TLS 제어 채널에 대한 추가적인 인증을 적용할 수 있습니다.

OpenVPN 공식 문서에 따르면 tls-auth는 잘못된 HMAC 서명을 가진 패킷을 초기 단계에서 걸러내는 일종의 보호 장치 역할을 합니다.

그런데 서버와 클라이언트에서 사용하는 키나 방향 설정이 서로 맞지 않으면 TLS 연결이 정상적으로 진행되지 않을 수 있습니다.

따라서 .ovpn 파일을 직접 수정했다면 tls-auth 또는 관련 키 설정을 임의로 변경하지 않았는지 확인해야 합니다.

특히 정상적으로 생성된 시놀로지 설정 파일을 직접 수정한 이후부터 문제가 발생했다면 변경한 부분을 우선적으로 확인하는 것이 좋습니다.

UDP와 TCP 설정을 혼동하지 않았는지 확인

OpenVPN은 UDP와 TCP를 모두 사용할 수 있습니다.

하지만 서버가 UDP로 실행되고 있는데 클라이언트가 TCP로 연결하도록 설정되어 있다면 정상적인 통신이 이루어지지 않습니다.

예를 들어 서버가 UDP 1194를 사용하도록 설정되어 있다면 클라이언트 역시 동일한 프로토콜과 포트를 사용해야 합니다.

Synology 역시 OpenVPN 서버에서 데이터 전송 포트와 프로토콜을 지정할 수 있으며, 해당 설정을 클라이언트 구성과 맞춰야 합니다.

따라서 .ovpn 파일의 proto 설정과 서버의 프로토콜 설정이 일치하는지 확인하는 것이 좋습니다.

MTU 문제는 연결 후 불안정할 때 확인

TLS 핸드셰이크가 아예 시작되지 않는 경우에는 포트와 네트워크 경로를 먼저 확인하는 것이 좋습니다.

하지만 VPN 연결은 성공하는데 이후 특정 사이트나 서비스가 열리지 않거나 연결이 자주 끊기는 경우에는 MTU 문제도 생각해 볼 수 있습니다.

Synology는 복잡한 네트워크 환경에서 VPN 연결이 불안정하거나 시간 초과가 계속 발생한다면 MTU 크기를 줄여보는 방법을 안내하고 있습니다.

따라서 연결 자체가 안 되는 문제와 연결 후 데이터 통신이 불안정한 문제를 구분해서 접근하는 것이 중요합니다.

TLS 핸드셰이크 오류를 확인하는 순서

OpenVPN 연결이 실패할 때는 다음 순서로 확인하면 원인을 좁히기 쉽습니다.

먼저 VPN Server에서 OpenVPN 서비스가 활성화되어 있는지 확인합니다.

그다음 OpenVPN 서버가 사용하는 포트와 프로토콜을 확인합니다.

기본 설정이라면 UDP 1194번 포트를 확인합니다.

이후 공유기의 포트포워딩이 해당 포트를 NAS의 현재 내부 IP로 전달하고 있는지 확인합니다.

NAS의 내부 IP가 변경되지 않았는지도 확인합니다.

DDNS를 사용하는 경우 현재 공인 IP를 정확하게 가리키는지도 확인합니다.

그다음 NAS 방화벽에서 OpenVPN 연결을 차단하고 있지 않은지 확인합니다.

이중 NAT나 CGNAT 환경인지도 확인합니다.

이후 .ovpn 파일의 서버 주소와 포트, UDP/TCP 설정을 확인합니다.

마지막으로 인증서와 CA, 암호화 방식, TLS 관련 설정이 서버와 클라이언트에서 일치하는지 확인합니다.

이 순서대로 확인하면 인증서부터 무작정 교체하는 것보다 훨씬 효율적으로 문제를 찾을 수 있습니다.

연결 로그를 확인하면 원인을 더 쉽게 찾을 수 있다

OpenVPN 문제를 해결할 때는 오류 메시지 전체를 확인하는 것이 중요합니다.

예를 들어 TLS key negotiation failed to occur within 60 seconds

라는 메시지가 반복된다면 서버와 클라이언트 사이의 연결 자체가 제대로 이루어지지 않는 상황을 먼저 의심할 수 있습니다. OpenVPN 공식 문서에서도 이 오류의 주요 해결 방법으로 서버 주소와 포트, 포트포워딩, 방화벽 등을 확인하도록 안내합니다.

반면 certificate verify failed 와 같은 메시지가 나타난다면 네트워크 연결보다는 인증서 검증 문제를 먼저 확인하는 것이 적절합니다.

즉, 같은 TLS 오류라고 하더라도 로그에 표시되는 구체적인 메시지를 확인하는 것이 중요합니다.

외부에서만 연결되지 않는다면 네트워크부터 확인

집의 Wi-Fi에서는 OpenVPN 연결이 되는데 외부 LTE나 다른 Wi-Fi에서는 연결되지 않는다면 NAS의 OpenVPN 설정 자체보다 외부 네트워크 경로를 먼저 확인하는 것이 좋습니다.

이 경우 DDNS → 공인 IP → 공유기 → 포트포워딩 → NAS 방화벽 순서로 확인하면 됩니다.

반대로 같은 네트워크 안에서도 OpenVPN 클라이언트가 연결되지 않는다면 VPN Server의 설정이나 인증서, 클라이언트 구성 파일 등을 먼저 확인하는 것이 좋습니다.

문제가 발생하는 위치를 구분하는 것만으로도 불필요한 설정 변경을 크게 줄일 수 있습니다.

마무리

시놀로지 NAS에서 OpenVPN 연결 실패와 TLS 핸드셰이크 오류가 발생했다고 해서 반드시 인증서가 잘못된 것은 아닙니다.

오히려 처음부터 서버와 클라이언트 사이의 네트워크 연결이 이루어지지 않아 TLS 협상 단계까지 정상적으로 진행되지 않는 경우도 많습니다. OpenVPN 공식 문서에서도 TLS key negotiation timeout의 대표적인 원인으로 방화벽, NAT 포트포워딩, 잘못된 서버 주소와 포트 등을 설명하고 있습니다.

따라서 다음과 같은 순서로 확인하는 것이 좋습니다.

OpenVPN Server 실행 상태 → 서버 포트와 프로토콜 → 공유기 포트포워딩 → NAS 내부 IP → DDNS → NAS 방화벽 → 이중 NAT·CGNAT → .ovpn 설정 → 인증서 → TLS·암호화 설정

특히 시놀로지의 기본 OpenVPN 설정에서는 UDP 1194번 포트가 사용되므로 이 포트가 공유기와 NAS 방화벽에서 정상적으로 허용되어 있는지 먼저 확인하는 것이 좋습니다.

또한 NAS의 VPN Server 설정을 변경했다면 예전에 만들어 놓은 .ovpn 파일을 그대로 사용하는 것보다 현재 설정을 기준으로 새로운 구성 파일을 다시 내보내는 방법이 안전합니다.

결국 TLS 핸드셰이크 오류를 해결하는 핵심은 인증서를 무작정 다시 발급하는 것이 아니라 클라이언트의 요청이 NAS의 OpenVPN 서버까지 실제로 도달하는지, 그리고 서버와 클라이언트의 보안 설정이 서로 일치하는지를 단계적으로 확인하는 것입니다.

이 과정을 순서대로 확인하면 OpenVPN을 처음부터 다시 설치하지 않고도 연결 실패의 원인을 상당 부분 좁혀갈 수 있습니다.

IT왕세자

IT왕세자
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.