OpenWrt/OpenVPNで拠点間接続 (2)サーバ設定
ネットワークAに設置するサーバのインストール、設定を行います。
主な流れ
以下の順で説明します。
OpenWrtをインストールしたルータを用意する (当ウィキの他頁を参考に、OpenWrtをセットアップしてください)
↓
OpenVPN関連のパッケージをインストール
↓
CA証明書などを作成する
↓
ネットワークの設定を行う
↓
OpenVPNの設定を行う
↓
OpenVPNを起動する
1.OpenVPN関連のパッケージをインストール
この章では、以下のパッケージをインストールします
OpenVPN本体
openvpn-openssl
認証局作成ツール
openvpn-easy-rsa
パッケージのインストール
システム→ソフトウェア
と選択し、リストの更新ボタンを押下します。
しばらくするとパッケージリストが更新されます。
(ログがずらずら~っと画面に表示されるので、すぐに分かります)
リストが更新されたらステータス欄のインストール可能なパッケージタブを開きます。
フィルタ欄にopenvpnと入力して検索します。
検索結果から
openvpn-easy-rsa
openvpn-openssl
をインストールします。
2.CA証明書などを作成する(認証局の構築)
以下は、すべてOpenWrtルータにSSHでログインして作業を行います。
/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/に作成されたmy-router.key、my-router.crtはクライアント側の設定に必要となりますので、ftpなどでPCなどにコピーしておいてください。
3.ネットワークの設定を行う
ファイアウォールの設定を変更し、クライアント(ネットワークBのルータ)からのアクセスを許可します。
/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アドレス配布範囲を制限します。
/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の設定を行う
/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(サーバ側)の設定は完了です。
最終更新:2015年04月17日 23:06