====== OpenVPN サーバをインストールする (TAP) ======
OpenVPN サーバをインストールし、外出先からでもルータ以下のネットワークに暗号化回線でアクセスできるようにする。
イーサネットブリッジネットワークを設定する。(TAP - レイヤ2ブリッジネットワーク)
===== 環境 =====
* OpenWrt: ATTITUDE ADJUSTMENT (12.09, r36088)
===== パッケージをインストール =====
* [[http://wiki.openwrt.org/doc/howto/vpn.openvpn|Easy OpenVPN server setup guide]]
関連パッケージをインストール。
# 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"
===== サーバ用の鍵を生成 =====
以前生成した鍵を消去し、鍵生成のための初期化を行う。
# 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/firewall
以下の設定をファイルの末尾に追記。
config 'rule'
option 'target' 'ACCEPT'
option 'dest_port' '1194'
option 'src' 'wan'
option 'proto' 'tcpudp'
option 'family' 'ipv4'
ファイアウォールを再起動し、設定を有効にする。
# /etc/init.d/firewall restart
===== DHCP サーバの設定を変更する =====
OpenVPN の制御と競合する場合があるため、DHCP サーバで IP を配る範囲を限定する。
# vi /etc/config/dhcp
**dhcp 'lan'** セクションを以下に変更。
config dhcp 'lan'
option interface 'lan'
option leasetime '12h'
option start '50'
option limit '150'
option ignore '0'
DHCP の設定を有効にする。
# /etc/init.d/dnsmasq restart
===== OpenVPN のサーバ設定 =====
# vi /etc/config/openvpn
config 'openvpn' 'vpntap'
option 'enable' '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/dh1024.pem'
option 'ifconfig_pool_persist' '/tmp/ipp.txt'
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'
option 'server_bridge' '192.168.1.1 255.255.255.0 192.168.1.151 192.168.1.170'
list push 'comp_lzo adaptive'
* server_bridge の設定内容
|ネットワークアドレス|192.168.1.1|
|サブネットマスク|255.255.255.0|
|OpenVPN クライアント IP|192.168.1.151 〜 192.168.1.170|
サーバを開始し、ブート時に自動起動するように設定。
# /etc/init.d/openvpn start
# /etc/init.d/openvpn enable
OpenVPN をルータの LAN に接続する。
Web 設定画面から、 Network -> Interface -> LAN -> Edit を選択。
Physical Settings のタブで **Ethernet Adapter: "tap0"** のチェックをオンにする。
===== クライアントの設定 =====
クライアントの設定ファイルは以下になる。
クライアントソフトには [[https://code.google.com/p/tunnelblick/|TunnelBlick]] を使用した。
設定ファイルの openwrt.ovpn は以下の内容で作成。
client
tls-client
dev tap
proto udp
remote 1194 # OpenVPN サーバのホスト名か IP アドレスを記述
resolv-retry infinite
nobind
persist-tun
persist-key
ca ca.crt
cert Jimmy.crt
key Jimmy.key
dh dh1024.pem
#pkcs12 Jimmy.p12 # PKCS #12 形式の鍵を使う場合は、上記4行をコメントアウトし、この行を用いる
verb 3