図解!UbuntuでOpenVPNを使う:3. 設定


はじめに

図解!UbuntuでOpenVPNを使う:2. 証明書と認証鍵の作成の続きです.

前回までで接続に必要な証明書と認証鍵の作成が完了しました.

今回は,実際に接続するための設定について説明します.サーバ側とクライアント側それぞれについて設定を行います.

図解!UbuntuでOpenVPNを使う:目次

  1. 準備
    1. VPNの接続方式
    2. OpenVPN のインストール
    3. ファイアウォール設定
    4. VPNサーバ側のルータのグローバルIP確認
    5. ルータからVPNサーバへのポートフォワード設定
  2. 証明書と認証鍵の作成
    1. 簡易認証局(easy-rsa)関連
    2. VPNサーバ関連
    3. VPNクライアント関連
  3. 設定 ← イマココ
    1. OpenVPN サーバ設定
    2. OpenVPN クライアント設定
  4. 接続確認
    1. OpenVPNの起動
    2. 仮想tunデバイスの確認
    3. ping 確認
    4. netcat 確認

環境

  • OS: VPNサーバ/クライアント共に Ubuntu 14.04
  • VPNアプリケーション:OpenVPN 2.3.2

0. システム構成のおさらい

目標となるシステム構成をおさらいしておきましょう.

この構成を目指して設定ファイルを編集していくことになります.

なお,本エントリで掲載した設定ファイルのサンプルはこちらのGitHubリポジトリに格納しました.

1. OpenVPN VPNサーバ設定

自身の環境でOpenVPNが動作するように設定ファイルを編集する必要があります.

/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gzにサンプルがあるので,/etc/openvpn/server.confに展開します.

(command)
$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

また,server.confではサーバ側の実ドメインを入力する必要があるので,確認しておきましょう.

(command)
$ ifconfig
(output)
wlan0     Link encap:イーサネット  ハードウェアアドレス hogehoge  
          inetアドレス:192.168.179.7  ブロードキャスト:192.168.179.255  マスク:255.255.255.0

では,実際に編集をします.

(command)
vim server.conf
server.conf
# OpenVPNのポート番号.
port 1194
# 通信プロトコル: UDP.
proto udp
# VPNプロトコル:ルーティング方式.
dev tun
# 認証局証明書/サーバ証明書・認証鍵/DHパラメータ./etc/openvpn からのパス.
ca ca.crt
cert mysrv.crt
key mysrv.key
dh dh2048.pem
# VPN接続時のネットワークセグメント.他と衝突しないようにうする.
server 10.8.0.0 255.255.255.0
# 再接続用のテーブル.
ifconfig-pool-persist ipp.txt
# サーバ側のLANのセグメント.ifconfigで認識されるLANに接続させる.
push "route 192.168.179.0 255.255.255.0"
# セッション継続頻度.
keepalive 10 120
# 再起動後の処理.
persist-key
persist-tun
# ステータスログ.
status openvpn-status.log
# ログファイル.
log         openvpn.log
# LZO圧縮を有効に
comp-lzo
# ログレベル.
verb 3
  • push "route 192.168.179.0 255.255.255.0"の部分に,先ほど確認した実LANのドメインが入ります.

2. OpenVPN VPNクライアント設定

クライアント側でも同様に設定ファイルを編集する必要があります./usr/share/doc/openvpn/examples/sample-config-files/client.confにサンプルがあるので,/etc/openvpn/client.confにコピーします.

(command)
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

図解 UbuntuでOpenVPNを使う:1. 準備でVPNサーバ側に接続されたルータのグローバルIPを調べことは記憶に新しいと思います.このIPの入力がここで必要となるので,控えを取り出してください.

設定ファイルを編集します.

(command)
$ vim client.conf
client.conf
# クライアントモードであることを宣言
client
# VPNプロトコル:ルーティング方式.
dev tun
# 通信プロトコル: UDP.
proto udp
# グローバルIPアドレスを指定する.「1. 準備」で調べたIP.
remote 101.102.103.xxx 1194
# 接続の継続.
resolv-retry infinite
# ポート番号をバインドしない.ほとんどの場合はこうらしい.
nobind
# 切断後の動作指定
persist-key
persist-tun
# 認証局証明書/クライアント証明書・認証鍵./etc/openvpn からのパス.
ca ca.crt
cert mycli.crt
key mycli.key
# LZO圧縮を有効に
comp-lzo
# ログレベル
verb 3
  • remote 101.102.103.xxx 1194の部分がVPNサーバ側に接続されたルータのグローバルIPとなります.ネットワークの再接続等でサーバのグローバルIPが変わったら変更が必要なので要注意です.

  • comp-lzoの有効無効は,サーバとクライアントで合わせる必要があります.

おわりに

これで設定は完了です.

次回図解!UbuntuでOpenVPNを使う:4. 接続確認ではいよいよ実際にVPNで繋ぎます^^ 楽しみですね♪

参考文献