#1. 概要
必要に迫られて、職場の環境にVPNの導入が必要になり、想像以上に手こずったためメモとして残します。
外部につながるルーター(VPN機能なし)の配下にWifiルーター(VPN機能あり)を置き、その下のサーバー(mac mini)に外部からアクセスできるように構成します。クライアントの端末として、iPhone,iPad,WindowsPCで外部からアクセスします。
#2. システム構成
ルーター1はPPPoeで外部に接続され、固定のグローバルIPが設定されているものとします。この配下にHUBを介して会社の様々な端末が接続されています。
このルーター1の下に、ルーター2としてOpenVPNに対応したWifiルーターを設置し、その配下にサーバーとしてMac miniを置いています。
#3. ルーター1の設定
ルーター1はNet Genesis社のGL2000で、前述した通りVPNの機能を備えていません。このルーターのグローバルIPアドレスはxxx.xxx.xxx.xxxとします。(実際の運用はDDNSを設定しています。)プライベートIPアドレスは192.168.1.1とします。
##3.1 ポートの開放
OpenVPNで使用するポートは12973と12974なので、このポートを開放します。
##3.2 ルーティングの設定
ルーティングテーブルに以下の設定をすることで、デフォルトゲートウェイ(192.168.1.200)を経由して、192.168.10.***のアドレスにTCP/IPパケットが送られます。
IPアドレス:192.168.10.101/24
デフォルトゲートウェイ:192.168.1.200
サブネットマスク:255.255.255.0
メトリック 1
#4. ルーター2の設定
ルーター2はNetGear社のAX3000で、OpenVPNが使用可能です。
##4.1 IPアドレスの設定
ルーター2のWANに以下の設定をします。
IPアドレス:192.168.1.200
サブネットマスク:255.255.255.0
DNSサーバー:192.168.1.1
ルーター2のLANに以下の設定をします。
IPアドレス:192.168.10.1
サブネットマスク:255.255.255.0
##4.2 OpenVPNの設定
OpenVPNを有効にします。
TUNとTAPのポートは標準のものをそのまま設定しています。
OpenVPN設定パッケージのダウンロードをします。
Windows用は「Windows」のボタンから、iOS用は「スマートフォン用」ボタンからダウンロードします。それぞれ、windows.zip、smartphone.zipファイルがダウンロードされます。
両方とも以下の4つのファイルが格納されています。
通常はこの4つのファイルをクライアントに設定すればよいのですが、二重ルーターとなっているため、ovpnファイルを編集する必要があります。
#5. サーバー(Mac mini)の設定
サーバーには固定IPアドレス(192.168.10.101)を設定します。
#6. クライアントの設定
##6.1 iOS端末の設定
1. OpenVPN Connectをインストールします。
2. ovpnファイルの編集
client
dev tun
proto udp
# グローバルIPアドレス(もしくはDDNSドメイン)とtunモードのポートを指定
remote xxx.xxx.xxx.xxx 12973
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
cipher AES-128-CBC
comp-lzo
verb 5
3. 設定ファイルの転送
今回はmac miniとiPhoneをlightningケーブルで接続し、OpenVPNアプリに先ほどの4つのファイルを転送しました。
4. VPN接続
ファイルを転送した後にOpenVPNアプリを起動すると、自動的に読み込まれ、正しい設定がなされていれば「CONNECTED」と表示され接続されます。
##6.2 Windows端末の設定
1. クライアントソフトのインストール
OpenVPNをhttps://www.openvpn.jp/download/からダウンロード、インストールします。
2. ovpnファイルの編集
先ほどダウンロードしたovpnファイルを一部編集します。
tapモードで動かなかったのでtunモードを変更し、gatewayを設定しています。なぜtapモードで動作しないのかわかっていません。
client
# tapをtunモードに変更
dev tun
proto udp
dev-node NETGEAR-VPN
# グローバルIPアドレス(もしくはDDNSドメイン)とtunモードのポートを指定
remote xxx.xxx.xxx.xxx 12973
# route-gatewayの追加
route-gateway dhcp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
cipher AES-128-CBC
comp-lzo
verb 5
3. 設定ファイルの転送
Program Files/OpenVPN/Configに先ほどの4つのファイルをコピーします。
4. 接続名の変更
コントロールパネル→ネットワークとインターネット→ネットワーク接続
接続名称をNETGEAR-VPNに変更
5. VPN接続
OpenVPNのアイコンを右クリックし、対象のclientを選択、接続します。
#7. 緊急時の対策について
今回は業務に使用するサーバーで使用頻度が高い用途なので緊急時の対策を行う必要があります。以下のような対応を検討しておこうと考えています。
- ネットワーク回線に不具合が生じた場合
→ 回線冗長化 - ルーターに不具合が生じた場合
→ 予備のルーターを準備しておき再設定 - サーバーに不具合が生じた場合
→ サーバーのデータは外付けHDDに定期的にバックアップを取るかクラウド上にUPLOADしておく。
使用していない古いmacをセットアップしておき、端末を入れ替えて暫定的に運用する。
#8. 最後に
ルーター1はVPNパススルー機能を備えています。VPNパススルー機能を搭載しないルーターを使った場合、この環境でVPNに接続できるかどうか定かではありません。
時間のある時に試してみようと思います。