EdgeOS を ver. 2.0.9 と l2tp-client が有効にならない備忘録

Gadget
Photo by hyt.

EdgeOS を ver. 2.0.9 と l2tp-client が有効にならない備忘録です.

まず,結論ですが,

ver. 2.0.9 自体は安定して動いてはいます.しかし,新機能の L2TP VPN Client 機能がうまく動いてくれない……

状態です.私の環境が悪いのか設定がまずいのか良くわかりませんが,試したことを記しておきたいと思います.

ファームウェアのアップデート

ファームウェアとそのリリースノートは Ubiquiti のサイト

UniFi - Rethinking IT - Ubiquiti
UniFi is rethinking IT with industry-leading products for enterprise networking, security, and more unified in an incred...

から参照できますが,今回は bug fix(かなり大量です)だけじゃなくて,以下の機能追加が行われていました.

  • WebGUI にファームウェアの通知とアップグレード用のボタンが用意された.
  • クラッシュ・トラフィックレポートの通知が初期状態では無効化された.
  • WebGUI にFactory Reset ボタンが 用意された.
  • Firmware の容量が削減された.
  • パフォーマンスが少し改善した.
  • L2TP VPN Client になれるようになった.

結構深刻な bug がいくつも修正されていますのでアップデートしないという選択肢はないと思います.実際のアップデートですが,前回

EdgeOS を ver. 2.0.8 にアップデートした備忘録
EdgeOS を ver. 2.0.8 にアップデートした備忘録です. Ubiquiti の Edgerouter-X 用の OS が12月5日に ver. 2.0.5 から 2.0.8 になってた様です.私の場合,これが不具合なんかで止ま...

と同様,CLI からアップデートを行いました.WebGUIからアップデートもできますが,特にER-Xはストレージ容量に余裕がないので,CLIからストレージ容量をチェックしながらアップデートが実際 Ubiquiti からも推奨されています.

L2TP VPN Client 機能について

さて,今回のアップデートで付け加わった L2TP VPN Client 機能ですが,これはかなり珍しい機能なんじゃないかなと思います.実際,EdgeOS の(多分)元であろう VyOS にもこんな機能今のところ見当たりません.

以前から,EdgeOS には PPTP Client になれる機能はあるのは知っていて,実際試してみたことがありましたが,安定性に問題があったのと,いまだと PPTP はセキュリティ的な心配があったので,実用性については今ひとつだと判断していました.

Ubiquiti Networks Edgerouter X から QVPN Server へ PPTP で接続してみた備忘録
Ubiquiti Networks Edgerouter X (ER-X) から QVPN Service へ PPTP で接続してみた備忘録です.なお,多分 QVPN Service 以外でもほぼ同じだと思う. QVPN Service ...

しかし,今回は L2TP/ IPSec ですから,(速度はともかく)セキュリティ的にはそれなりな訳で,安定して使えるようなら面白そう,ということで試してみた訳ですが,いまのところ,

うまくいっていません.

試したことは以下の通りです.

L2TP VPN Client 機能の設定

実はいろいろ試してから気がついたのですが,設定方法自体は,Ubiquiti の Community の掲示板に投稿されている ver 2.0.9 のリリース概要に載せられていました.

https://community.ui.com/releases/EdgeMAX-EdgeRouter-Firmware-v2-0-9-v2-0-9/d75f346d-d734-4026-97a8-7b2d5cc4e079

まず,L2TP VPN Client のインターフェース l2tpc0 を以下の通り作成します.もちろん server-ip と user-id, password の値を自分の接続する L2TP Server のものに合わせなければなりません.

set interfaces l2tp-client l2tpc0 authentication user-id ubnt
set interfaces l2tp-client l2tpc0 authentication password ubnt
set interfaces l2tp-client l2tpc0 mtu 1400                   
set interfaces l2tp-client l2tpc0 server-ip 192.168.11.1
set interfaces l2tp-client l2tpc0 require-ipsec

なお,設定としては,暗号化なし(IPSec なし)の L2TP 接続にも対応しているようです(暗号化なしは危険だとの警告は出る).

次に,L2TP の通信を行う IPSec トンネルの設定を行います.

set vpn ipsec esp-group FOO0 pfs disable
set vpn ipsec esp-group FOO0 mode transport
set vpn ipsec esp-group FOO0 proposal 1 encryption aes256
set vpn ipsec esp-group FOO0 proposal 1 hash sha1        
set vpn ipsec ike-group FOO0 dead-peer-detection action restart
set vpn ipsec ike-group FOO0 proposal 1 encryption aes128      
set vpn ipsec ike-group FOO0 proposal 1 hash sha1         
set vpn ipsec site-to-site peer 192.168.11.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 192.168.11.1 authentication pre-shared-secret ubnt
set vpn ipsec site-to-site peer 192.168.11.1 ike-group FOO0
set vpn ipsec site-to-site peer 192.168.11.1 local-address default
set vpn ipsec site-to-site peer 192.168.11.1 tunnel 1 esp-group FOO0    
set vpn ipsec site-to-site peer 192.168.11.1 tunnel 1 local port l2tp
set vpn ipsec site-to-site peer 192.168.11.1 tunnel 1 protocol udp   
set vpn ipsec site-to-site peer 192.168.11.1 tunnel 1 remote port l2tp

注意点としては,tranport モードでなければならないこと,あと,IKE と ESP の暗号化とハッシュの方式を接続先 L2TP Server が対応しているものに合わせなければならないことです.また,事前共有キーと site-to-site peer の部分にある接続先アドレスも自分の接続する L2TP Server のものにしておく必要があります.

なお,接続先 L2TP Server が対応しているIKEの暗号化の方式等については,ike-scan コマンドを用いて調べることができます(macOS だと brew install ike-scan とするだけで入る).対応方式をまとめて調べる方法については以下のページがわかりやすいと思います.

IPsecのIKEのアルゴリズムの設定方法 - Synrock tech
こんにちは、こんばんわ。以前、UbuntuのVPN接続の設定の際に引っかかったところを調べてみた。VPNサーバ作ったので、いろんなOSから接続を試していたのだが、ubuntuからの接続...

また,ファイアーウォールの内側から接続する場合は,さらに,

set vpn ipsec nat-traversal

の設定や,パケットに connmark を追加する設定

set vpn l2tp remote-access allow-multiple-clients-from-same-nat enable

も必要になってくるハズ……なのですが,どうにもうまくいきません.

いろいろ調べてみたところ,とりあえず,IPSec で IKE の(show vpn ipsec sa を見たり,sudo ipsec status の表示をみると)鍵交換はできているっぽい.しかし,L2TP Client インターフェース l2tpc0 がクラッシュしますし,そもそも Ubiquiti が指示している connmark の追加設定も L2TP の設定が出来ていないと出て有効化できません.

試しに,IPSec なしの L2TP 接続も試してみましたが,これもすぐにインターフェースがクラッシュしてしまいます.

他にもいろいろ試しましたが,正直,どうにも良く分からない.

まぁ,それ以前のそもそも論として,この機能,異様にハードルが高いです.一般的なクライアント OS の L2TP/IPSec 接続だと,ユーザー名とパスワードと事前共有鍵と接続先名入れれば(オプションで暗号化の方式を選ぶ等のことはあっても)良い形になっています.しかし,EdgeOS の場合は,IPSec のトンネルの設定と L2TP の設定を全く別のところで行わなければならず,はじめ見た時は,どこで事前共有鍵の設定をするのかも全くわかりませんでした.

まぁ,ルーターなので,利用者は L2TP/IPSec の仕組みくらいはキチンと把握しているとの前提で設計されているんでしょうね.確かに L2TP/IPSec がどんなものかの勉強にはなりました.

と言うことで,残念ですが,EdgeOS のこの機能,しばらく放置して,ファームウェアの次回アップデート時にでももう一度試してみたいと思います.

以上!

GadgetNetworks
スポンサーリンク
Following hyt!
hyt adversaria
タイトルとURLをコピーしました