文書の過去の版を表示しています。
目次
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'              
サーバを開始し、ブート時に自動起動するように設定。
# /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経由でアクセスする場合はコメントをはずす
