ITエンジニアとして 知る 学ぶ
 
Java
.NET
PHP
プログラミング一般
DataBase
システム/サーバ構築
システム/サーバ運用
技術系一般知識
 
 
IT技術情報>システム/サーバ構築>OpenVPNで構築するリモートアクセス環境

OpenVPNで構築するリモートアクセス環境

 
 
 

【 ページ 】 | 1 | 2 | 3 | 4 | 5 | 6 |

<<前のページへ

4. OpenVPNサーバの構築 (Linux端末側)

4-1.必要なファイル

それでは、実際にOpenVPNサーバの構築作業を行います。
まずは、以下のコマンドを実行してopenvpn-2.0.5.tar.gzとlzo-1.08.tar.gzをダウンロードします。

# 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

4-2.インストール

ダウンロードしたファイルを解凍し、以下の手順でOpenVPNのインストールを行ってください。なお、OpenVPNをインストールするには予めLzoがインストールされている必要があるので、先にlzo-1.08.tar.gzのインストールを行ってください。

# 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

OpenVPNのインストールが完了しても設定ファイルや各種スクリプト等はインストールされませんので手動で作成する必要があります。今回はOpenVPNのメインディレクトリとして/etc/openvpnディレクトリを作成し、その配下に必要なファイルを設置します。

# mkdir /etc/openvpn/

必要な各種ファイルに関しては、ソースファイルを解凍してできあがるディレクトリ配下にサンプルファイルがありますので、それらをコピーして使用します。

# cp sample-scripts/openvpn.init /etc/openvpn
# chmod 755 /etc/openvpn/openvpn.init    ←OpenVPN起動スクリプト
# cp /usr/local/src/openvpn-2.0.5/sample-scripts/bridge-start /etc/openvpn
# chmod 755 /etc/openvpn/bridge-start    ←ブリッジ機能有効化スクリプト
# cp /usr/local/src/openvpn-2.0.5/sample-scripts/bridge-stop /etc/openvpn
# chmod 755 /etc/openvpn/bridge-stop    ←ブリッジ機能無効化スクリプト

4-3.OpenVPNサーバの設定 (server.confの設定)

それでは、OpenVPNサーバのメイン設定ファイルである/etc/openvpn/server.confの作成を行います。今回の想定するネットワーク構成を実現するために設定する内容は以下の通りです。なお、この設定ファイルはOpenVPNをインストールしても存在しませんので新規に作成する必要があります。皆さんが設定する際は、設置するネットワーク環境にあわせてIPアドレス等読み替えて行ってください。

# vi /etc/openvpn/server.conf

# 通信に使用するプロトコル及びポート番号の指定
port 5000
proto udp

# 使用する仮想ネットワークデバイスの指定
dev tap0

# CA証明書、サーバ証明書、サーバ秘密鍵、DH鍵のパス指定
# ※パス指定は、絶対パスまたはserver.confの設置ディレクトリからの相対パスでの指定
ca /etc/openvpn/easy-rsa/keys/ca.crt    ←7章で作成
cert /etc/openvpn/easy-rsa/keys/server.crt    ←7章で作成
key /etc/openvpn/easy-rsa/keys/server.key    ←7章で作成
dh /etc/openvpn/easy-rsa/keys/dh1024.pem    ←7章で作成

# OpenVPNサーバをブリッジモードで起動させるための設定
# 書式:server-bridge [OpenVPNサーバのアドレス] [ネットマスク] [クライアントに割り振るアドレス範囲]
server-bridge 192.168.0.4 255.255.255.0 192.168.0.220 192.168.0.230

# クライアントにサーバ側ネットワークへの経路を伝えるための設定
# 書式:push “route [OpenVPNサーバ側のネットワークアドレス] [ネットマスク]”
push "route 192.168.0.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

今回はブリッジモードでOpenVPNサーバを動作させるための設定をファイルに直接記述することで行いましたが、この他にもレイヤ3でカプセル化を行いルーティング設定でVPN間の通信を確立するような設定や、静的鍵による簡単な暗号化設定等、様々な設定が可能です。ここでは説明は割愛しますが、ソースファイルの展開先ディレクトリ、ここでは/usr/local/src/openvpn-2.0.5配下のsample-config-filesディレクトリ内にserver.confのサンプルファイルがあります。

この設定ファイルのコメント行に各設定項目に関する説明が記述されていますので、興味のある方は参照してください。

4-4.bridgeの設定

●bridge-utilsのインストール

CentOS4.2でブリッジ機能を使用するには、bridge-utilsとsysfsutilsパッケージがインストールされている必要があります。もし、インストールされていないなら以下の手順でパッケージをダウンロードし、インストールしてください。

# cd /usr/local/src
# wget ftp://ftp.riken.jp/Linux/centos/4.2/os/i386/CentOS/RPMS/bridge-utils-1.0.4-4.i386.rpm
# wget ftp://ftp.riken.jp/Linux/centos/4.2/os/i386/CentOS/RPMS/sysfsutils-1.2.0-1.i386.rpm
# rpm -ihv bridge-utils-1.0.4-4.i386.rpm sysfsutils-1.2.0-1.i386.rpm

●ブリッジ有効化スクリプトの編集

ブリッジを起動させた際、どのネットワークデバイスを使用するか?等の挙動に関する設定は、OpenVPNインストール時に設置したブリッジ有効化スクリプト/etc/openvpn/bridge-startで行います。デフォルトではtap0とeth0をブリッジで使用するように設定されているので、以下の箇所だけを皆さんの環境に合わせて設定すれば結構です。

# vi /etc/openvpn/bridge-start

※以下の箇所を修正する。
(〜省略〜)
eth="eth0"
eth_ip="192.168.0.4"    ←br0に設定するIPアドレス
eth_netmask="255.255.255.0"    ←br0に設定するネットワークアドレス
eth_broadcast="192.168.0.255"    ←br0に設定するブロードキャストアドレス
(〜省略〜)

●IPフォワードの設定

パケットが複数のネットワークデバイスを経由する場合は、以下のコマンドを実行してパケットの転送機能を有効にする必要があります。

# echo 1 > /proc/sys/net/ipv4/ip_forward
# vi /etc/sysctl.conf

(〜省略〜)
# Controls IP packet forwarding
net.ipv4.ip_forward = 1 ←"1"に変更
(〜省略〜)

4-5.起動スクリプトの作成

ブリッジ・モードでOpenVPNサーバを起動させるには以下の順番で各サービスを起動させる必要があります。

ネットワーク機能   →   ブリッジ機能   →   OpenVPNサーバ

また、ネットワーク機能を再起動する場合など、一旦ネットワーク機能停止させる際は以下の順番で停止させる必要があります。

OpenVPNサーバ   →   ブリッジ機能   →   ネットワーク機能

今回は、OpenVPNサーバ専用端末としてLinuxを起動させるように/etc/rc.d/init.d/networkを編集し、OpenVPN用サービス制御スクリプトを作成します。

# cp /etc/rc.d/init.d/network /etc/rc.d/init.d/vpn

/etc/rc.d/init.d/vpn の179行目辺りを以下のように編集します。(太文字部分を追記)

# vi /etc/rc.d/init.d/vpn

(〜省略〜)
         touch /var/lock/subsys/network

#ブリッジモードの有効化
/etc/openvpn/bridge-start

#OpenVPNサーバの起動
/etc/openvpn/openvpn.init start


         ;;

   stop)
#OpenVPNサーバの停止
/etc/openvpn/openvpn.init stop

#ブリッジモードの無効化
/etc/openvpn/bridge-stop




         # If this is a final shutdown/halt, check for network FS,
         # and unmount them even if the user didn't turn on netfs
(〜省略〜)

編集が完了したら、各ランレベルにおけるネットワーク起動スクリプトを削除し、VPN起動スクリプトを追加します。

# chkconfig --del /etc/rc.d/init.d/network
# chkconfig --add /etc/rc.d/init.d/vpn

以上で、OpenVPNサーバの各種設定は完了です。あとは、7章で作成するサーバ証明書とサーバ秘密鍵をserver.confで指定したディレクトリに設置するのみになります。


▼Java や Linux を体系的に学びましょう!▼
Stack*のラクスが、
新学習方式のカリキュラムを開発しました!
14700円から(*1)、Java や Linux を体系的に学べます!!
(*1 テキスト代のみの税込料金です)


>>次のページへ
【 目次 】
1.はじめに
2.OpenVPNについて
3.想定するネットワーク構成
3-1.ネットワーク構成
3-2.仮想インターフェイス(OpenVPNクライアント&サーバ)
3-3.カプセル化と暗号化(OpenVPNクライアント&サーバ)
3-4.ポート転送(社内ネットワークのブロードバンドルータ)
3-5.ブリッジ機能(OpenVPNサーバ)
3-6. CA認証局(OpenVPNサーバ)
4.OpenVPNサーバの構築(Linux端末側)
4-1.必要なファイル
4-2.インストール
4-3.OpenVPNサーバの設定(server.confの設定)
4-4.bridgeの設定
4-5.起動スクリプトの作成
5.ルータの設定変更
5-1.ポート転送の設定
6.OpenVPNクライアントの設定(Windows端末側)
6-1.必要なファイル
6-2.インストール
6-3.client.ovpnの設定
7.OpenSSLによるCA認証局の構築
7-1.CA認証局の構築
7-2.サーバ証明書/秘密鍵の作成・設置
7-3. Diffie Hellman(DH)パラメータの生成
7-4.クライアント証明書&秘密鍵の作成・設置
8.OpenVPNサーバの起動&接続確認
8-1.OpenVPNサーバの起動・停止
8-2.OpenVPNクライアントの使用方法
9.最後に

サイト内全文検索
スタックアスタリスクのサイトを検索します。検索には、Googleを利用しています。そのため、最新の情報で検索されない可能性があります。


簡単レンタルメールフォーム
300メガ1000円〜 XBitのレンタルサーバー
500メガ1995円〜 電話サポート/PostgreSQL/専用SSLなどにも対応!お客様のニーズを網羅したレンタルサーバ
ホームページ制作のアシストウェブ
STACK* 執筆の講師陣から習得する!! ITエンジニアスクール アイティブースト
統合メールサポートシステム 〜MailDealer(メールディーラー)〜
システム開発,IT教育 〜株式会社アイティーブースト(ITBoost)〜
簡単 営業支援/顧客管理ツール Easy Sales
  利用規約 お問い合わせ・ご意見 スタックアスタリスクについて 運営会社について 
  レンタルサーバー ホスティング 専用サーバー メールフォーム ショッピングカート メール共有 ITエンジニア派遣 Linux講座 Java講座 メール配信 レンタルサーバー Webデータベース 検索サービス
CopyrightcRAKUS Co.,Ltd. All Rights Reserved.  メール管理・共有 顧客管理(CRM)もできるメール対応サポートシステム JAVA LINUX CISCO 技術者派遣 育成事業 株式会社ラクス