OpenVPNのサーバ構築

以前の記事で、サーバ設定について書いたつもりだったが

該当ページにリンク貼っただけなので、消滅しないうちにちゃんと書いておく。(というか、指令が出た。)

 

構築するWIndowsにOpenVPN GUI(Tap付き)が入ってる事を前提とする。

 

1.設定ファイルの作成

コマンドプロンプトを開いて、インストールしたフォルダに移動。 

1
2
3
cd C:インストールしたディレクトリeasy-rsa
 一般的には
cd C:Program FilesOpenVPNeasy-rsa

その後に次のバッチファイルを実行

1
init-config

 次にvars.batファイルを変更する。メモ帳やエディタを使ってvar.batを開いて以下の箇所を変更する。

1
2
3
4
5
set KEY_COUNTRY=JP    日本なのでJPにしておく
set KEY_PROVINCE=Kanagawa 都道府県を入れておく
set KEY_CITY=Yokohama   市町村を入れておく
set KEY_ORG=Home        企業名とか。個人なら適当に
set KEY_EMAIL=foo@bar.com メールアドレスを

空欄はダメみたいです。

 

2.認証局(CA)の証明書と鍵を作成

CAのファイル(証明書と鍵)を作成するために、コマンドプロンプトから次の順に実行する。 

1
2
3
vars
clean-all
build-ca

vars で環境変数の読込み。

clean-allでインストール先\easy-rsa\keysの中を全て削除。

最後のbuild-caの実行では、数カ所の設問に入力が必要。  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:Program FilesOpenVPNeasy-rsa>build-ca
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.............++++++
..........................................++++++
writing new private key to 'keysca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [JP]:  Enterだけ押す
State or Province Name (full name) [Kanagawa]:  Enterだけ押す
Locality Name (eg, city) [Yokohama]:  Enterだけ押す
Organization Name (eg, company) [home]:  Enterだけ押す
Organizational Unit Name (eg, section) []:  Enterだけ押す
Common Name (eg, your name or your server's hostname) []:dev  共通名を入れる(サーバホスト名とかシステム名とか適当に)
Email Address [foo@bar.com]:  Enterだけ押す

vars.batに設定した値を用いるので、入力するのはCommon NameのところだけでOK

 

3.サーバの証明書と鍵を作成

サーバのキーファイル(証明書と鍵)を作成するために、コマンドプロンプトから次の順に実行する。

1
build-key-server server

CA証明書&鍵を作ったときと同じ設問になるけど、Common Nameは server にしておく

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.............++++++
..........................................++++++
writing new private key to 'keysca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [JP]:  Enterだけ押す
State or Province Name (full name) [Kanagawa]:  Enterだけ押す
Locality Name (eg, city) [Yokohama]:  Enterだけ押す
Organization Name (eg, company) [home]:  Enterだけ押す
Organizational Unit Name (eg, section) []:  Enterだけ押す
Common Name (eg, your name or your server's hostname) []:server  "server"と入力する
Email Address [foo@bar.com]:  Enterだけ押す
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  Enterだけ押す
An optional company name []:  Enterだけ押す
Using configuration from openssl.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'JP'
stateOrProvinceName   :PRINTABLE:'Kanagawa'
localityName          :PRINTABLE:'Yokohama'
organizationName      :PRINTABLE:'home'
commonName            :PRINTABLE:'server'
emailAddress          :IA5STRING:'foo@bar.com'
Certificate is to be certified until Jan 31 02:41:12 2016 GMT (3650 days)
Sign the certificate? [y/n]:y  yを入力
 
 
1 out of 1 certificate requests certified, commit? [y/n]y  yを入力
Write out database with 1 new entries
Data Base Updated
最後の2つの質問は"y"でOK

4.クライアントの証明書と鍵を作成

クライアントのキーファイル(証明書と鍵)を作成するために、コマンドプロンプトから次の順に実行する。

1
2
3
build-key client1
build-key client2
build-key client3

この例では3台のクライアントで使用するために3度コマンドを実行して3つのキーを作成している。

作成手順はサーバーの証明書作成と同じだが、下記の部分だけ気をつける事。

*build-keyの後ろの名前はユニークな(重複しない)名前にする。

*設問のCommon Nameのところは、上記の名前(build-keyの後ろの名前)と同じにする(重複しない)

 

 

5.Diffie Hellmanパラメータを生成

 OpenVPNサーバにはDiffie Hellmanパラメータというのを生成しなければならないらしい。ので、次のコマンドを実行する

1
build-dh

生成に少し時間が掛かる。

以上の証明書、鍵(CA、サーバ、クライアント)、DHパラメータは「インストール先\easy-rsa\keys」に保存される。

 

6.サーバ設定ファイルの編集

設定ファイルは「インストール先\sample-config」にサンプル(server.ovpn)があるので、これを「インストール先\config」にコピーして編集する。

最低限編集しなければならない項目は以下のとおり。

1
2
3
4
5
6
7
8
9
10
11
12
13
・port 1194
  OpenVPNのリスニングポート。ルータ側でも同じポート番号を開ける設定をしておくこと
・proto udp
  使用するプロトコル。tcpにすると若干遅延があるかも
・ca c:\Program Files\OpenVPN\easy-rsa\keys\ca.crt
  CA証明書があるディレクトリ。ディレクトリの区切りは\とする
・cert c:\Program Files\OpenVPN\easy-rsa\keys\server.crt
  サーバ証明書があるディレクトリ。ディレクトリの区切りは\とする
・key c:\Program Files\OpenVPN\easy-rsa\keys\server.key
  サーバ鍵があるディレクトリ。ディレクトリの区切りは\とする
・server 192.168.100.0 255.255.255.0
  サーバが構築する仮想ネットワークアドレス。サーバは92.168.100.1とIPが割り当てらる
  クライアントには残りのIPアドレスが割り当てられる

とりあえず、これでVPNサーバは構築はできる。

Windowsファイアウォールのポート解放を忘れずに。

 

Posted under 未分類 by tetsuo on 金曜日 28 1月 2011 at 1:55 PM

OpenVPNのリモート設定を複数持ちたい場合

 /Users/[ユーザー名]/Library/Application\ Support/Tunnelblick/Configuration に

ovpn ファイル(remote の設定が異なる)を複数入れておく。

その状態でTunnelbrickを起動すると、Connect欄がovpnの数だけ表示されるので、必要に応じて変更すればOK。

  

openvpn

Posted under 未分類 by akira on 木曜日 27 1月 2011 at 6:50 PM

OpenVPNの設定

VPNを用いて mac から遠方の Windows にリモート接続するため。

 

<VPNServerの設定>

Windows2003Server

 

OpenVPN GUI(Tapドライバ付き)のセットアップを以下のサイトからDLしてインストール。

http://www.openvpn.jp/guijp.html

 

サーバの詳細設定方法については、以下のサイトを参考。

http://d.hatena.ne.jp/omizu/20060202/p1

後から鍵を追加する場合、環境変数が設定されてないので必ずvars.batを実行後に処理する事。

Windowsファイアウォールで、OpenVPNで使用するポートを解放しておく。

 

<Windows側の設定>

XP SP3

 

OpenVPN GUIをインストール。(サーバに入れたのものと同じ。)

C:\\Program Files\OpenVPN\config にServerで作成したキーファイルをコピー

ca.crt

ca.key

client0.crt ※1

client0.key ※1

client.ovpn

※1 サンプル名称。Serverで作成したキーファイル名に置き換えて下さい。

 

client.ovpnを編集(変更点のみ抜粋)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Use the same setting as you are using on 
# the server. 
# On most systems, the VPN will not function 
# unless you partially or fully disable 
# the firewall for the TUN/TAP interface.
dev tap
 
# The hostname/IP and port of the server. 
# You can have multiple remote entries 
# to load balance between the servers. 
remote [自分のサーバー名] [自分のポート番号]
 
# Downgrade privileges after initialization (non-Windows only) 
;user nobody
;group nobody
 
# SSL/TLS parms. 
# See the server config file for more 
# description. It's best to use 
# a separate .crt/.key file pair 
# for each client. A single ca 
# file can be used for all clients.  
ca ca.crt
cert client0.crt
key client0.key
自動起動させたい場合は、サービスからOpenVPN Serviceを自動に設定する。

 

<Mac側の設定>

OS X 10.6.5

 

Tunnelbrick をインストール(Tunnelbrick 3.1.2)

 /Users/[ユーザー名]/Library/Application\ Support/Tunnelblick/Configurations 下で

keys/ フォルダ作成(パーミッション700)

keys/ の下に Windows で作成された以下のファイルをコピー(パーミッション777)

ca.crt

ca.key(←いらない?)

client1.crt

client1.key

 

config.ovpn を編集(変更点のみ抜粋)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Use the same setting as you are using on 
# the server. 
# On most systems, the VPN will not function 
# unless you partially or fully disable 
# the firewall for the TUN/TAP interface. 
dev tap
 
# The hostname/IP and port of the server. 
# You can have multiple remote entries 
# to load balance between the servers. 
remote [自分のサーバー名] [自分のポート番号]
 
# Downgrade privileges after initialization (non-Windows only) 
user nobody
group nobody
 
# SSL/TLS parms. 
# See the server config file for more 
# description. It's best to use 
# a separate .crt/.key file pair 
# for each client. A single ca 
# file can be used for all clients. 
ca keys/ca.crt
cert keys/client1.crt
key keys/client1.key

TunnelBrickを起動。右上のトンネルアイコン>Connect Config

 

Posted under 未分類 by akira on 水曜日 26 1月 2011 at 2:14 PM