2013年12月26日木曜日

OpenVPNで固定IPアドレスを振る

Serversman@VPSをOpenVPNサーバにして
いろいろなクライアントからアクセスしていると、
クライアントに固定IPアドレスを振りたい場面に出くわします。
例えば任意のVPNクライアントから別のクライアントのウェブサーバにアクセスするときには、
URLにIPアドレスを直打ちしたいですし。
結論から言えばそれは可能なのですが、その設定はサーバ側に施す必要があります。

OpenVPNの設定ファイルserver.confを見ているとそもそもOpenVPNのトポロジーは、
IPアドレス4つを1つのサブネット(サブネットマスクが30ビット)として、
その2(or 3)番目をクライアントに割り当て、3(or 2)番目をサーバ側の受け口とするP2Pで、
クライアント間の通信はOpenVPN自身が中継するようです。
ちなみに最初のIPアドレスはネットワークアドレスで、
最後のIPアドレスはブロードキャストアドレスですので機器に割り当てることはできません。
ともかく、OpenVPNはクライアントごとにサブネットを作ってそれをサーバでルーティングしています。
この知識が固定IPアドレス設定に重要です。

では実際に設定してみましょう。
まずクライアントごとの個別設定を有効にします。
設定ファイル"/etc/openvpn/server.conf"に以下の行を追加します。
client-config-dir ccd
クライアント個別設定はccdディレクトリのclient<識別名>ファイルになるので以下を実行します。
# mkdir ccd
# touch client<識別名>
次に割り振る固定IPアドレスを決めます。
サーバが割り当てるIPアドレスの範囲から先の理論に従い1つ選びます。
そして"/etc/openvpn/server.conf"に以下の行を追加します。
route <クライアントに割り当てるIPアドレス> 255.255.255.252
また"/etc/openvpn/ccd/client<識別名>"に以下の行を追加します。
ifconfig-push <クライアントに割り当てるIPアドレス> <サーバ側の受け口となるIPアドレス>
これで
# /etc/init.d/openvpn start
でサーバを再起動すればクライアントから接続しに行ったとき指定したIPアドレスが降ってきます。

0 件のコメント:

コメントを投稿