rakugakibox.net

技術ノート。兼JS/CSS実験場。 ♡:Java, Spring, AWS.

YAMAHAルータ RTX1200 で Amazon VPC にVPN接続した

サーバを手軽に立てたいなー。
でもセキュリティ考えるの面倒だなー。
そんな思いから Amazon VPC を立ててVPN接続してみた。

ネットワーク構成

だいぶ端折ってるけど、こんな構成で構築した。

f:id:akihyrox:20140530172832p:plain

カスタマーゲートウェイには、 YAMAHAルータ RTX1200 を導入した。
グローバルIPアドレスには、固定IPアドレスを契約した。

ヤマハ ギガアクセスVPNルーター RTX1200

ヤマハ ギガアクセスVPNルーター RTX1200

構築方法

こちらを参考にさせて頂いた。

  1. VPCにYAMAHA RTX1100で接続する - tama's memo
  2. RTX1100 からVPCに接続した記録 - petachの日記
  3. YAMAHA RTX1100でAWS VPCとVPN接続できない。。なぜ?>一部で設定修正が必要だった - 茶国 Rev3
  4. Amazon Virtual Private Cloud (Amazon VPC) 設定例 - ヤマハネットワーク周辺機器技術情報
  5. IPsec 設定ガイド - ヤマハネットワーク周辺機器技術情報

特に3つ目のリンクでは、自分も同じ部分で詰まったのでとても助かった。
AWSから提供される設定コマンドそのままでは動かなくて、これにはとても悩まされた...

AWSが出力してくれる内容に対して修正が必要であることが分かった。 これは、マスカレードをどう設定しているか?にもよるのだけど、、ipsec ike local addressには VPN装置のグローバル側IPではなくて、VPN装置のNATされたプライベート側IPを書くべきらしかった。 これを修正したら接続できるようになった。

設定内容

設定した内容はこんな感じ。

これでプライベートなセグメントに配置したEC2インスタンスへ接続が出来た。
*勿論セキュリティグループの解放とかやった上で :)

# デフォルトゲートウェイ
ip route default gateway pp 1

# LAN1
ip lan1 address 192.168.1.2/24

# PPPoE (LAN2)
pp select 1
 pp keepalive use lcp-echo
 pp keepalive interval 30 retry-interval=30 count=12
 pp always-on on
 pppoe use lan2
 pppoe auto connect on
 pppoe auto disconnect off
 pp auth accept pap chap
 pp auth myname <プロバイダ接続ID> <プロバイダ接続パスワード>
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1454
 ip pp nat descriptor 1000
 pp enable 1
pp select none

# IPsecトンネル1
tunnel select 1
 ipsec tunnel 201
  ipsec sa policy 201 1 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 1 3600
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1024
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd 10 3
  ipsec ike local address 1 192.168.1.2
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text <事前共有鍵>
  ipsec ike remote address 1 <相手側IPアドレス>
 ipsec tunnel outer df-bit clear
 ip tunnel address 169.254.252.26/30
 ip tunnel remote address 169.254.252.25
 ip tunnel tcp mss limit 1387
 tunnel enable 1
tunnel select none

# IPsecトンネル2
tunnel select 2
 ipsec tunnel 202
  ipsec sa policy 202 2 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 2 3600
  ipsec ike encryption 2 aes-cbc
  ipsec ike group 2 modp1024
  ipsec ike hash 2 sha
  ipsec ike keepalive use 2 on dpd 10 3
  ipsec ike local address 2 192.168.1.2
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 text <事前共有鍵>
  ipsec ike remote address 2 <相手側IPアドレス>
 ipsec tunnel outer df-bit clear
 ip tunnel address 169.254.252.30/30
 ip tunnel remote address 169.254.252.29
 ip tunnel tcp mss limit 1387
 tunnel enable 2
tunnel select none

# NAT
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 ipcp
nat descriptor address inner 1000 auto
nat descriptor masquerade static 1000 1 192.168.1.2 udp 500
nat descriptor masquerade static 1000 2 192.168.1.2 esp

# BGP
bgp use on
bgp autonomous-system 65000
bgp neighbor 1 10124 169.254.252.25 hold-time=30 local-address=169.254.252.26
bgp neighbor 2 10124 169.254.252.29 hold-time=30 local-address=169.254.252.30
bgp import filter 1 equal 0.0.0.0/0
bgp import 10124 static filter 1

# IPsec
ipsec auto refresh on

# DNS
dns service recursive
dns server pp 1
dns server select 500001 pp 1 any . restrict pp 1
dns private address spoof on

みんな設定の管理どうしてるんだろう

フィルタとかも入れだしたらカオスになってきた...