hack my life: networkアーカイブ

networkの最近のブログ記事

サーバー設定につづいてClientの設定。

今回の構成は、サーバーがLinux、クライアントがWindowsとMacという構成。

WindowsをVPNクライアントとして使う

http://openvpn.se/files/install_packages/openvpn-2.0.5-gui-1.0.3-install.exeをダウンロード。

ダウンロードが終わったら、インストールです。
全部デフォルトでかまいません。ちょっと時間かかります。

インストールが終わったら、OpenVPNインストールディレクトリ/config配下に設定ファイルと鍵を置きます。
まず、鍵をOpenVPNインストールディレクトリ/config/keysに置きます。(ここでなくてもかまいません。)

そして設定ファイルを作成。

OpenVPNインストールディレクトリ/config/client1.ovpn
# クライアントであることを指定 ※OpenVPNサーバからパラメータを受け取るために必要 client # 通信に使用するプロトコル proto udp # 使用する仮想ネットワークデバイスの指定 ※OpenVPNサーバと同じにする必要があります。 dev tap0 # 接続するOpenVPNサーバの指定 # 書式:remote [OpenVPNサーバのホスト名またはアドレス] [ポート番号] #一般家庭の場合、ルーターのアドレスを指定して、StaticNAT転送してあげる必要があります。 remote vpn.example.com 5000 # CA証明書、サーバ証明書、サーバ秘密鍵のパス指定 keys/ca ca.crt keys/cert client1.crt keys/key client1.key # OpenVPNサーバの名前解決を継続する resolv-retry infinite # ローカルポート番号をバインドしない nobind # パケット転送の際にLZO圧縮を有効にする comp-lzo # VPNが落ちた場合の再接続設定 persist-key persist-tun # ログの詳細レベルの指定 verb 3 # OpenVPNサーバからパラメータを受け取るための設定 pull # OpenVPNサーバからIPアドレスを受け取るための設定 float

設定が終わったら、タスクトレイに"OpenVPN GUI"というアイコンがあるので、
右クリック -> client1 -> Connectを選択。クライアント証明書を作成したときのパスフレーズを聞かれるので、入力します。

アイコンのPCモニタが緑になれば、接続終了です。
アイコンにマウスカーソルを当てると、割り当てられたIPアドレスが表示されます。
今回の例だと、10.0.1.2が割り当てられています。

Pingをうったり、Webサーバーがあればアクセスしてみてください。繋がっていれば成功です。

MacをVPNクライアントとして使う

http://www.tunnelblick.net/から、自分の環境にあったファイルをダウンロードしてください。Mac OSX Tigerの場合はhttp://www.tunnelblick.net/Tunnelblick-Tiger-2.0.1.dmgがそうです。

ダウンロードしたらインストール、アプリケーションフォルダにTunnelblickがあるので、実行してください。

"Plese Put your Config file"とかいうアラートがでるので、一端"Continue"をクリックしてください。
勝手にエディタが立ち上がりますが、一端とじてターミナルで作業します。

# cd 〜/Library/openvpn
# mkdir keys
# vi client2.conf
# クライアントであることを指定 ※OpenVPNサーバからパラメータを受け取るために必要 client # 通信に使用するプロトコル proto udp # 使用する仮想ネットワークデバイスの指定 ※OpenVPNサーバと同じにする必要があります。 dev tap0 # 接続するOpenVPNサーバの指定 # 書式:remote [OpenVPNサーバのホスト名またはアドレス] [ポート番号] #一般家庭の場合、ルーターのアドレスを指定して、StaticNAT転送してあげる必要があります。 remote vpn.example.com 5000 # CA証明書、サーバ証明書、サーバ秘密鍵のパス指定 keys/ca ca.crt keys/cert client1.crt keys/key client1.key # OpenVPNサーバの名前解決を継続する resolv-retry infinite # ローカルポート番号をバインドしない nobind # パケット転送の際にLZO圧縮を有効にする comp-lzo # VPNが落ちた場合の再接続設定 persist-key persist-tun # ログの詳細レベルの指定 verb 3 # OpenVPNサーバからパラメータを受け取るための設定 pull # OpenVPNサーバからIPアドレスを受け取るための設定 float

実はWindowsと違いは無かったりします.....

先ほど作成した〜/Library/openvpn/keysのしたに、client2の鍵を置きます。client1.keyだけはパーミッション600にしておいてください。でないと怒られます。

あとは、これまた、クイック起動に居る、黒ずんだアーチ状のアイコンをクリックして、
"Connect Client2"を選択します。パスフレーズを聴かれるので、入力してエンター。

Windowsと同じように、接続確認します。
今回の例だと、10.0.1.3というIPが振られます。

また、VPNに接続しているクライアント同士は、サーバーのserver.confにclinet-clientが設定してあれば通信できます。
ためしにping を10.0.1.2に打ってみてください。設定に問題がなければ返答が帰ってくるはずです。

OpneVPNを使うと、VPN環境が簡単に構築できてしまいますね。

自宅サーバーにVPNを導入してみました。
ちょっと長くなるので、何回かにわけて導入手順を書いておきます。

OpenVPNとは

VPNとはVirtual Private Networkの略で、仮想的に専用線でつないだネットワークの様に達振る舞う事ができます。

例えば、会社なんかでは10.0.0.0/24とか192.168.0.0/24なんてネットワークを使っている思いますが、これはプライベートネットワークといって、外部(インターネット)と直接通信が出来ません。

説明し出すと長いのでこの辺りの細かい説明は省略します。

一方、皆さんの自宅でもおそらく192.168.0.0/24のネットワークを使っていると思うのですが、コレもプライベートネットワークです。
当然直接インターネットには繋げません。(モデムルーターとか使っているハズです。)

VPNの便利な所は、此の会社のプライベートネットワークと自宅プライベートネットワークの間で仮想的にブリッジネットワークを使って、仮想的に専用線を引いている様に接続出来るコトです。

例を挙げると、会社のネットワークを10.0.0.0/24、自宅ネットワークを192.168.0.0/24と仮定すると、仮想的にNICを作成して、会社と自宅PCに10.0.1.0/24アドレスを割り当てます。Linuxのファイアウォールで転送のポリシーを設定してあげれば、自宅に居ながら会社のネットワークにセキュアにアクセス出来るようになります。

実装面から言うと、パケット自体はインターネット上を暗号化されて通る事になります。
10.0.1.0/24ネットワーク宛のパケットをSSL/TSL方式で暗号化し、更にグローバルIP用にカプセル化して送信することでこのセキュアな接続を実現しています。

今回はVPNサーバーとしてLinux、クライアントとして、WindowsとMacを使っています。
サーバー側でブリッジモードは使っていません。(ネットワーク上の都合です)

OpenVPN導入

まずはサーバ側のインストール

OpenVPN本体と、ライブラリlzoが必要なのでダウンロードします。

# cd /usr/local/src
# wget http://openvpn.net/release/openvpn-2.0.5.tar.gz
# wget http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz

lzo → OpenVPNの順にインストール

# tar zxvf lzo-1.08.tar.gz
# cd lzo-1.08
# ./configure
# make
# make install
# tar zxvf openvpn-2.0.5.tar.gz
# cd openvpn-2.0.5
# ./configure 
# make
# make install

設定ファイルの置き場と、サンプル設定ファイルのコピー。

# mkdir /etc/openvpn/
# cp sample-scripts/openvpn.init /etc/openvpn
# chmod 755 /etc/openvpn/openvpn.init

OpenVPNの設定ファイルを作成します。

# vi /etc/openvpn/server.conf

# 通信に使用するプロトコル及びポート番号の指定 port 5000 proto udp # 使用する仮想ネットワークデバイスの指定 dev tap0 # CA証明書、サーバ証明書、サーバ秘密鍵、DH鍵のパス指定 # ※パス指定は、絶対パスまたはserver.confの設置ディレクトリからの相対パスでの指定 ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh1024.pem # OpenVPNサーバのネットワーク設定 # 書式:server [OpenVPNサーバのアドレス] [ネットマスク] server 10.0.1.0 255.255.255.0 # クライアントにサーバ側ネットワークへの経路を伝えるための設定 # 書式:push “route [OpenVPNサーバ側のネットワークアドレス] [ネットマスク]” push "route 10.0.1.0 255.255.255.0" # クライアント同士の通信を可能にするための設定 client-to-client # VPN接続間の生存確認のための設定 keepalive 10 120 # パケット転送の際にLZO圧縮を有効にする comp-lzo # OpenVPNデーモン起動ユーザ・グループの指定 ※Windowsシステム以外設定可能 user nobody group nobody # VPNが落ちた場合の再接続設定 persist-key persist-tun # ステータスログのパス指定 status /var/log/openvpn-status.log # ログのパス指定 log /var/log/openvpn.log log-append /var/log/openvpn.log # ログの詳細レベルの指定 verb 3 # OpenVPN管理インターフェイスの起動設定 management localhost 7505

パケットの転送を許可する。

# echo 1 > /proc/sys/net/ipv4/ip_forward
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1	←"1"に変更

OpenSSL設定

続いて、SSLの設定。
用意されているスクリプトを使用するので割と簡単です。

OpenSSLが入っていなければ、入れておいてください。

# yum install openssl

精製用のスクリプトを移動。

# cp -r /usr/local/src/openvpn-2.0.5/easy-rsa /etc/openvpn

SSL設定用の環境設定スクリプトを編集。

# vi /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY=JP               ←国名
export KEY_PROVINCE=Tokyo           ←県名
export KEY_CITY=Minatoku            ←市町村名
export KEY_ORG="hackmylife"         ←団体名
export KEY_EMAIL="test@mail.example.com" ←メールアドレス

証明書を作成。

# cd /etc/openvpn/easy-rsa/
# . ./vars
# mkdir keys
# ./build-ca
Generating a 1024 bit RSA private key
...........++++++
...............................++++++
writing new private key to 'ca.key'
        

このアーカイブについて

このページには、過去に書かれたブログ記事のうちnetworkカテゴリに属しているものが含まれています。

前のカテゴリはMySQLです。

次のカテゴリはOtherです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

network: 月別アーカイブ

Powered by Movable Type 4.0

アドセンス

MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore
MoMAstore
MoMAstore
MoMAstore