내가 겪고 있는 문제는 auth-user-pass
openvpn3의 옵션을 사용하여 인증을 시도할 때마다 항상 다음과 유사한 오류가 발생한다는 것입니다.
** ERROR ** org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code36: GDBus.Error:net.openvpn.v3.sessions.error: Failed communicating with VPN backend: Failed calling D-Bus method Connect: GDBus.Error:net.openvpn.v3.backend.error.standard: Failed executing D-Bus call 'Connect': Configuration parsing failed: ERR_PROFILE_OPTION: option_error: remote option not specified
아니면 그냥 낡은 것:
session-start: ** ERROR ** Failed to start session
내 ovpn 파일의 관련 줄은 다음과 같습니다.
auth-user-pass creds.txt
내 VPN 제공업체는 Nord입니다. 내 운영체제는 Debian 10입니다.
이 문제, 자동 시작, 이전 openvpn2 cli 등을 해결하기 위해 할 수 있는 모든 것을 시도했지만 다음 오류 중 하나가 계속 발생합니다. 도와주세요!
답변1
대부분의 새 릴리스와 마찬가지로 Linux 커뮤니티용 OpenVPN 3에서도 보안이 향상되었습니다. 이를 달성하는 한 가지 방법은 사용자 자격 증명에 대한 요구 사항을 늘리는 것입니다. 이 향상된 보안은 자격 증명 파일을 통해 사용자 이름과 비밀번호가 제공되는 OpenVPN 2.x 클라이언트에서 사용되는 기능을 제거합니다. 이번 보안 변경으로 인해 누락된 기능에 대한 몇 가지 버그 보고서가 접수되었습니다. 우리는 이를 버그로 간주하지 않지만 지원되지 않는 것으로 간주합니다. 우리는 암호화되지 않은 사용자 자격 증명을 메모리나 디스크에 저장하는 것에 대해 우려하고 있습니다.
OpenVPN 3 Linux는 VPN 세션을 시작할 때 사용자 자격 증명을 제공하는 --auth-user-pass를 지원합니다. openvpn3 및 openvpn2 명령줄 옵션을 사용하여 미리 저장된 파일을 통해 이러한 자격 증명을 제공하는 것을 지원하지 않습니다.
이 기능이 지원되지 않는 이유는 무엇입니까? OpenVPN 3 Linux는 구성 및 세션 관리를 제공합니다. 이를 통해 권한이 없는 사용자가 자신의 VPN 세션을 시작할 수 있습니다. 더 이상 OpenVPN 2.x에 필요한 관리 권한이 필요하지 않습니다. 권한 분리는 기본 설계에 내장되어 있습니다. OpenVPN 3 Linux는 또한 가능한 적은 권한으로 실행되도록 설계되었습니다. 각 작업은 별도의 프로세스에서 실행되며 엄격한 액세스 정책이 적용되는 인터페이스를 통해서만 서로 통신할 수 있습니다. D-Bus는 이 인터페이스와 정책 관리를 처리합니다.
OpenVPN 2.x 세대 클라이언트를 실행하려면 관리자 권한이 필요합니다. 그 후에는 삭제할 수 있습니다. 또한 VPN 세션이나 구성 관리도 제공하지 않습니다. 단일 프로세스는 단일 VPN 세션이며 구성 및 세션 관리는 수동으로 수행되거나 NetworkManager OpenVPN 플러그인과 같은 외부 도구를 사용하여 수행됩니다.
따라서 우리는 사용자에게 민감한 정보를 최대한 많이 저장하지 않으려고 합니다. OpenVPN 3 Linux가 발전함에 따라 VPN 구성 파일의 개인 키와 같은 사용자에 민감한 구성의 다른 측면을 처리하기 위한 새로운 조치를 취할 것입니다.
해결책이 있습니다. 우리는 엄격하려고 노력하지만 VPN 세션을 시작할 때 특정 설정에는 사용자 자격 증명이 필요하다는 점도 알고 있습니다. 일반적인 사용 사례는 부팅 중에 VPN 세션을 시작하는 것입니다. VPN 세션이 없으면 시스템을 실행하는 데 액세스할 수 없습니다.
이 경우 openvpn3-autoload 유틸리티를 추가했습니다. 이는 부팅 중에 이 서비스를 쉽게 사용할 수 있도록 자체 시스템 단위 파일과 함께 제공됩니다. 이는 로컬로 호스트에 로그인하는 최종 사용자에게는 적합하지 않을 수 있습니다. 그러나 이 유틸리티는 사용자가 VPN 구성 파일을 저장하는 파일 디렉터리를 사용하여 권한이 없는 사용자도 사용할 수 있습니다.
이 유틸리티는 VPN 구성 파일(.conf 또는 .ovpn 파일 확장자 사용)을 보관하는 단일 디렉터리에 의존합니다. 그러나 지원 구성 파일도 필요합니다.
OpenVPN 3 프로필 및 프로필 OpenVPN 3이 개발되면서 구성 프로필이 자연스럽게 분리된다는 것을 깨달았습니다. 그 중 일부는 OpenVPN 도메인의 모든 클라이언트에 공통됩니다. 이 옵션은 연결 위치, 자격 증명, 암호화 설정 등에 대한 정보를 제공합니다. 그러나 다른 섹션에서는 원격 서버에 연결하는 방법과 서버 푸시 네트워크 구성 설정의 특정 측면(일반적으로 네트워크 라우팅 및 DNS 설정)을 처리하는 방법을 자세히 설명합니다. 우리는 이것을 사이트 로컬 구성이라고 부릅니다. OpenVPN 3 Linux 클라이언트도 이러한 분리를 기반으로 구축되었습니다.
VPN 서비스 공급자가 제공하는 VPN 구성 파일의 내용은 일반 구성으로 간주됩니다. openvpn3-autoload 유틸리티에는 사이트 로컬 설정이 포함된 .autoload 파일이 필요합니다. 이들은 함께 기능적 연결을 얻는 데 필요한 VPN 프로필을 형성합니다.
사용자 자격 증명을 제공하기 위해 자동 로드되도록 OpenVPN3 구성 먼저 사용자 자격 증명을 하드 드라이브에 일반 텍스트로 저장하는 것은 좋지 않다는 점을 강조해야 합니다. 일반적으로 VPN 세션을 자동으로 시작하려면 사용자 이름/비밀번호 기반 인증을 사용하지 않는 것이 좋습니다.
다른 선택의 여지가 없는 경우 다음을 통해 자동 세션 시작을 위해 openvpn3-autoload를 구성할 수 있습니다.
앞에서 언급했듯이 openvpn3-autoload는 systemd openvpn3-autoload.service를 활성화하고 시작하여 시스템 부팅 중에 시작할 수 있습니다. 이 경우 기본 구성 디렉터리는 /etc/openvpn3/autoload입니다. 권한이 없는 사용의 경우 사용자가 액세스하고 읽을 수 있는 모든 디렉토리를 사용할 수 있으며, 가급적 잘 보호된 홈 디렉토리($HOME)를 사용하는 것이 좋습니다. 이 설명에서는 후자의 접근 방식을 사용합니다.
먼저 자동 로딩 서비스를 위한 적절한 디렉터리를 만듭니다.
$ mkdir -m700 -p $HOME/.openvpn3/autoload
이는 사용자의 홈 디렉토리에 사용자만이 읽기/쓰기 액세스 권한을 갖는 디렉토리를 생성합니다. 이 디렉터리에 선택한 VPN 서비스에 연결하는 데 필요한 VPN 구성 파일을 저장합니다. 파일은 표준 OpenVPN 구성 파일이어야 하며 .conf 또는 .ovpn 파일 확장자를 가져야 합니다. 이 기사에서는 파일 이름을 client.conf로 지정하려고 합니다.
다음으로 자동 로드 유틸리티에 대한 구성 파일을 생성해야 합니다. 이는 .autoload 파일 확장자를 가진 일반 JSON 파일입니다. VPN 구성 파일의 이름은 client.conf이므로 자동 로드 구성 파일의 이름은 client.autoload로 지정되어야 합니다. 이 파일이 없으면 자동 로드 유틸리티는 VPN 구성 파일을 전혀 고려하지 않습니다.
openvpn3-autoload 구성 파일은 openvpn3-autoload(8) 매뉴얼 페이지에 설명되어 있지만 여기서는 가능한 옵션 중 일부만 고려하겠습니다.
.autoload 파일에는 다음 정보가 필요합니다.
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "jane.doe",
"password": "very-secret-Let-Me-!n-P4ssword"
}
}
첫 번째 자동 시작 설정은 openvpn3-autoload에 이 구성 파일을 가져오고 시작하도록 지시합니다. user-auth 섹션의 정보는 매우 명확해야 합니다. 여기서 자동으로 로그인하고 정의된 자격 증명을 사용하도록 지시할 수 있습니다.
이제 자동 로드 유틸리티를 시작하기만 하면 됩니다.
$ /usr/sbin/openvpn3-autoload --directory $HOME/.openvpn3/autoload
Configuration "client.conf" imported: /net/openvpn/v3/configuration/6ab9b09dx429fx4816xae7fx6ac063cb5b40 []
Auto-started "client.conf": /net/openvpn/v3/sessions/b2301e1csce93s4e4asb24cs21d4bd662510
$
이제 VPN 세션이 실행 중이며 일반 openvpn3 세션 관리 명령을 사용하여 상태를 확인할 수 있습니다.`
$ openvpn3 세션 목록
Path: /net/openvpn/v3/sessions/b2301e1csce93s4e4asb24cs21d4bd662510
Created: Mon Sep 7 12:00:41 2020 PID: 12248
Owner: jdoe Device: tun0
구성 이름: client.conf 상태: 연결됨, 클라이언트가 연결됨
$` https://openvpn.net/openvpn-3-linux-and-auth-user-pass/이 링크에서 붙여넣기만 하면 됩니다. 콘텐츠에 액세스할 수 없게 되면 이 링크가 깨질 수 있습니다.
답변2
--auth-user-pass
OpenVPN 3 Linux는 OpenVPN 2.x와 같은 저장된 자격 증명을 지원하지 않습니다 . 이 방법을 지원해야 할지, 아니면 다른 접근 방식을 사용해야 할지 아직 결정하지 못했습니다. 사용자 자격 증명을 저장하는 것은 일반적으로 권장되지 않습니다.