ユーザ用ツール

サイト用ツール


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                           

ファイアウォールを再起動し、設定を有効にする。

# /etc/init.d/firewall restart

OpenVPN のサーバ設定

# vi /etc/config/openvpn
config 'openvpn' 'lan'
        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' '1'
        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'
  • server_bridge の設定内容

|ネットワークアドレス|192.168.1.1|

サブネットマスク255.255.255.0
OpenVPN クライアント IP192.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” のチェックをオンにする。

クライアントの設定

クライアントの設定ファイルは以下になる。

クライアントソフトには TunnelBlick を使用した。

設定ファイルの openwrt.ovpn は以下の内容で作成。

client
tls-client
dev tap
proto udp

remote <server address> 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行をコメントアウトし、この行を用いる

comp-lzo
verb 3
openwrt/install-openvpn-server-tun.1406258905.txt.gz · 最終更新: 2014/07/25 12:28 by admin