1 min read

Android12でL2TP VPNを作る

Android12からIKEv2以外のVPNタイプの選択肢がなくなった。

うちは今まで L2TP/IPsec PSK を使ってきたが、これを機にIKEv2を構築しようとした。
IX2215ルーターをフォロワーから譲ってもらい、それをいろいろ弄り倒した結果、できなかった。
というのも対ルーターの設定や事例ならいくらでもサンプルが転がっているのだが、細かい設定ができない対携帯のサンプルは全くと言っていいほどなかった。

そこでもうIKEv2は諦めてAndroid側をハックしようと思った。
どうも泥12でも11からアップデートしてきた端末への救済措置かはわからないが、新規作成時の選択肢が出ないだけで機能としては残っているようだったからだ。
Question - Android 12 & VPN Restrictions (L2TP/IPSec PSK) | XDA Forums

それに成功したので書き記しておく。

泥12 L2TP設定

  1. まずVPN設定でふつうに IKEv2/IPSec MSCHAPv2 のプロファイルを作る
  2. adbでVPNのデータベースをPCに持ってくる
# in adb shell
su
cp /data/misc/keystore/vpnprofilestore.sqlite /sdcard/
# in local
adb pull /sdcard/vpnprofilestore.sqlite .
  1. DBの中身をPCで書き換える(後述
  2. 書き換えたDBを転送して上書きする
# in local
adb push ./vpnprofilestore.sqlite /sdcard/
# in adb shell
su
mv /sdcard/vpnprofilestore.sqlite /data/misc/keystore/
chown keystore:keystore /data/misc/keystore/vpnprofilestore.sqlite
chmod 600 /data/misc/keystore/vpnprofilestore.sqlite
  1. VPN設定を見ると今まで表示されていなかったVPNタイプがすべて選べるようになってる

DBの書き換え作業

SQLite3 DBの編集に使ったソフトはDB Browser for SQLite

作業内容としてはツイートの通り、設定内容のBlobカラムがあるのでそこを編集する。
画像2枚目のVPNタイプの選択肢が上から順に0番からの番号が振られているので L2TP/IPsec PSK にしたければ「1」を入れれば良い。

おわり

iOSでもまだ残っているL2TPの選択肢を消してきたAndroidくんなかなかすごいと思った。
でもまだ救済措置を残しててくれてありがとうよ…

PPTPはもちろんだが、L2TPでさえも安全でないという考えはよくわかる。
これを機にルーターの対携帯端末でのIKEv2の構築サンプルがたくさん出てきてくれるといいなという気持ち。