.ovpn 파일에 실제로 들어 있는 것과 그것이 할 수 없는 일
.ovpn 파일은 서버가 아니라 클라이언트를 설정합니다. 전송, 키, 라우팅 줄이 무엇을 할 수 있고 그 영향이 어디서 멈추는지 확인하세요.
대부분의 사람은 .ovpn 파일이 VPN을 설정한다고 생각합니다. 그렇지 않습니다. 이 파일은 하나의 클라이언트를 설정하며, 요청하는 모든 것은 이미 상대편에 존재해야 합니다. 파일의 한 줄을 바꾸면 내 컴퓨터가 시도하는 것은 바뀌지만 서버가 제공하는 것은 결코 바뀌지 않습니다. 이 차이가 가져오기나 연결에 실패하는 프로필에 관한 혼란의 대부분을 설명합니다.
파일을 클라이언트에게 보내는 요청 목록으로 읽으면 대부분의 줄이 분명해집니다.
파일은 서버가 아니라 클라이언트를 설명합니다
프로필은 remote 엔드포인트, 전송 방식, 인터페이스 유형, 신원 자료, 그리고 운영자가 원하는 모든 클라이언트 측 동작을 묶습니다. 각 줄은 시작할 때 클라이언트가 실행합니다. 그중 어느 것도 구성 변경으로 서버에 도달하지 않으며, 이미 실행 중이지 않은 리스너를 만들 수도 없습니다. UDP 1194에서만 수신하는 서버를 상대로 TCP 443을 지정한 프로필 첫 패킷에서 실패합니다.
같은 파일이 두 클라이언트에서 다르게 동작하는 이유도 같습니다. 파일은 요청하고, 클라이언트는 그 요청을 얼마나 들어줄지 결정합니다.
전송 줄은 이미 존재하는 리스너와 일치해야 합니다
proto 및 remote 줄은 서버가 실제로 바인딩하는 것과 일치해야 합니다. UDP가 일반적인 선택인 이유는 손실된 데이터그램이 터널을 멈추지 않기 때문이고, TCP는 터널 내부의 헤드 오브 라인 블로킹을 대가로 제한적인 네트워크에서 살아남을 수 있습니다. 프로필을 UDP에서 TCP로 바꾼다고 서버가 TCP를 받아들이지는 않습니다. 아무도 읽지 않는 포트로 클라이언트가 보내게 될 뿐입니다.
443 포트가 인기 있는 이유는 다른 것을 거의 허용하지 않는 네트워크를 통과하기 때문이며, 이는 HTTPS 요청이 아니라 OpenVPN 세션으로 남습니다. 운영자가 여러 remote 줄을 게시하면 클라이언트는 순서대로 시도하며, 이는 로드 밸런싱 결정이 아니라 장애 조치 목록입니다. 한 항목의 호스트와 다른 항목의 포트를 섞지 말고 운영자가 제공한 조합을 유지하세요.
내장된 키는 파일을 다루는 방식을 바꿉니다
인증서와 키는 <ca>, <cert> 및 <key> 태그 사이에 인라인으로 있을 수 있고, 별도 파일로 참조될 수도 있습니다. 인라인 자료는 프로필을 자립적으로 만들고 동시에 비밀로 만듭니다. 클라이언트의 개인 키가 그 안에서 이동하기 때문입니다. CA 인증서는 공개 신뢰 자료이므로 공유해도 안전하지만, 개인 키는 그렇지 않습니다. 읽을 수 없는 텍스트 덩어리처럼 보여도 마찬가지입니다.
키를 보호하는 암호 문구는 계정 비밀번호와 별개의 비밀이며, 둘을 혼동하면 잘못된 자격 증명처럼 보이는 인증 실패가 발생합니다.
경로와 DNS는 파일에서 전혀 오지 않을 수 있습니다
라우팅은 서버가 밀어 넣을 수도, 프로필이 redirect-gateway 으로 설정할 수도, 클라이언트 자체의 기본값에 맡길 수도 있습니다. 따라서 내려받은 파일이 터널이 올라온 뒤 트래픽이 어디로 가는지 완전히 결정하지는 않습니다. 내부 이름은 해석되는데 공개 사이트는 해석되지 않는다면, 분할 터널 정책이 설계된 대로 동작하는 것이지 실패하는 것이 아닙니다.
DNS도 같은 패턴을 따릅니다. 밀어 넣은 dhcp-option DNS 을 클라이언트가 적용할 수도, 무시할 수도, 로컬 리졸버 관리자가 덮어쓸 수도 있습니다. 프로필을 다시 읽지 말고 연결 후 리졸버 상태를 확인하세요.
지원되지 않는 옵션은 클라이언트 버전의 문제입니다
가져오기 경고는 보통 클라이언트가 지시문을 구현하지 않는다는 뜻이며, 파일이 손상되었다는 뜻이 아닙니다. 데스크톱 클라이언트는 문서화된 통제 아래 스크립트와 플러그인을 실행할 수 있지만, 모바일 클라이언트는 더 좁은 집합을 받아들이고 이해하지 못하는 줄을 조용히 버릴 수 있습니다. 구형 클라이언트가 거부하는 암호나 TLS 설정은 운영자와 해결할 버전 문제입니다. 낯선 권한을 켜서 가져오기를 강제하는 것은 경고를 더 넓은 공격 표면과 맞바꾸는 일입니다.
비교를 위해 원본 파일을 보관하고, 요청에 지원되지 않는 지시문을 정확히 적고, 실제로 실행하는 클라이언트용으로 만들어진 프로필을 요청하세요.
교체한 뒤에는 앱이 어떤 프로필 항목을 사용하는지 확인하세요. 새 파일을 가져온다고 해서 항상 이전 파일이 덮어써지는 것은 아닙니다.