概要
ニフティクラウド上に VyOS を構築して自宅の Mac から L2TP/IPSec を使って VPN 接続してみました
VPN 接続することでニフティクラウド上のマシンが自宅の Mac からローカル IP 接続できるようになります
環境
- ニフティクラウド (2016/12/25 時点)
- Region: east-1 (Zone: east-12)
- ゲスト OS: VyOS 1.1.7 (Public イメージを使用)
- Mac Book Pro (OS X 10.10.5)
- Wifi Walker NAD11
完成図
今回の完成図は以下の通りです
自宅側の Mac は WiMAX を使ってインターネットに接続します
WiMAX のグローバル側の IP は固定 IP が理想ですが、動的 IP でも問題ありません
その場合は確認くんなどで事前にグローバル側の IP を調査しておいてください
プライベート LAN の作成
まずはニフティクラウド側でリソースを作成します
左メニューから「ネットワーク」を選択し「プライベート LAN 作成」から作成します
CIDR は今回完成図にあるように「192.168.0.0/24」にしておきます
ここで設定した CIDR の範囲の IP が自宅の Mac 側にも振られることでクラウド側のサーバと通信できるようになります
VyOS の作成
次に VyOS をニフティクラウド上に構築します
「サーバー作成」から作成します
ニフティクラウドでは Public イメージとして VyOS の 1.1.7 が公開されているのでこれを使いましょう
サーバのスペックは small2 くらいあれば OK です
料金プラン、SSH キー、ファイアウォールは適当に割り当ててください
ネットワークの設定でプライベート側は先程作成したプライベート LAN を設定してください
作成が完了するとプライベート側の IP がまだ設定されていないため警告マークになりますが、手動で設定するので問題ないです
VyOS 上で L2TP/IPSec の設定
では VyOS に SSH ログインして VPN の設定を行います
ログイン用のユーザは vyos になるので注意してください
プライベート IP の設定
まずはプライベート側の IP を設定します
- configure
で編集モードになり
- del interfaces ethernet eth1 address dhcp
- set interfaces ethernet eth1 address ‘192.168.0.1/24’
- set interfaces ethernet eth1 description ‘vlan’
- commit
- save
で静的 IP を付与します
commit ip a show
で IP が振られていることを確認してください
コンパネでも警告マークが消え正常になっていると思います
L2TP/IPSec の設定
次に VPN の設定を行います
- configure
で編集モードになります
IPSec の設定は以下の通りです
- set vpn ipsec ipsec-interfaces interface eth0
- set vpn ipsec nat-traversal enable
- set vpn ipsec nat-networks allowed-network 0.0.0.0/0
- commit
- save
L2TP の設定は以下の通りです
xxx.xxx.xxx.xxx の部分はニフティクラウド上に作成した VyOS のグローバル側の IP を記載してください
pre-shared-secret
で設定した「TESTSECRET」はどんな文字列でも OK です
あとで Mac から使用するのでメモしておいてください
あと local-users username
と password
で設定したユーザ名とパスワードも Mac から VPN 接続するときに使うのでメモしておいてください
もちろん好きなユーザ名とパスワードに変更してもらって OK です
- set vpn l2tp remote-access client-ip-pool start 192.168.0.100
- set vpn l2tp remote-access client-ip-pool stop 192.168.0.200
- set vpn l2tp remote-access outside-address xxx.xxx.xxx.xxx
- set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
- set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret TESTSECRET
- set vpn l2tp remote-access authentication mode local
- set vpn l2tp remote-access authentication local-users username TESTUSER password TESTPASS
- commit
- save
start 192.168.0.100
と stop 192.168.0.200
で指定した範囲から IP を 1 つ VyOS が払い出し VPN 接続に成功したマシンにプライベート IP を付与してくれます
VyOS 用のファイアウォールの設定
ここで WiMAX のグローバル IP からの接続許可をします
固定 IP であればそれを、動的 IP であれば事前に調べておいて IP をファイアウォールに設定します
アクセスプロトコルは今回は Any で実施します
要するに自宅の WiMAX からのアクセスは全許可になれば OK です
また、VPN 接続後にプライベート IP でクラウド上のサーバにアクセスします
ニフティクラウドの場合同一ファイアウォール内にいる場合はプライベート間はアクセスし放題なのですが、今回の場合自宅のマシンからのアクセスなのでファイアウォールにプライベート間の通信の許可ルールを追加する必要があります
なので、プライベート IP からのアクセスも許可しておきます
- ANY CIDR 192.168.0.0/24
- ANY IP WiMAX のグローバルIP
上記を IN ルールに許可してください
OUT ルールは特に設定する必要はありません
試しに自宅環境から VyOS のグローバル IP に SSH ログインできるかどうか確認すると良いかと思います
動作確認用のサーバを準備する
これは何でも OK です
適当にサーバを作成してください
一つ条件としては事前に作成したプライベート LAN (vlan) に接続するようにしてください
そしてプライベート IP を手動で設定してください
今回の完成図では「192.168.0.10/24」を設定しました
動作確認用に Apache をインストールして起動しておきます
ここまでできればニフティクラウド上での作業は完了です
Mac を使って VPN 接続して動作確認する
では自宅の Mac から接続してみます
「システム環境設定」から「ネットワーク」を選択します
ネットワークの一覧の下にある「+」ボタンから新規でネットワークを追加します
作成時にプルダウンでインタフェースの種類を選択できますが「VPN」を選択します
VPN タイプには「L2TP over IPSec」を選択します
サーバアドレスにはニフティクラウド上に作成した VyOS のグローバル IP を入力します
アカウント名には VyOS に設定した認証用のユーザ名を入力します
そしてその下にある認証設定を選択します
「ユーザ認証」のパスワードと「コンピュータ認証」の共有シークレットを入力します
どちらも VyOS の設定時に決めたものにすれば OK です
サーバ情報と認証情報が入力できたら「接続」を選択します
接続に成功すると VyOS に設定した払い出すプライベート IP の範囲から 1 つ Mac に IP が振られます
今回であれば「192.168.0.100」が振られると思います
Mac 上でインタフェースを確認すると VPN 用に 1 つ追加されていることも確認できます
- ifconfig ppp0
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
inet 192.168.0.100 --> 10.255.255.0 netmask 0xffffff00
この状態になればニフティクラウド上の vlan 内にあるサーバにプライベート IP でアクセスできるようになります
ブラウザに 192.168.0.10 を入力して Apache のスタート画面が表示されることを確認すると良いと思います
ping や SSH もプライベート IP を指定してできると思います
最後に
VyOS をクラウド上に構築して L2TP/IPSec で VPN 接続してみました
VyOS を使えば簡単に実現できるので簡易な VPN を構築したい場合には便利かなと思います
ただ、現状の構成だと VyOS が完全に SOPF になっているので実際のサービス運用をする場合には DR などを考えなければいけないかなと思います
実際自分が試したいたときにもちょくちょく切断する現象が発生しましました (WiMAX が関係している可能性もありますが)
また、今回はクライアント側の WiMAX 側は特に何も設定しませんでしたが、ルータによってはもしかすると何か設定が必要になるかもしれません