ということで、とある出張に出かけたときのこと。ビジネスホテルに宿泊したときにこういう状況になることはよくあると思います。
- ビジネスホテル側からWi-Fiもしくは有線LANが無料で提供される
- ビジネスホテル側の通信環境そのものはそこまで悪くはない
- ただし、通信先を知られたくないorデータサーバへの通信が必要なパターンがある
このような状況を解消するためによく使われるのがVPNなのですが、Win10の標準でVPNを構築しようと思ったらRTX810の設定とかなりかみ合わずにつながるまでに四苦八苦したので、その記録を書いておきたいと思います。実は設定の書き換えも外部から行っており、SSHを通せるようにしておいたからなんとかなったようなものなのですが…。
RTX810で使えるVPNの種類
いまだとちょっと古いルータになるので微妙なのですが、とりあえずRTX810上から設定できるVPNの種類を確認しておきましょう。実はターミナル上から手動ならばIKEv2が設定「できそう」に見えるのですが、これに成功したことがないので、GUIで設定できる方だけに限定しておくと
- L2TP/IPSec
- PPTP
あたりが可能です。ただし、PPTPはすでにセキュリティ的に使うべきではないレベルなので除外されて、L2TP/IPSecくらいになってしまいます。ちなみに、Twitterでもすこしつぶやきましたが、L2TP/IPSecはAndroid12系統では設定できなくなっているのでそうなってくるとAndroidで考えたら一つもない、という話になってしまいます。Win10であればL2TP/IPSecは標準で利用可能なので今回はそちらで設定します。
Win10でL2TP/IPSecによる接続を行うためのサーバ(RTX810)側の設定
今回はまってしまったのは実はこれです。Win10でL2TP/IPSecを使うときに「いくつかの設定をするとアルゴリズムが利用できないために接続不可になる」という現象が発生する、ということがわかったのがかなり後(いろいろと検索してみてやっと出てきた)だったのが痛かったです。具体的にはこのようにします。
- 接続タイプ:L2TP/IPSec(Anonymous)
- 接続ユーザIDおよびパスワード:適当に
- 事前共有キー:適当に
- 認証アルゴリズム:HMAC-SHA (HMAC-SHA256では認証不可になってしまう)
- 暗号アルゴリズム:AES-CBC (AES256-CBSでは認証不可になってしまう)
- キープアライブ:使用する
- NATトラバーサル:使用する
- PPP認証方式:MS-CHAP v2
ここで書いているとおり、認証アルゴリズムと暗号アルゴリズムがWin10標準のVPNだと制限されてしまう、ということです。暗号強度を上げておこうかと思って上位の設定をしていたのがまさか裏目に出るとは。ちなみにこれより暗号強度が低いアルゴリズムは逆にVPNとしての安全性を(現段階でも)保てないので論外です。今でさえこのアルゴリズムだと不安になりつつあるのに…。
あと、ちゃんとIPSecパススルー設定などに相当するespやUDPのPort500、1701、4500は通しておかないとつながりませんからね。
Win10でL2TP/IPSecによる接続を行うためのクライアント側の設定
こちらは適当に検索をかけると出てくる項目を片っ端からやっているのでどれが正解とかはあまり書くことができません。大事そうなのが
- NATトラバーサルを有効にするためにレジストリの設定を行う(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgentにAssumeUDPEncapsulationContextOnSendRuleの値をDWORD型で2にセットする)
- 接続の設定を作った後にネットワークの「アダプターの設定」から対象のVPN接続のプロパティを開き、「セキュリティ」の設定をサーバ側の設定と合わせる。ネットワークの設定でIPv6の設定を外した方がよい場合は外しておくこと
- たまに一部のサービス(IKE and AuthIP IPsec Keying Modulesなど)が動いていないことがあるらしいのでそれを動かしてみる
- ファイアウォールのアプリケーションごとの許可から「ルーティングとリモートアクセス」を許可する
といったところでしょうかね。特に最初の設定はほぼ確実に必要だと思われます。これを設定してから再起動してもつながらなかったら…後何が必要なのでしょうかね。
まず出張に行く前に接続できるか試しておきましょう
何事も事前準備が大切です、という当たり前のことを書いて終わりにしておきたいと思います。