「OpenWrtで OpenVPN(2) サーバ設定」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
*OpenWrtで OpenVPN(2) サーバ設定
ネットワークAに設置するサーバのインストール、設定を行います。
**主な流れ
以下の順で説明します。
OpenWrtをインストールしたルータを用意する (当ウィキの他頁を参考に、OpenWrtをセットアップしてください)
↓
OpenVPN関連のパッケージをインストール
↓
CA証明書などを作成する
↓
ネットワークの設定を行う
↓
OpenVPNの設定を行う
↓
OpenVPNを起動する
**1.OpenVPN関連のパッケージをインストール
&bold(){この章では、以下のパッケージをインストールします}
OpenVPN本体
openvpn-openssl
認証局作成ツール
openvpn-easy-rsa
&bold(){パッケージのインストール}
システム→ソフトウェア
と選択し、&bold(){リストの更新}ボタンを押下します。
しばらくするとパッケージリストが更新されます。
(ログがずらずら~っと画面に表示されるので、すぐに分かります)
リストが更新されたら&bold(){ステータス欄}の&bold(){インストール可能なパッケージ}タブを開きます。
フィルタ欄に&bold(){openvpn}と入力して検索します。
検索結果から
openvpn-easy-rsa
openvpn-openssl
をインストールします。
**2.CA証明書などを作成する(認証局の構築)
以下は、すべてOpenWrtルータにSSHでログインして作業を行います。
&italic(){/etc/easy-rsa/vars} を、以下の要領で編集します。
export EASY_RSA="/etc/easy-rsa"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`/usr/sbin/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="JP" ←認証局が設置される「国」を指定
export KEY_PROVINCE="kinki" ←同「州」を指定
export KEY_CITY="Osaka" ←同「都市」を指定
export KEY_ORG="Private Router" ←同「組織」を指定
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
今回デフォルトから変更したのは、コメントを右側に記入した行のみです。
あとは、必要に応じて変更してください。
設定が完了したら、以下のコマンドでCA証明書/DHパラメータを作成します。
# clean-all
# build-ca
→表示される問いには全てデフォルト値を回答する
# build-dh
→相当な時間が掛かります(WZR-HPAG300Hで2~3時間程度)
引き続き、以下のコマンドでサーバ鍵を生成します。
#build-key-server server
~質問内容省略~
A challenge password []: ←サーバ鍵に設定するパスワードを指定
Sign the certificate? [y/n]: ←「y」を回答
1 out of 1 certificate requests certified, commit? [y/n] ←「y」を回答
これで、&bold(){server.key}、&bold(){server.crt}というファイル名でサーバ鍵が生成されます。
※ファイルは&bold(){/etc/easy-rsa/keys}に作成されます
続いて、以下のコマンドでクライアント鍵を生成します。
# build-key my-router
※パラメータはすべてサーバ鍵と同一
これで、&bold(){my-router.key}、&bold(){my-router.crt}というファイル名でサーバ鍵が生成されます。
※ファイルは&bold(){/etc/easy-rsa/keys}に作成されます
作成したサーバ鍵/CA証明書を、所定のディレクトリにコピーします。
# cd /etc/easy-rsa/keys
# cp -p ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn/
また、/etc/easy-rsa/keys/に作成された&bold(){my-router.key}、&bold(){my-router.crt}はクライアント側の設定に必要となりますので、ftpなどでPCなどにコピーしておいてください。
**3.ネットワークの設定を行う
ファイアウォールの設定を変更し、クライアント(ネットワークBのルータ)からのアクセスを許可します。
&italic(){/etc/config/firewall} の末尾に、以下の設定を追記します。
#OpenVPN connection setting
config rule
option name openvpn-udp
option src wan
option target ACCEPT
option proto udp
option dest_port 1194
option family ipv4
DHCPサーバでのIPアドレス配布範囲を制限します。
&italic(){/etc/config/dhcp}を、以下の要領で編集します。
config dhcp 'lan'
option interface 'lan'
option start '50' ←配布開始アドレス
option limit '50' ←配布個数
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
このルータのLAN側IPアドレスは、192.168.1.1/255.255.255.0に設定されています。
この設定で start 50 / limit 50 としていることにより、
192.168.1.50~192.168.1.100
の範囲でDHCPからIPアドレスの払い出しが行われることになります。
**4.OpenVPNの設定を行う
&italic(){/etc/config/openvpn}を以下の要領で編集します。
config openvpn vpntap
option enabled 1
option port 1194
option proto udp
option dev tap0
option ca /etc/openvpn/ca.crt
option cert /etc/openvpn/server.crt
option key /etc/openvpn/server.key
option dh /etc/openvpn/dh2048.pem
option ifconfig_pool_persist /tmp/ipp.txt
option server_bridge "192.168.1.1 255.255.255.0 192.168.1.150 192.168.1.250"
option keepalive "10 120"
option comp_lzo adaptive
option persist_key 1
option persist_tun 1
option status /tmp/openvpn-status.log
option verb 3
list push comp_lzo adaptive
server_bridgeの設定内容は以下の通りです。
第1引数: ネットワークアドレス
第2引数: サブネットマスク
第3,4引数: OpenVPNクライアントに払い出すIPアドレスの範囲
この設定例では、クライアントに192.168.1.150~192.168.1.250の範囲でIPアドレスを払い出します。
**5.OpenVPNを起動する
以下のコマンドにより、OpenVPNを起動します。
# /etc/init.d/openvpn start
# /etc/init.d/openvpn enable
※OpenWrtのGUI(LuCI)からも起動可能です。
これで、ネットワークA(サーバ側)の設定は完了です。
*OpenWrt/OpenVPNで拠点間接続 (2)サーバ設定
ネットワークAに設置するサーバのインストール、設定を行います。
**主な流れ
以下の順で説明します。
OpenWrtをインストールしたルータを用意する (当ウィキの他頁を参考に、OpenWrtをセットアップしてください)
↓
OpenVPN関連のパッケージをインストール
↓
CA証明書などを作成する
↓
ネットワークの設定を行う
↓
OpenVPNの設定を行う
↓
OpenVPNを起動する
**1.OpenVPN関連のパッケージをインストール
&bold(){この章では、以下のパッケージをインストールします}
OpenVPN本体
openvpn-openssl
認証局作成ツール
openvpn-easy-rsa
&bold(){パッケージのインストール}
システム→ソフトウェア
と選択し、&bold(){リストの更新}ボタンを押下します。
しばらくするとパッケージリストが更新されます。
(ログがずらずら~っと画面に表示されるので、すぐに分かります)
リストが更新されたら&bold(){ステータス欄}の&bold(){インストール可能なパッケージ}タブを開きます。
フィルタ欄に&bold(){openvpn}と入力して検索します。
検索結果から
openvpn-easy-rsa
openvpn-openssl
をインストールします。
**2.CA証明書などを作成する(認証局の構築)
以下は、すべてOpenWrtルータにSSHでログインして作業を行います。
&italic(){/etc/easy-rsa/vars} を、以下の要領で編集します。
export EASY_RSA="/etc/easy-rsa"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`/usr/sbin/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="JP" ←認証局が設置される「国」を指定
export KEY_PROVINCE="kinki" ←同「州」を指定
export KEY_CITY="Osaka" ←同「都市」を指定
export KEY_ORG="Private Router" ←同「組織」を指定
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
今回デフォルトから変更したのは、コメントを右側に記入した行のみです。
あとは、必要に応じて変更してください。
設定が完了したら、以下のコマンドでCA証明書/DHパラメータを作成します。
# clean-all
# build-ca
→表示される問いには全てデフォルト値を回答する
# build-dh
→相当な時間が掛かります(WZR-HPAG300Hで2~3時間程度)
引き続き、以下のコマンドでサーバ鍵を生成します。
#build-key-server server
~質問内容省略~
A challenge password []: ←サーバ鍵に設定するパスワードを指定
Sign the certificate? [y/n]: ←「y」を回答
1 out of 1 certificate requests certified, commit? [y/n] ←「y」を回答
これで、&bold(){server.key}、&bold(){server.crt}というファイル名でサーバ鍵が生成されます。
※ファイルは&bold(){/etc/easy-rsa/keys}に作成されます
続いて、以下のコマンドでクライアント鍵を生成します。
# build-key my-router
※パラメータはすべてサーバ鍵と同一
これで、&bold(){my-router.key}、&bold(){my-router.crt}というファイル名でサーバ鍵が生成されます。
※ファイルは&bold(){/etc/easy-rsa/keys}に作成されます
作成したサーバ鍵/CA証明書を、所定のディレクトリにコピーします。
# cd /etc/easy-rsa/keys
# cp -p ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn/
また、/etc/easy-rsa/keys/に作成された&bold(){my-router.key}、&bold(){my-router.crt}はクライアント側の設定に必要となりますので、ftpなどでPCなどにコピーしておいてください。
**3.ネットワークの設定を行う
ファイアウォールの設定を変更し、クライアント(ネットワークBのルータ)からのアクセスを許可します。
&italic(){/etc/config/firewall} の末尾に、以下の設定を追記します。
#OpenVPN connection setting
config rule
option name openvpn-udp
option src wan
option target ACCEPT
option proto udp
option dest_port 1194
option family ipv4
DHCPサーバでのIPアドレス配布範囲を制限します。
&italic(){/etc/config/dhcp}を、以下の要領で編集します。
config dhcp 'lan'
option interface 'lan'
option start '50' ←配布開始アドレス
option limit '50' ←配布個数
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
このルータのLAN側IPアドレスは、192.168.1.1/255.255.255.0に設定されています。
この設定で start 50 / limit 50 としていることにより、
192.168.1.50~192.168.1.100
の範囲でDHCPからIPアドレスの払い出しが行われることになります。
**4.OpenVPNの設定を行う
&italic(){/etc/config/openvpn}を以下の要領で編集します。
config openvpn vpntap
option enabled 1
option port 1194
option proto udp
option dev tap0
option ca /etc/openvpn/ca.crt
option cert /etc/openvpn/server.crt
option key /etc/openvpn/server.key
option dh /etc/openvpn/dh2048.pem
option ifconfig_pool_persist /tmp/ipp.txt
option server_bridge "192.168.1.1 255.255.255.0 192.168.1.150 192.168.1.250"
option keepalive "10 120"
option comp_lzo adaptive
option persist_key 1
option persist_tun 1
option status /tmp/openvpn-status.log
option verb 3
list push comp_lzo adaptive
server_bridgeの設定内容は以下の通りです。
第1引数: ネットワークアドレス
第2引数: サブネットマスク
第3,4引数: OpenVPNクライアントに払い出すIPアドレスの範囲
この設定例では、クライアントに192.168.1.150~192.168.1.250の範囲でIPアドレスを払い出します。
**5.OpenVPNを起動する
以下のコマンドにより、OpenVPNを起動します。
# /etc/init.d/openvpn start
# /etc/init.d/openvpn enable
※OpenWrtのGUI(LuCI)からも起動可能です。
これで、ネットワークA(サーバ側)の設定は完了です。