Ubuntu Weekly Recipe

第498回 Network ManagerのCLIクライアントでVPN接続をする

この記事を読むのに必要な時間:およそ 4 分

Ubuntu ServerにはインストールされていないNetwork Managerをあえてインストールし,VPNクライアントとして使用する方法を解説します。

VPSとVPN接続

昨今のクラウドサービス(IaaS)の多くではVPN接続サービスをオプションで提供しています。特にクラウドサービスである必要はないものの,安価にVPSでVPNを設定したい,ルーターのVPNサーバー機能と組み合わせてまるでローカル接続のようにVPSを使用したいというニーズはあるのではないでしょうか※1)⁠

※1
正直なところ世間に広くこのようなニーズがあるかどうかは筆者にはわかりません。

ご家庭にあるようなルーターのVPN機能はPPTPをサポートしているものが多いですが,今となってはセキュリティ的に論外です。簡単に設定するならOpenVPNですが,対応しているルーターが少なく,またOpenVPNの特性上アプライアンスでOpenVPNサーバーを起動するのはあまりよくないように思います※2)⁠

※2
OpenVPNはセキュリティをOpenSSLによって担保していますが,いうまでもなくOpenSSLはセキュリティアップデートが頻繁にあるため対応に時間がかかるアプライアンスには不向きであると筆者は考えます。そのことはSoftware Design 2017年10月号「Ubuntu Monthly Report 第90回 OpenVPNでおうちネットワークにログイン」で述べています。

次に候補になってくるのはL2TP/IPsecですが,対応するルーターは上位機種になるという問題はあるものの,対応モデルが多く,またPPTPと比較してセキュアなので魅力的です。そこで今回はどこのご家庭にもある※3YAMAHA RTX1200を使用することにしました。

※3
いっぺん言ってみたかっただけです……。ただYAMAHAルーターの現行機種はすべてL2TP/IPsecに対応しています。またRTX1200は中古で安く買うことができます。

ではVPS側のL2TP/IPsecクライアントはどうすればいいでしょうか。順当に考えればstrongSwan+xl2tpdになりますが,設定が煩雑なので簡単に設定できるフロントエンドがあるといいです。そのため今回はNetwork ManagerNetworkMananger-l2tpを使用することにしました。VPSのOSはUbuntu Server 16.04 LTSとします。

NetworkMananger-l2tpはこの2年弱で開発が進み,安定して使用できるようになりました。ただしUbuntu 16.04 LTSのリポジトリにパッケージはないため,別途PPAからインストールする必要があります。なおUbuntu 17.10からリポジトリにあります。

簡単に説明しましたが,罠はいろいろとあります。まずUbuntu ServerにはNetwork Managerはインストールされていないため,インストールした上で設定を行う必要があります。VPSは固定グローバルIPアドレスが振られていることが多いので※4)⁠設定の移植作業が必要になります。またNetwork Managerにはコマンドラインツール(nmcli)がありますが,残念ながらVPNの設定はコマンドラインからはできません。設定を手書きするか,GUIのNetwork Managerで設定した項目をエクスポートし,nmcliでインポートする必要があります。今回は後者とします。よってUbuntu 16.04 LTSまたはUbuntu 17.10(デスクトップ)の用意も必要です。

※4
筆者が知る限りすべてのVPSは固定IPアドレスですが,中には例外があるかもしれません。

ルーターには固定グローバルIPアドレスまたはダイナミックDNSサービスへの加入が必要です。今回は前者と仮定しますが,YAMAHAのルーターであればダイナミックDNSサービス(ネットボランチDNS)が付属するため,これを利用するのも手でしょう。

準備の工程が長いですが,詳しく見ていきましょう。

ルーターの設定

ルーターのL2TP/IPsecの設定方法はそれぞれなのでここで解説することはできませんが,RTX1200の設定例を掲載します図1)⁠YAMAHAのルーターでは設定名を「PP」「anonyomous」から選択できますが,今回は固定IPアドレスのVPSを使用するので後者を使用します。しかし後述する理由により設定自体は「PP」「anonyomous」の両方を同じ設定で作っておくと確認が楽になります。

図1 RTX 1200のL2TP/IPsecの設定例

画像

L2TP/IPsecの設定

前述のとおりnmcliではVPNプラグインの設定はできないため,GUIで設定してエクスポートします。今回はUbuntu 17.10を使用することにしました。まず端末から"network-manager-l2tp-gnome"パッケージをインストールします。通常設定は「設定」⁠-⁠ネットワーク」⁠-⁠VPN」から行いますが,今回はこれを使用しません。なぜならここからだと設定のエクスポートができないからです。端末あるいはAlt+F2キーを押したあとに「nm-connection-editor」と入力し,起動します図2)⁠

図2 Alt+F2キーでコマンドを入力する

画像

「ネットワーク接続」が起動したら図3)⁠左下の「+」ボタンをクリックします。⁠接続の種類を選んでください」が表示されるので,⁠Layer 2 Tunneling Protocol (L2TP)」を選択し,⁠作成」をクリックします図4)⁠

図3 ⁠ネットワーク接続」が起動したら,左下の「+」をクリック

画像

図4 ⁠接続を選んでください」「Layer 2 Tunneling Protocol (L2TP)」を選択

画像

「VPN」タブ図5「ゲートウェイ」⁠ルーターのホスト名あるいはIPアドレス)とユーザー名とパスワードを入力し(パスワードは必須ではありません)⁠⁠IPsec Settings」をクリックします図6)⁠⁠Pre-shared key」はルーターの設定したものでいいのですが,⁠Phase1 Algorithms」「Phase2 Algorithms」に入力する文字列はまちまちです。今回RTX1200に接続するための設定はそれぞれ「3des-sha1-modp1024」⁠aes128-sha1」ですが,ドキュメントを参考に適宜変更してください。

図5 ゲートウェイ,ユーザー名,パスワードを入力する。パスワードは入力しなくてもいい

画像

図6 Algorithmsの2つはあくまで例

画像

「PP Settings」タブも変更が必要です図7)⁠⁠MPPE暗号を使用する」にチェックを入れ,⁠セキュリティ」「128ビット(もっとも安全)⁠に変更します。MSCHAPは使わないのでチェックを外し,⁠MTU」「MRU」を適切な数値に変更して「OK」をクリックします。

図7 これも全体的に例で,必ずしもこのままの設定でいいというわけではない

画像

あとは「保存」をクリックし,ウィンドウが閉じたら右上のユーザーメニューをクリックして「VPNオフ」「接続」をクリックします図8)⁠パスワードを入力後,設定に問題がなければ接続しますが,YAMAHAのルーターの場合はanonymous接続かPP接続かをよく確認してください。

図8 わかりにくいが「接続」をクリックする

画像

問題なく接続したら,⁠VPN」タブの「エクスポート」をクリックし,設定を保存します。ファイル名は何でもいいですが,拡張子は「conf」である必要があります。

著者プロフィール

あわしろいくや

Ubuntu Japanese Teamメンバーで,主として日本語入力関連を担当する。特定非営利活動法人OpenOffice.org日本ユーザー会。LibreOffice日本語チーム。ほか,原稿執筆も少々。

コメント

コメントの記入