昔からよく使ってるVPNアプリがOpenVPN。最近はL2TP over IPSecも使おうとしてるのですが、Mac OS/iOSからの接続をうまく管理出来ていないっぽく、設定に四苦八苦してます。
ルーティングの設定について
OpenVPNはL2TP/IPSecよりもルーティングの設定が柔軟にできるような気がするのですが、設定ファイルの記述方法が分かりにくくて今まで引っかかってました。
ひょっとしたらL2TP/IPSecでも柔軟なルーティング設定ができるのかもしれないですが、よくわかってません。
ルーティング関連の設定で、理解している部分だけメモしておきます。
[記述は全てサーバー側]
・route - OpenVPNサーバーで、サーバー自身のルーティングを設定します。
・push "route x.x.x.x y.y.y.y" - サーバーが、OpenVPNクライアントに対してルーティングを設定するよう指示します。通常、クライアント先のネットワークが指定されます。
・ccd/(COMMON_NAME)ファイル内の設定内容 - サーバーがどのネットワークがどのクライアントに対応付けられているのかを記述します。
例えば、次のような構成になっているとします。
+----------+
インターネッツ----| サーバー |
12.34.56.78 +----------+
| | 172.31.1.1
| |
| | OpenVPNのネットワーク(172.31.1.0/24)
| |
| 87.65.43.21 | +----------+
+-----------+ +-------------| クライアント A |
| 制限サーバー | | 172.31.1.4 +----------+
+-----------+ | +- - -
| +----------+ |
+-------------| クライアント B |-- - - - - - - -+- - -
| 172.31.1.6 +----------+ 192.168.1.0/24 |
| +- - -
| +----------+
+-------------| クライアント C |
172.31.1.8 +----------+
この時、サーバーの設定はこんな感じになってるんじゃないかと思います。
push "route 192.168.1.0 255.255.255.0"
route 192.168.1.0 255.255.255.0
client-config-dir ccd
push "route 87.65.43.21 255.255.255.0"
server.conf
iroute 192.168.1.0 255.255.255.0
ccd/クライアント B
多分、こう言うことになると思います。
ところで、87.65.43.21の制限サーバーとはなんぞやということなのですが、
これはサーバーです。このサーバーのアクセスを12.34.56.78からのみに制限し、
セキュリティを確保したいという場合に、こうやって書くと良いよ、ということを
例示したものです。
こうすることで、クライアントAやクライアントCはOpenVPNでサーバー(12.34.56.78)に
接続するだけで、クライアントのルーティングを 12.34.56.78 経由で自動的にやってくれます。
この設定をしないと、例えばSSHなんかだと、わざわざ一度 12.34.56.78 に接続して、
改めて、87.65.43.21 に接続しなおすということがなくなるのです!
既出だったらごめんなさい。
例示したIPアドレスについて
12.34.56.78 や、87.65.43.21 は実在しうるIPアドレスです。ひょっとしたら秘密の組織が管理しているものかもしれないので気をつけましょう。
自分は昔、03-1234-5678 にテストデータをFAX送信したことがあります。
本当に気をつけましょう。