다음 구성 파일이 있고 기본 OpenVPN 클라이언트에서 제대로 작동합니다.
client
dev tap
proto udp
port 1198
remote myhost.com 1194
persist-key
persist-tun
tls-client
ca my-ca.crt
cert my-client.crt
key my-client.key
verb 3
이제 동일한 정보를 사용하여 pfSense OpenVPN 클라이언트를 구성하고 싶습니다.
이해가 안 돼요. key
파일 콘텐츠가 어디에 저장되어 있나요? 나는 crt
적절한 섹션에 파일을 넣었습니다 System/Certificate Manager
.
클라이언트 구성 페이지에 Cryptographic Settings/Key
하위 메모가 있는 섹션이 있습니다 Paste the shared key here
. 이 섹션은 처음에는 존재하지 않으며 구성이 한 번 저장된 후에만 나타납니다. 나타나면 몇 가지 키가 포함되어 있습니다. 거기에 파일 내용을 붙여넣으면 key
오류가 발생합니다.
The field 'TLS Authentication Key' does not appear to be valid
파일정보는 어떻게 입력하나요?
고쳐 쓰다
자동 생성하면 생성됩니다.
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
... small amount of HEX symbols ...
-----END OpenVPN Static key V1-----
그리고 내 열쇠는
-----BEGIN PRIVATE KEY-----
... large amount of random chars...
-----END PRIVATE KEY-----
내 키를 확인해 openssl
보니 2048비트라고 나와 있었습니다. 어떻게 자동으로 생성된 키(즉, 2048비트)보다 클 수 있나요?
업데이트 2
자동 생성된 키를 그대로 두면 저장되지만 다음 메시지가 표시됩니다.log
TLS Error: cannot locate HMAC in incoming packet from
비활성화하면 TLS authentication - Enable authentication of TLS packets
저장되지만
Mar 16 22:25:39 openvpn 47325 Exiting due to fatal error
Mar 16 22:25:39 openvpn 47325 FreeBSD ifconfig failed: external program exited with error status: 1
Mar 16 22:25:39 openvpn 47325 /sbin/ifconfig ovpnc5 XX.XX.XX.XX netmask 255.255.255.0 mtu 1500 up
Mar 16 22:25:39 openvpn 47325 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mar 16 22:25:39 openvpn 47325 TUN/TAP device /dev/tap5 opened
두 경우 모두 key
파일은 사용되지 않은 상태로 유지됩니다.
업데이트 3
내 키 앞에 같은 값을 추가하면
-----BEGIN OpenVPN Static key V1-----
줄(동일하게 끝나는 줄)을 입력하면 GUI가 키를 받아들이고 로그에는 다음 오류가 표시됩니다.
Non-Hex character ('M') found at line 2 in key file '/var/etc/openvpn/client5.tls-auth' (0/128/256 bytes found/min/max)
따라서 매우 구체적인 키가 필요하지만 이를 알리거나 기록하지 않습니다.
답변1
pfSense 소스 코드 보기vpn_openvpn_client 모듈,
if ($tls_mode && $pconfig['tlsauth_enable'] && !$pconfig['autotls_enable']) {
if (!strstr($pconfig['tls'], "-----BEGIN OpenVPN Static key V1-----") ||
!strstr($pconfig['tls'], "-----END OpenVPN Static key V1-----")) {
$input_errors[] = gettext("The field 'TLS Key' does not appear to be valid");
기본적으로 "TLS 키" 필드에 "-----BEGIN OpenVPN 고정 키 V1----" 또는 "-----END OpenVPN 고정 키 V1----"이 포함되어 있는지 확인하는 것입니다. " ", 붙여넣은 내용이 유효한 키인지 확인하지 않습니다. 그렇기 때문에 구성을 저장할 때 오류를 지울 수 있었지만 키가 여전히 작동하지 않습니다("16진수가 아닌 문자 'M'" 오류 발생).
인증서 관리자에 "BEGIN PRIVATE KEY" 키를 입력해야 한다고 확신합니다(식별을 위해 키를 사용하는 경우). OpenVPN의 문서와 관련 기사를 결합하여경화TLS 키는 패킷의 출처를 확인하는 데 사용되며(즉, 모든 패킷, 제어 및 데이터에 적용됨), 보유한 키는 인증을 위해 클라이언트를 식별하는 데 사용됩니다. 식별에 사용되는 TLS 키주인, 보유하고 있는 키로 사용자를 식별합니다.