web-dev-qa-db-ja.com

Algo VPNstrongSwanクライアント「発行者証明書が見つかりません」

公式のAnsibleプレイブックを使用して、AWSLightsailでAlgoVPNインスタンスをセットアップしました。 Wireguardを使用してVPN接続を確立できますが、strongSwanで機能させることができません。

これらの公式の指示に従って、2つの異なるUbuntuクライアントを構成しました: https://github.com/trailofbits/algo/blob/master/docs/client-linux-ipsec.md

/etc/ipsec.d/cacertsでサーバーの公開鍵を提供したにもかかわらず、「CN = "」の発行者証明書が見つかりませんというエラーが常に発生します。この証明書は自己署名のようです。

$ cat /etc/ipsec.d/cacerts/cacert.pem

-----BEGIN CERTIFICATE----- <...> -----END CERTIFICATE-----

$ ipsec listcacerts

<no output>

トンネルを起動しようとすると、次のようになります。

$ ipsec up algovpn-35.180.123.456
initiating IKE_SA algovpn-35.180.123.456[1] to 35.180.123.456
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.5.196[500] to 35.180.123.456[500] (294 bytes)
received packet: from 35.180.123.456[500] to 192.168.5.196[500] (319 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(HASH_ALG) N(MULT_AUTH) ]
selected proposal: IKE:AES_GCM_16_256/PRF_HMAC_SHA2_512/ECP_384
local Host is behind NAT, sending keep alives
remote Host is behind NAT
received 1 cert requests for an unknown ca
authentication of 'CN=remote1' (myself) with ECDSA_WITH_SHA384_DER successful
sending end entity cert "CN=remote1"
establishing CHILD_SA algovpn-35.180.123.456{1}
generating IKE_AUTH request 1 [ IDi CERT N(INIT_CONTACT) IDr AUTH CPRQ(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.5.196[4500] to 35.180.123.456[4500] (973 bytes)
received packet: from 35.180.123.456[4500] to 192.168.5.196[4500] (883 bytes)
parsed IKE_AUTH response 1 [ IDr CERT AUTH CPRP(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) ]
received end entity cert "CN=35.180.123.456"
using certificate "CN=35.180.123.456"
no issuer certificate found for "CN=35.180.123.456"
issuer is "CN=35.180.123.456"
no trusted ECDSA public key found for '35.180.123.456'
generating INFORMATIONAL request 2 [ N(AUTH_FAILED) ]
sending packet: from 192.168.5.196[4500] to 35.180.123.456[4500] (65 bytes)
establishing connection 'algovpn-35.180.123.456' failed

誰かが私がこれを機能させる方法を知っていますか?

宜しくお願いします、

ジョナ

1
jaj

これは最終的に、algoがCA証明書を構成する方法とstrongswanの間の非互換性に帰着します。回避策については、 https://github.com/trailofbits/algo/issues/1758 を参照してください。

0
jaj

CA証明書のみが/etc/ipsec.d/cacerts(CA基本制約が設定された証明書)から自動的にロードされ、エンドエンティティ/サーバー証明書はロードされません(strokeプラグインにignore_missing_ca_basic_constraintオプションを介して強制しない限り、ただし、私はしませんそうすることをお勧めします)。

(自己署名)サーバー証明書を直接使用する場合は、それを/etc/ipsec.d/certsに配置し、connセクションのrightcertオプションを介してロードします。

1
ecdsa