OpenWRT site2site IPsec (1)

# OpenWRT site2site IPsec (1)

OpenWRT で単純なサイト間IPsecの設定が意外に見当たらないのでまとめてみた。

# 動作環境
OpenWRT 15.05, x86-generic版
MacOSX 10.11.1 上の VirtualBox 5.0.10 r104061で確認した。

# OpenWRTのイメージ入手方法

https://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/
に置いてある
https://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/openwrt-15.05-x86-generic-combined-ext4.img.gz
を入手
＃ 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を使用できないので注意する事。

# 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')
  
## ネットワーク環境
MacBookProの本体内蔵有線LANとUSB接続の有線LAN間でVPN接続するためVirtualBox的には下記の構成とする。
![OpenWRT_network1.jpg](https://qiita-image-store.s3.amazonaws.com/0/102457/1619cec3-94f8-852c-db8c-262fb5ea49cd.jpeg)

## ネットワーク構成図
OpenWRTの視点で見ると下記のようなネットワーク構成とする。
![OpenWRT_network2.jpg](https://qiita-image-store.s3.amazonaws.com/0/102457/f859adb4-eecc-a9f1-b1d9-0a0def33d544.jpeg)

## OpenWRTの設定
OpenWRT14.07と異なり OpenWRT15.05では
デフォルトではwan側にeth1を割り当てている。

/etc/config/network の設定変更を行った。

- wan側にeth0 (192.168.2.11/24)を割り当てる
- lan側にeth1 (192.168.101.1/24)を割り当てる
- デフォルトルートに192.168.2.1を指定する

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'

```

/etc/config/firewall の設定変更をした

- 基本的にパケットを破棄する事はないようにした

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

```

ここまで設定した状態でOpenWRT 15.05 R1を再起動すると
wan側(eth0)の192.168.2.1からOpenWRTのWebインタフェースに接続可能になる。
Webインタフェースから

- DNSサーバの設定として192.168.2.1, 8.8.8.8を指定した。
- Webから管理者パスワードの設定を行った。

コンソールから下記コマンドを実行して
OpenWRTを最新化する

```
# opkg update
# opkg list-upgradable
```

list-upgradable で表示された luci各種upgradeした。

OpenWRT 15.05 R2 についてもOpenWRT 15.05 R1と同様に設定を行うが
/etc/config/networkの設定が異なる。

- wan側にeth1 (192.168.2.12/24)を割り当てる
- lan側にeth0 (192.168.102.1/24)を割り当てる
- デフォルトルートに192.168.2.1を指定する

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'
```

以後、IPsec関連のインストールと設定を行う [OpenWRT site2site IPsec (2)](http://qiita.com/t_umeno/items/49c600ee17e009175309) に続く。