Gentoo LinuxでVPNを繋ぐときにちょっとハマったので、忘れないようにメモ。
以前(一年以上前)からこの問題には気づいていたのですが、それまではGentooでVPN接続をする切実な理由が特になかったので放置していました。
要するに今は切実な理由があるということです。
3行で
-
network-manager-l2tpのUSEフラグに
gnome
を設定して導入 - strongswanではなくlibreswanを使う
- libreswanは3.32-r1以上を使う
よくわかる解説
gnome
を設定しておかないとIPsecやPPPの設定画面が出てきません。あと現時点ではamd64
もx86
もstable状態ではないので、使うならpackage.accept-keywords
にも指定が必要です。
# package.use net-vpn/networkmanager-l2tp gnome
# package.accept-keywords net-vpn/networkmanager-l2tp
しかし、上記の設定を入れてもそのままでは接続に失敗しました。
journalctl -u NetworkManager
でログを確認したところ、以下のエラーが出てIPsec接続ができていませんでした。
g_dbus_method_invocation_take_error: assertion 'error != NULL' failed
このエラーメッセージで検索したら、strongswanではなくlibreswanを使えとのこと。
そこで、一旦network-manager-l2tpと、それが依存しているstrongswanをアンインストール。
emerge -c net-vpn/networkmanager-l2tp net-vpn/strongswan
次にlibreswanに入れ替えて再インストール。
emerge net-vpn/libreswan net-vpn/networkmanager-l2tp
それでも接続できませんでした。今度はjournalctl -xe
でログを確認したら、以下のようなメッセージが出ていました。
ABORT: ASSERTION FAILED: test_gcm_vectors(&ike_alg_encrypt_aes_gcm_16, aes_gcm_tests) (in test_ike_alg() at ike_alg_test.c:41)
#define NSS_PKCS11_2_0_COMPAT 1
よっしゃ、いっちょパッチを作ってGentooチームに送ってやろう・・・と思ったら、すでに3.32-r1でこのパッチが入っていました。
ただし、現時点では3.32-r1はまだstableではないので、network-manager-l2tpと同様にpackage.accept-keywords
の指定が必要です。
# package.accept-keywords net-vpn/networkmanager-l2tp =net-vpn/libreswan-3.32-r1
最新版のソースにはすでに上記のパッチが入っている(正確には順序が逆で、最新版に含まれている上記の定義をGentooチームが3.32-r1でパッチとしてバックポートしたというのが正解)ので、3.33以降ではパッチなしで普通に使えるようになるでしょう。
これで、libreswanを更新したらVPN接続できるようになりました。
0 件のコメント:
コメントを投稿