OpenVPN 프로필 이식성: 이식 가능한 키와 플랫폼 옵션
.ovpn 파일은 이식 가능한 신원 자료와 한 클라이언트만 이해하는 지시문을 섞습니다. 장애를 인증서 탓으로 돌리기 전에 둘을 비교하십시오.
같은 .ovpn 파일이 한 클라이언트에서는 터널을 열고 다른 클라이언트에서는 시작하지 않으며, 인증서가 흔히 첫 번째 용의자로 지목됩니다. 더 자주 파일에는 한 엔진만 구현하는 지시문이 들어 있습니다. 프로필은 특정 클라이언트와의 계약이며 이식 가능한 스크립트가 아닙니다.
신원과 함께 이동하는 것과 플랫폼에 속한 것을 분리하십시오. 그러면 장애는 대개 스스로 이름을 밝힙니다.
하나의 파일, 두 개의 계약
프로필은 CA와 클라이언트 인증서, 개인 키 같은 신원 자료, 원격 엔드포인트와 프로토콜 같은 전송 정보, 그리고 DNS 처리나 장치 옵션 같은 동작 지시문의 세 가지 내용을 묶습니다. 처음 두 가지는 같은 프로토콜을 지원하는 엔진 사이에서 폭넓게 이식 가능합니다. 세 번째가 구현이 갈리는 지점입니다. 파일 전체를 하나의 이식 가능한 단위로 취급하는 것이 혼란스러운 장애를 만듭니다.
한 플랫폼의 GUI에서 동작하는 파일이 다른 플랫폼의 명령줄 클라이언트에 자동으로 유효하지는 않습니다. 둘 다 OpenVPN이더라도 파서와 옵션 집합이 다릅니다. 그래서 성공적인 가져오기가 이식 가능한 프로필의 증거는 아닙니다.
이식 가능한 자료와 플랫폼 지시문
신원과 전송 섹션은 보존할 부분입니다. ca, cert, key, remote는 누가 어디로 연결하는지를 설명하며, 준수하는 모든 클라이언트에게 같은 의미입니다.
동작 지시문은 비교할 부분입니다. 예를 들어 block-outside-dns는 Windows의 DNS 동작을 바꾸기 위해 존재합니다. Unix 클라이언트는 그것을 전혀 알아보지 못할 수 있습니다.
보내는 쪽이 아니라 받는 쪽 클라이언트의 옵션 목록을 읽으십시오. OpenVPN 2.6 참조 설명서가 엔진의 옵션을 기록하며, GUI의 가져오기 대화상자는 그 목록이 아닙니다.
인증서보다 먼저 파서 오류를 읽으십시오
알 수 없는 옵션을 지목하는 오류는 인증 실패가 아니라 파서 실패입니다. 연결은 TLS에 도달하지 못했으므로 인증서를 바꿔도 도움이 되지 않습니다. 실제 클라이언트와 버전에서 첫 오류를 읽고, 그 클라이언트가 구현할 수 없는 지시문만 제거하거나 교체하십시오. 파일을 불러오게 하려고 인증서나 경로 섹션을 지우는 것이 동작하던 프로필을 안전하지 않게 만드는 길입니다.
오류가 핸드셰이크, 인증서 또는 암호를 언급하면 프로필은 파싱되었고 문제는 다른 곳에 있습니다.
원본 파일을 적응본 옆에 보관하십시오. 적응본이 나중에 실패하면 원본은 변경과 환경 중 무엇이 움직였는지 알려 주는 대조군입니다.
권한은 두 번째 경계
권한은 또 다른 경계이며, 터널 장치 생성, 경로 설치, 개인 키 읽기는 모두 로컬 권한에 의존합니다. root만 읽을 수 있는 키 파일은 정상적인 배포이며 프로필 결함이 아닙니다. 수정은 파일이 아니라 소유권이나 권한에 속합니다.
sudo로 클라이언트를 실행하면 로컬 권한 거부를 해결할 수 있지만, 바이너리가 구현하지 않는 지시문을 추가할 수는 없습니다. 어떤 사용자의 키링, 구성 경로, 네트워크 관리자 컨텍스트가 적용되는지도 바꾸므로 결과는 같은 시험이 아닙니다.
의도적으로 적응하십시오
공급자가 별도의 프로필을 게시하면 받는 쪽 클라이언트를 위한 것을 고르십시오. 다른 플랫폼의 파일을 적응하는 것은 최후의 수단입니다. 변경한 각 옵션의 기록과 원본의 사본이 필요합니다.
신원, 라우팅, DNS를 세 가지 별개의 결과로 시험하십시오. 인증하고 라우팅하지만 이름 해석을 깨뜨리는 프로필은 부분적으로 적응된 프로필이며 동작하는 프로필이 아닙니다.