Ubuntu12.04に OpenVPNをその2

●server.confを編集
openvpnサーバの設定ファイルをサンプルからコピーして流用

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz

以下の行を有効にし自分の環境に合わせて編集

# vim /etc/openvpn/server.conf
port 1194
proto udp
dev tun
keepalive 10 120
comp-lzo
ca ca.crt
cert server.crt
key server.key
ifconfig-pool-persist ipp.txt

#接続してくるクライアントに対して使用するDNSサーバーを設定
#OpenDNS.com
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
#GooglePublicDNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

#クライアント同士の通信を有効化
client-to-client

#TLS暗号を有効化
tls-auth ta.key 0

#暗号化の指定
cipher AES-128-CBC   # AES

#ルーティング定義 LAN側へのルーティングをVPNサーバー経由とする。
#192.168.0.0/24のパケットはこのサーバを経由する様になる。
push "route 192.168.0.0 255.255.255.0"

#OpenVPN内部のネットワークで使用する IP アドレスを指定
server 10.8.0.0 255.255.0.0

#OpenVPNサーバーをデフォルトゲートウェイとして使用する場合
push "redirect-gateway def1 bypass-dhcp"

#セキュリティ上の理由からOpenVPNを実行するユーザー・グループを指定
user nobody
group nogroup

#ログの扱い
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log

●OpenVPN クライアント用の鍵作成

# cd /etc/openvpn/easy-rsa/
# source vars
# ./pkitool client

”failed to update database TXT_DB error number 2”といったエラーが出る場合、
回避策としてコモンネームを変更しないと鍵作成ができないので、
KEY_CN=someuniqueclientcn ./pkitool client
等で行うと作成が可能。
<参考サイト>http://blog.kenyap.com.au/2012/07/txtdb-error-number-2-when-generating.html

/etc/openvpn/以下にあるファイルを、
何かしらの手法でクライアント端末に落とす。

/etc/openvpn/ca.crt
/etc/openvpn/ta.key
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

 

OpenVPNダウンロードページから環境にあったパッケージをダウンロードしてインストール
http://openvpn.net/index.php/open-source/downloads.html
インストールしたopenvpnのフォルダ内に、
”sample-config”があるので、client.ovpnを”config”フォルダにコピーして、
テキストエディタを使い管理者権限で編集
クライアント設定ファイル(C:\Program Files\OpenVPN\config\client.ovpn)

--------------------------------------------
# from the server.
client
dev tun
proto udp
remote 192.168.x.x 1194 #VPNサーバーを指定
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert client.crt #クライアント証明書ファイル名を指定
key client.key #クライアント秘密鍵ファイル名を指定
remote-cert-tls server #追加("Man-in-the-Middle"攻撃対策)
tls-auth ta.key 1 #行頭の;を削除してコメント解除(TLS認証有効化)
cipher AES-128-CBC #ブロック暗号のチェーンのモード (AES-CBC) 暗号化を指定
comp-lzo
verb 3
-------------------------------------------

サーバー側からCA証明書(/etc/openvpn/ca.crt)、
クライアント証明書(/etc/openvpn/easyrsa3/pki/issued/client1.crt)、
クライアント秘密鍵(/etc/openvpn/easyrsa3/pki/private/client1.key)、
TLS認証鍵(/etc/openvpn/ta.key)をクライアント側へ持ち込み、
設定ファイルOpenVPNのconfigフォルダ(C:\Program Files\OpenVPN\config)へ格納する。

●VPN接続
「管理者としてこのプログラムを実行する」が大事。
スタートメニューにあるアイコンを右クリックして設定をし、
起動するとタスクバーにアイコンが出るので、右クリックして接続か、ダブルクリックして接続を開始。
※OpenVPN GUIアイコンが黄色(接続中状態)⇒青色(接続済状態)表示になることを確認

エラーが出る場合は、クライアント側とサーバー側のログからエラーメッセージを見て解決を。