OpenVPN3(クライアント設定)

クライアント設定
証明書の設置
OpenVPN1証明書で作成した。
・Ca証明書 ca.crt
・クライアント証明書 clientA.crt
・クライアント秘密鍵 clientA.key を
クライアントPC(Windows)の任意のフォルダを作成して配置します。
(例 D:\OpenVPN_CRTへ配置しました。)
OpenVPN3-01

OpenVPN GUI for Windowsのインストール
クライアントPC(Windows)でOpenVPN GUI for Windowsサイト(http://openvpn.se/)から
ダウンロード – Stableを選択する。
Installation Package (Both 32-bit and 64-bit TAP driver included):
openvpn-2.0.9-gui-1.0.3-install.exeをダウンロードして実行します。
セットアップウィザード画面でNextボタンを押します。
次にライセンス確認画面でIAgreeボタンをおします。

コンポーネント選択画面はそのままNextボタンを押します。
OpenVPNのインストール先を選択してInstallボタンを押します。
途中でTAP-Win32 Adapter V8の警告画面が表示されるが続行ボタンを押す。
インストールが完了してNextボタンを押す。
Finishボタンを押してセットアップウィザードを終了させます。
OpenVPN3-02
ネットワーク接続にはTAP-Win32 Adapter V8が表示されます。
タスクバーにOpenVPNアイコンが表示されます。

クライアントの設定
C:\Program Files\OpenVPN\sample-configのclient.ovpnを
C:\Program Files\OpenVPN\configへコピーする。
client.ovpnはVPNを接続するサーバごとに必要になります。
client.ovpnを任意の名前Ubuntu-client.ovpnへ変更します。

Ubuntu-client.ovpnファイルを編集します。
;はその行は無効
#の以降はコメント

【16行目】client     【確認】OpenVPNをクライアントを明示

      ;dev tap0
【24行目】dev tun     【確認】ルーティング方式なのでtunデバイスを指定

【37行目】proto udp     【確認】通信プロトコル Ubuntuサーバ側がudpなのでudpを指定

【42行目】remote Ubuntuサーバのドメイン名 1194     
            【変更】Ubuntuサーバのドメイン名と待ち受けポートを指定
            ※無料ドメインの取得と設定リンク

【54行目】resolv-retry infinite     【確認】Ubutuサーバの名前解決を無限トライ

【58行目】nobind            【確認】クライアント側で固定のポートを使用(bind)しない。

【65行目】persist-key         【確認】クライアント再起動時切断後、秘密鍵の再読み込みをしない。
【66行目】persist-tun         【確認】クライアント再起動時切断後、tunデバイスの再オープンをしない。

【88行目】ca D:\\OpenVPN_CRT\\ca.crt      【変更】Ca証明書へのフルパス
【89行目】cert D:\\OpenVPN_CRT\\clientA.crt  【変更】クライアント証明書へのフルパス
【90行目】key D:\\OpenVPN_CRT\\clientA.key  【変更】クライアント秘密鍵へのフルパス
       (※ディレクトリの区切りは\\である。)

【112行目】cipher BF-CBC 【変更】;cipher x をcipher BF-CBCに変更します。
                Ubuntuサーバと同じcipher(暗号器) BF-CBC(Blowfish)を指定する。

【117行目】comp-lzo         【確認】lzo圧縮を有効

【120行目】verb 3          【確認】ログレベル  ログファイルの詳細度0から11で大きいほど上がる。

クライアントPC(Windows)からの接続
1.ノートPCなどで使用しているネットワーク接続管理ツールやアプリを一時的に停止する。
2.通信端末(PHSや携帯)など外からのインターネット回線の接続を行う。
3.vIpCnfgツールなどネットワーク切り替えツールを使用している場合は
【外からの接続】にhostsを変更設定する。
  (URLリンク)
4.タスクトレイのOpenVPN GUIのアイコンを右クリックして
クライアントの設定ファイルUbuntu-client(接続するUbuntuサーバ)を選びConnectを選択します。
OpenVPN3-03
5.クライアントの証明書作成時のパスフレーズを入力してOKボタンを押します。
Ubuntuサーバと通信が開始されて、接続が完了するとログウィンドウが閉じます。
OpenVPN3-04
接続IPアドレスとUbuntuサーバと接続が完了した旨が表示され、
タスクトレイのOpenVPN GUIのアイコンの色が茶色→黄色→緑色へ変わります。
タスクトレイのOpenVPN GUIのアイコンを右クリックしてView Logを選択すると接続状況のログを確認できます。
最後に「 Initialization Sequence Completed 」の紋々があれば接続は成功しています。
ちなみに コマンドプロンプトより 例 C:\>ping 192.168.0.133(UbuntuサーバのIPアドレス)を実行するとpingが通ります。

これで安全にUbuntuサーバ(Samba、WebDAV、FTPなど)へデータアップ・ダウンロードやWebカメラ(Webcam、Motion)の監視が可能になります。
OpenVPN3-05
※マイ ネットワークから共有フォルダ(Samba)へアクセスできない場合は
クライアントPC(Windows)のスタート – ファイル名を指定して実行を選びます。
名前の入力欄に例 \\192.168.0.133 UbuntuサーバのIPアドレスを入力してOKボタンを押しますと
Sambaの共有フォルダの一覧が表示されてアクセスできます。

クライアントPC(Windows)からの切断
タスクトレイのOpenVPN GUIのアイコンを右クリックして
接続中の設定ファイルUbuntu-client(Ubuntuサーバ)を選びDisconnectを選択します。
切断後は当然、コマンドプロンプトより ping は通りません。

その他のWindowsのクライアントソフト
vpnux Connector
http://www.vpnux.jp/
無料で簡単にOpenVPNが接続できます。
OpenVPN3-06

OpenVPN2(サーバ設定)

サーバ設定
準備
Ubuntuサーバの雛形server.conf.gzをコピーします。
#cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn

解凍します。
/etc/openvpn# gunzip server.conf.gz
server.confがあります。
-rw-r–r– 1 root root 10289 2009-09-23 09:25 server.conf

server.confの設定 【ルーティング方式】
;はその行は無効
#の以降はコメント

【32行目】Port 1194       【確認】 例 51194など任意に変更してもよい。
                        
       # TCP or UDP server?           
       ;proto tcp                   
【36行目】proto udp       【確認】プロトコルできるだけUDPを使用する。
                        
      # the firewall for the TUN/TAP interface.
      ;dev tap
【53行目】dev tun        【確認】ルーティング方式はtunデバイスを使用する。

【61行目】;dev-node MyTap   【確認】 Linuxはこのままです。

【78行目】ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt 【Ca証明書変更】「ca ca.crt」 を変更します。
【79行目】cert /etc/openvpn/easy-rsa/2.0/keys/server.crt 【サーバー証明書変更】「cert server.crt」 を変更します。
【80行目】key /etc/openvpn/easy-rsa/2.0/keys/server.key
【サーバー秘密鍵変更】「key server.key # This file should be kept secret」 を変更します。

【87行目】dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem 【DHパラメータ変更】「dh dh1024.pem」を変更します。

【96行目】server 10.8.0.0 255.255.255.0    【サブネット確認】ルーティング方式は先頭の ; を削除して有効にする。

【103行目】ifconfig-pool-persist ipp.txt     【確認】
クライアントのCommon Nameが識別子になり再接続時に前回のIPアドレスを割り当てるためのテーブルファイル

【115行目】;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 【確認】ルーティング方式なので ; をつけて無効にする。

【127行目】;server-bridge        【確認】ルーティング方式なので ; をつけて無効にする。

      # back to the OpenVPN server.
      ;push “route 192.168.10.0 255.255.255.0”
      ;push “route 192.168.20.0 255.255.255.0”
【138行目】push “route 192.168.0.0 255.255.255.0” 【追加】VPNサーバ側のサブネット情報

【188行目】push “redirect-gateway def1 bypass-dhcp” 【変更】先頭の ; を削除して有効にする。
セキュリティの不安のあるアクセスポイントを利用する場合有効だそうです。

【196行目】;push “dhcp-option DNS 208.67.222.222”   【確認】サーバのDNSを利用するときは;を外す。
【197行目】;push “dhcp-option DNS 208.67.220.220”   【確認】サーバのWINSを利用するときは;を外す。 DNS?

【227行目】keepalive 10 120 【確認】定期通信頻度
Pingを10秒間隔で送信して120秒以内に反応がない場合切断する。

【245行目】cipher BF-CBC # Blowfish (default) 【変更】cipher(暗号器)ディフォルトはBlowfishを使用する ; を外します。
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES

      Blowfishはdefaultで128Bitの共通鍵のブロック暗号 。他にAESやDES、暗号深度(64,128,192,256bit)などを選択できる。
      Bit数が上がるほど安全性は高いが処理が遅くなる。 ※OpenVPNのサーバとVPNのクライアントに同じ設定を行う。

【252行目】comp-lzo          【確認】LZO圧縮を利用する。

【263行目】user nobody            【変更】 ; を削除して有効にする。セキュリティ対策
【264行目】group nogroup           【変更】 ; を削除して有効にする。セキュリティ対策
                        Rootからnobodyへ権限を変更してアタックを防げる。

【270行目】persist-key         【確認】再起動後の処理方法 VPNサーバの再起動時 デバイスの再オープンを行わない
【271行目】persist-tun         【確認】再起動後の処理方法 VPNサーバの再起動時 秘密鍵の再読込を行わない

【276行目】status openvpn-status.log       【確認】ログ

【286行目】;log-append openvpn.log        【確認】ログファイルを継続取得する場合は;を削除する。

【295行目】verb 3             【確認】ログレベル  ログファイルの詳細度0から11で大きいほど上がる。

Ipフォワーディングを有効にする。
UbuntuサーバのIPアドレスとVPN上のアドレスが異なるためその間の通信ができるように設定する。
Ubuntuサーバ起動時に自動設定が必要です。
【/etc/sysctl.conf】を編集する。

【28行目】net.ipv4.ip_forward=1          【変更】 値を0から1に変更して有効にする。

OpenVPNの起動
起動の確認
# /etc/init.d/openvpn start

停止
# /etc/init.d/openvpn stop

状態
# /etc/init.d/openvpn status

Ubuntu再起動後、起動していない場合は実行する。
# chkconfig –add openvpn または# chkconfig openvpn on

オフにする場合# chkconfig openvpn off

起動ランレベルの確認
# chkconfig –list openvpn で確認する。
(Chkconfigがない場合はインストールして下さい。)
openvpn 0:off 1:off 2:on 3:on 4:on 5:on 6:off

ファイアウォールの設定
ファイアウォールgufwでAllow UDP 1194 のポートを開放します。
 (または任意のポート例 51194などを開放する。)

ポートフォワーディング
外からVPNを利用しますのでルータのポートフォワーディングの設定を行う。
ルータの管理画面へアクセスして
ポートマッピング画面へ移動する。
【LAN側のホスト】:ubuntuサーバのアドレス
【プロトコル】:TCP
【ポート番号】:1194   
(または任意のポート例 51194などを設定する。)
これらの設定をルータに追加して保存(反映)します。

これでクライアントPCからの接続待ち状態になります。