====== 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