文書の過去の版を表示しています。
目次
OpenVPN サーバをインストールする (TUN)
OpenVPN サーバをインストールし、外出先からでもルータ以下のネットワークに暗号化回線でアクセスできるようにする。(TUN - レイヤ3ネットワーク)
環境
- OpenWrt: ATTITUDE ADJUSTMENT (12.09, r36088)
パッケージをインストール
関連パッケージをインストール。
# opkg update # opkg install openvpn openvpn-easy-rsa
鍵生成に必要な情報の設定を行う。
# vi /etc/easy-rsa/vars
ファイル下方の以下の情報を修正。
export KEY_COUNTRY="JP" export KEY_PROVINCE="Tokyo" export KEY_CITY="Shinjuku" export KEY_ORG="My OpenWrt Router"
サーバ用の鍵を生成
以前生成した鍵を消去し、鍵生成のための初期化を行う。
pkitool –initca ## equivalent to the 'build-ca' script
pkitool –server my-server ## equivalent to the 'build-key-server' script
pkitool my-client ## equivalent to the 'build-key' script
build-dh ## this script will 'take a long time'
# clean-all # build-ca # build-dh
サーバの鍵を生成する。
# build-key-server server
クライアント用の鍵を生成する。
# build-key Alice # build-key Bob # build-key Charlie
PKCS12 形式の鍵を生成する場合は以下のコマンド。
# build-key-pkcs12 Alice # build-key-pkcs12 Bob # build-key-pkcs12 Charlie
生成した鍵を、 OpenVPN の設定ファイルディレクトリにコピー。
# cd /etc/easy-rsa/keys # cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/
ネットワークインタフェースを作成
ネットワークの設定ファイルを編集する。
# vi /etc/config/network
以下の設定を追加する。
config interface 'vpn0' option ifname 'tun0' option proto 'none'
設定ファイルをリロードする。
# /etc/init.d/network reload
以下の警告が出るが、まだ tun0 を作成していないので、今は気にしない。
command failed: No such device (-19)
ファイアウォールを設定
ファイアウォールの設定を変更し、外出先からのアクセスを受け付けるようにする。
# vi /etc/config/firewall
以下の設定をファイルの末尾に追記。
VPNの接続開始を許可する。
config rule option name Allow-OpenVPN-Inbound option target ACCEPT option src * option proto udp option dest_port 1194
VPNで接続してきたクライアントの通信を許可する。
config zone option name vpn option input ACCEPT option forward ACCEPT option output ACCEPT option network vpn0 option masq 1
ファイアウォールを再起動し、設定を有効にする。
# /etc/init.d/firewall restart
OpenVPN のサーバ設定
# vi /etc/config/openvpn
以下の設定を記述する。
option enabled 0 が設定されていても、設定が読み込まれているらしく、新しく作り直さないと後々エラーが発生する。
config openvpn vpn-tun option enable 1 option dev tun option port 1194 option proto udp option verb 3 option ca '/etc/openvpn/ca.crt' option cert '/etc/openvpn/server.crt' option key '/etc/openvpn/server.key' option dh '/etc/openvpn/dh1024.pem' option server '192.168.222.0 255.255.255.0' option keepalive '10 120' option comp_lzo adaptive option log '/tmp/openvpn.log' list push 'comp_lzo adaptive' list push 'route 192.168.1.0 255.255.255.0'
- server '192.168.222.0 255.255.255.0'
- 192.168.222.1 がVPNアダプタのアドレスになる。サブネットマスクは 255.255.255.0
- route 192.168.1.0 255.255.255.0
- クライアントからサーバ側のネットワークにアクセスできるようにする
サーバを開始し、ブート時に自動起動するように設定。
# /etc/init.d/openvpn start # /etc/init.d/openvpn enable
クライアントの設定
クライアントの設定ファイルは以下になる。
クライアントソフトには TunnelBlick を使用した。
設定ファイルの openwrt.ovpn は以下の内容で作成。
remote <server address> 1194 # OpenVPN サーバのホスト名か IP アドレスを記述 dev tun proto udp verb 3 ca ca.crt cert Jimmy.crt key Jimmy.key dh dh1024.pem #pkcs12 Jimmy.p12 # PKCS #12 形式の鍵を使う場合は、上記4行をコメントアウトし、この行を用いる client remote_cert_tls server # redirect-gateway def1 # すべてVPN経由でアクセスする場合はコメントをはずす