ユーザ用ツール

サイト用ツール


openwrt:install-openvpn-server-tun

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

以下の設定を記述する。

/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

# redirect-gateway def1 # すべてVPN経由でアクセスする場合はコメントをはずす

resolv-retry infinite
persist-key
persist-tun

ca ca.crt
cert kyxw22.crt
key kyxw22.key
dh dh1024.pem
#pkcs12 Jimmy.p12    # PKCS #12 形式の鍵を使う場合は、上記4行をコメントアウトし、この行を用いる

verb 3
openwrt/install-openvpn-server-tun.txt · 最終更新: 2014/08/03 17:52 by admin