More Related Content Similar to OpenWrtによるサイト間IPsec接続 (20) OpenWrtによるサイト間IPsec接続3. 動作環境
• OpenWrt 15.05, x86-generic版
• MacBook Pro (13-inch, Late 2011)
• USB Ethernet NIC (LUA3-U2-ATX)
• MacOSX 10.11.1 上の VirtualBox 5.0.10 r104061で確認
Copyright2016 Takashi Umeno
5. VirtualBoxで扱う形式に変換
% VBoxManage convertfromraw --format VDI openwrt-15.05-x86-generic-combined-ext4.img
openwrt-BB-15.05-x86.1.vdi
% VBoxManage convertfromraw --format VDI openwrt-15.05-x86-generic-combined-ext4.img
openwrt-BB-15.05-x86.2.vdi
同⼀のVirtualBox 上で使⽤するのでVBoxManageは2回実⾏して、openwrt-BB-15.05-x86.1.vdiと
openwrt-BB-15.05-x86.2.vdi を作成する事。
% cp -p openwrt-BB-15.05-x86.1.vdi openwrt-BB-15.05-x86.2.vdi
としても openwrt-BB-15.05-x86.1.vdi を使⽤している環境で openwrt-BB-15.05-x86.2.vdiを使⽤す
ることはできない。
Copyright2016 Takashi Umeno
6. VirtualBoxでVM作成
• VM1
• 名前: OpenWrt 15.05 R1
• オペレーティングシステム: Linux 2.6 /3.x /4.x (32bit)
• メインメモリー: 256MB
• ストレージ: openwrt-BB-15.05-x86.1.vdi
• ネットワーク
• アダプター1: (ブリッジアダプター, 'en1: Wi-Fi (AirPort)')
• アダプター2: (ブリッジアダプター, 'en0: Ethernet')
• VM2
• 名前: OpenWrt 15.05 R2
• オペレーティングシステム: Linux 2.6 /3.x /4.x (32bit)
• メインメモリー: 256MB
• ストレージ: openwrt-BB-15.05-x86.2.vdi
• ネットワーク
• アダプター1: (ブリッジアダプター, 'en1: Wi-Fi (AirPort)')
• アダプター2: (ブリッジアダプター, 'en4: AX88772')
Copyright2016 Takashi Umeno
9. OpenWrt 15.05 R1の設定
• OpenWrt 14.07と異なり OpenWrt 15.05ではデフォルトでは
wan側にeth1を割り当てている。
• /etc/config/network の設定変更を⾏った。
• wan側にeth0 (192.168.2.11/24)を割り当てる
• lan側にeth1 (192.168.101.1/24)を割り当てる
• デフォルトルートに192.168.2.1を指定する
Copyright2016 Takashi Umeno
10. OpenWrt 15.05 R1 設定変更後の
/etc/config/network
config interface 'loopbackʼ
option ifname 'loʼ
option proto 'staticʼ
option ipaddr '127.0.0.1ʼ
option netmask '255.0.0.0'
config interface 'lanʼ
option ifname 'eth1ʼ
option proto 'staticʼ
option ipaddr '192.168.101.1ʼ
option netmask '255.255.255.0ʼ
config interface 'wanʼ
option ifname 'eth0ʼ
option proto 'staticʼ
option ipaddr '192.168.2.11ʼ
option netmask '255.255.255.0ʼ
config route
option interface 'wanʼ
option target '0.0.0.0/0ʼ
option gateway '192.168.2.1'
Copyright2016 Takashi Umeno
11. OpenWrt 15.05 R1 設定変更後の
/etc/config/firewall
• パケットを破棄しないように
した。
config defaults
option syn_flood 1
option input ACCEPT
option output ACCEPT
option forward ACCEPT # Uncomment this line to disable
ipv6 rules
option disable_ipv6 1
config zone
option name lan
list network 'lanʼ
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wanʼ
option input ACCEPT
option output ACCEPT
option forward ACCEPT
# option masq 1
# option mtu_fix 1
config forwarding
option src lan
option dest wan
# include a file with users custom iptables rules config
include
option path /etc/firewall.user
# allow IPsec/ESP and ISAKMP passthrough
config rule
option src wan
option dest lan
option proto esp
option target ACCEPT
config rule option src wan option dest lan option dest_port
500 option proto udp option target ACCEPT
Copyright2016 Takashi Umeno
15. OpenWrt 15.05 R2の設定
• OpenWrt 15.05 R1と同様の設定を⾏う
• /etc/config/networkの設定は異なる。
Copyright2016 Takashi Umeno
16. OpenWrt 15.05 R2 設定変更後の
/etc/config/network
config interface 'loopbackʼ
option ifname 'loʼ
option proto 'staticʼ
option ipaddr '127.0.0.1ʼ
option netmask '255.0.0.0'
config interface 'lanʼ
option ifname 'eth1ʼ
option proto 'staticʼ
option ipaddr '192.168.102.1ʼ
option netmask '255.255.255.0ʼ
config interface 'wanʼ
option ifname 'eth0ʼ
option proto 'staticʼ
option ipaddr '192.168.2.12ʼ
option netmask '255.255.255.0ʼ
config route
option interface 'wanʼ
option target '0.0.0.0/0ʼ
option gateway '192.168.2.1'
Copyright2016 Takashi Umeno
17. IPsec トンネル設定
• OpenWrt 15.05 R1(192.168.2.11) と
OpenWrt 15.05 R2(192.168.2.12)の間で
192.168.101.0/24 と 192.168.102.0/24 を
IPsecトンネルで接続する。
Copyright2016 Takashi Umeno
18. strongswan-fullをインストール
• opkg install strongswan-full を実⾏
• /etc/config/ipsec の設定変更を⾏った。
• R1 (192.168.101.0/24)とR2(192.168.102.0/24)の間でトンネルを掘る
• R1でトンネルの送信先のIPアドレスは192.168.2.12 (R2のWANのIPア
ドレス)
• R2のトンネルの送信先のIPアドレスは192.168.2.11 (R1のWANのIPア
ドレス)
• 事前共有鍵は”yourpasswordhere”
• /etc/init.d/ipsec のスクリプト変更した。
Copyright2016 Takashi Umeno
20. /etc/init.d/ipsec 修正
• [Changeset 46483]https://dev.openwrt.org/changeset/46483
によるとaesはモジュールではなく、kernel内部に統合されたので、
/etc/init.d/ipsec は下記修正することで動作するようになった。
※要はaesのモジュールのインストール有無を調べないようにした。
--- ipsec.old2015-12-0622:44:58.777630000+0900
+++ ipsec 2015-12-06 22:43:32.149651000 +0900
@@ -194,7 +194,7@@
exit
fi
- for f in aes authenc cbc hmac md5 sha1; do
+ for f in authenc cbc hmac md5sha1;do
if [ `opkg list kmod-crypto-$f | wc -l` -eq 0 ]; then
echo kmod-crypto-$f missing
echo installwith "opkg installkmod-crypto-$f --nodeps"
Copyright2016 Takashi Umeno
21. /etc/config/ipsec の例に誤記載
• [Strongswan IPsec Configuration]https://wiki.openwrt.org/doc/uci/ipsec
の
Example 1 taken from the IPSec site to site howto. には、
config 'remote' 'acmeʼ
option 'enabled' '1ʼ
option 'gateway' '7.7.7.7ʼ
option 'authentication_method' 'pskʼ
option 'pre_shared_key' 'yourpasswordhereʼ
list 'p1_proposal' 'pre_g2_aes_sha1ʼ
list 'sainfo' 'acme_dmzʼ
list 'sainfo' 'acme_lanʼ
と記載されている。
Copyright2016 Takashi Umeno
22. /etc/config/ipsec の例に誤記載
list 'sainfo' 'acme_dmz'
list ʼsainfo' 'acme_lanʼ
の記載は誤り
list 'tunnel' 'acme_dmz'
list 'tunnel' 'acme_lan'
の様に'sainfo'ではなく'tunnel'を記載すること。
Copyright2016 Takashi Umeno
23. OpenWrt 15.05 R1 設 定 変 更 後 の
/etc/config/ipsec
config 'ipsecʼ
option 'zone' 'vpnʼ
config 'remote' 'r2ʼ
option 'enabled' '1ʼ
option 'gateway' '192.168.2.12ʼ
option 'authentication_method' 'pskʼ
option 'pre_shared_key' 'yourpasswordhere' list
'p1_proposal' 'pre_g2_aes_sha1' list 'tunnel' 'r2_lanʼ
config 'p1_proposal' 'pre_g2_aes_sha1ʼ
option 'encryption_algorithm' 'aes128ʼ
option 'hash_algorithm' 'sha1ʼ
option 'dh_group' 'modp1024'
config 'tunnel' 'r2_lanʼ
option 'local_subnet' '192.168.101.0/24ʼ
option 'remote_subnet' '192.168.102.0/24ʼ
option 'p2_proposal' 'g2_aes_sha1ʼ
config 'p2_proposal' 'g2_aes_sha1ʼ
option 'pfs_group' 'modp1024ʼ
option 'encryption_algorithm' 'aes 128ʼ
option 'authentication_algorithm' 'sha1'
Copyright2016 Takashi Umeno
24. OpenWrt 15.05 R2 設 定 変 更 後 の
/etc/config/ipsec
config 'ipsecʼ
option 'zone' 'vpnʼ
config 'remote' 'r1ʼ
option 'enabled' '1ʼ
option 'gateway' '192.168.2.11ʼ
option 'authentication_method' 'pskʼ
option 'pre_shared_key' 'yourpasswordhere' list
'p1_proposal' 'pre_g2_aes_sha1' list 'tunnel' 'r1_lanʼ
config 'p1_proposal' 'pre_g2_aes_sha1ʼ
option 'encryption_algorithm' 'aes128ʼ
option 'hash_algorithm' 'sha1ʼ
option 'dh_group' 'modp1024'
config 'tunnel' 'r1_lanʼ
option 'local_subnet' '192.168.102.0/24ʼ
option 'remote_subnet' '192.168.101.0/24ʼ
option 'p2_proposal' 'g2_aes_sha1ʼ
config 'p2_proposal' 'g2_aes_sha1ʼ
option 'pfs_group' 'modp1024ʼ
option 'encryption_algorithm' 'aes 128ʼ
option 'authentication_algorithm' 'sha1'
Copyright2016 Takashi Umeno
25. IPsecの状態確認
• OpenWrt 15.05 R1 や OpenWrt 15.05 R2 で ipsec status や ipsec statusall を実⾏する事で
動作確認できる。
192.168.101.0/24 と 192.168.102.0/24 間で正常にIPsecのトンネルが作成されている状態で
OpenWrt 15.05 R1 で ipsec status の実⾏結果を下記に⽰す。
root@OpenWrt:~# ipsec status
Security Associations (1 up, 0 connecting):
r2-r2_lan[21]:ESTABLISHED 2 hours ago, 192.168.2.11[192.168.2.11]...192.168.2.12[192.168.2.12]
r2-r2_lan{72}:INSTALLED, TUNNEL, reqid 1, ESP SPIs:c5b15128_i c18bf6e2_o
r2-r2_lan{72}:192.168.101.0/24 === 192.168.102.0/24
root@OpenWrt:~#
• また、PC1(192.168.101.102/24) から PC2 (192.168.102.247/24)にpingが到達し、かつ、
192.168.2.0のセグメントでICMPパケットが⾒当たらない事を確認する事でIPsecトンネルが
正常に動作している事を確認できる。
• ICMPパケットの有無をパケットキャプチャで確認する場合はOpenWrt 15.05 R1や OpenWrt
15.05 R2 以外のVMを別途作成して192.168.2.0/24のセグメントをキャプチャすること。
Copyright2016 Takashi Umeno
26. 補⾜ luci (web設定)
OpenWrtのweb serverに接続した際にブラウザに下記が表⽰され設定などが⾏えない場合
がある。
/usr/lib/lua/luci/dispatcher.lua:255: No valid theme found
stack traceback:
[C]: in function 'assertʼ
/usr/lib/lua/luci/dispatcher.lua:255: in function 'dispatchʼ
/usr/lib/lua/luci/dispatcher.lua:168: in function </usr/lib/lua/luci/dispatcher.lua:167>
[ #16775 closed defect (fixed) ]https://dev.openwrt.org/ticket/16775
に従って
# opkg remove luci
# opkg remove luci-theme-bootstrap
# opkg install luci
を実⾏したら正常にWebブラウザ表⽰されるようになった。
Copyright2016 Takashi Umeno