AWS上のVPCと家を繋いでみた。

色々思うところがあって、AWSを使ってみました。

最初は何もわからず、Google先生に聞きまくったり、AWSのHandsOnに行ってみたり・・・
(結局Developperで保守契約しましたが)

ようやく満足できる結果になったので、ちょっと自分的メモ。

やることとしては、ざっくりこんな感じ。

  1. VPC Create Wizardを実行する
  2. 自宅LANのRTX1200を設定する
  3. IPSecの接続状況を確認する
  4. VPC上にインスタンスを立てる
  5. テストしてみる

VPC Create Wizardについては、色々書籍もあるので解説しませんが、これにしました。
ウチの場合、これにしました。(Privateのみ)
(今思えば、EIP取ってPublic Segment作っておいても良かったかな・・・)
vpc_create_wiz_01

AWSからconfigがダウンロードできるんですが、
なぜだかVPC側からインターネットに出る事が出来ず
随分悩みました。

うちのみたくグローバルも複数もってるし、ipsecのtunnelも通してる場合、
色々考えないといかんかったです。
結果、以下の設定することで解決出来ました。

  1. AWS側ルーティングテーブルのdefaultをipsecなtunnelに向ける
    (今思えば、これは不要だったかも・・・・・)
  2. nat descripterに、AWS側サブネットも追加すること
    この設定です。
    nat descripter 192.168.3.1-192.168.3.254 10.0.1.1-10.0.1.254
    tracerouteしても、tunnelのコチラ側アドレスから行方不明になってるし、何でだろーって
    思っていましたが、ここに辿り着くまでえらい時間を食ってしまいました。
    まさか内側アドレスを複数定義できるとは思っていなかったので。
    (はい。マニュアルちゃんと読みましょうね・・・・・orz)

 
 
RTX1200への設定(一部RTX1000やRTX1100では動かない模様ですが・・・・)については、こんな感じです。
 

※結構生の設定を載せてます。攻撃しないでね(大汗)
 
 

LAN1(ローカル側)、LAN3設定(グローバル側)

ip lan1 address 192.168.3.254/24
ip lan3 address 219.117.231.171/29

ルータ内のデフォルトゲートウェイ設定(PPPoEがデフォルトゲートウェイになります)

ip route default gateway pp 1

ipsec各tunnelの設定になります。
これはAWSからダウンロードできますが、ちょびっと直してます。
ダウンロードしてきた設定だと、ipsecのコチラ側がグローバルIPで書かれてるので
そこをローカルIPのゲートウェイに直します。

tunnel select 1
 description tunnel To_AWS_VPN_01
 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 heartbeat
  ipsec ike local address 1 192.168.3.254
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 *
  ipsec ike remote address 1 27.0.1.144
 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 auto
 tunnel enable 1
tunnel select none
tunnel select 2
 description tunnel To_AWS_VPN_02
 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 heartbeat
  ipsec ike local address 2 192.168.3.254
  ipsec ike pfs 2 on
  ipsec ike pre-shared-key 2 *
  ipsec ike remote address 2 27.0.1.16
 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 auto
 tunnel enable 2
tunnel select none

ip filterの設定です。
この辺はポリシーが有ると思いますので、適宜合わせてくにゃさい。
ただ、AWS側からのパケットは通してあげないと・・・・。

ip filter 10000 reject 206.223.144.0/20 * tcp https,995,1723 *
ip filter 10001 reject 207.29.224.0/19 * tcp https,995,1723 *
ip filter 100000 reject * * udp,tcp 135 *
ip filter 100001 reject * * udp,tcp * 135
ip filter 100002 reject * * udp,tcp netbios_ns-netbios_dgm *
ip filter 100003 reject * * udp,tcp * netbios_ns-netbios_dgm
ip filter 100004 reject * * udp,tcp netbios_ssn *
ip filter 100005 reject * * udp,tcp * netbios_ssn
ip filter 100006 reject * * udp,tcp 445 *
ip filter 100007 reject * * udp,tcp * 445
ip filter 100099 pass * * * * *
ip filter 200020 reject * * udp,tcp 135 *
ip filter 200021 reject * * udp,tcp * 135
ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 200024 reject * * udp,tcp 445 *
ip filter 200025 reject * * udp,tcp * 445
ip filter 200026 restrict * * tcpfin * www,21,nntp
ip filter 200027 restrict * * tcprst * www,21,nntp
ip filter 200031 pass * 192.168.3.0/24 established * *
ip filter 200033 pass * 192.168.3.0/24 tcp ftpdata *
ip filter 200034 pass * 192.168.3.0/24 tcp,udp * domain
ip filter 200035 pass * 192.168.3.0/24 udp domain *
ip filter 200036 pass * 192.168.3.0/24 udp * ntp
ip filter 200037 pass * 192.168.3.0/24 udp ntp *
ip filter 200099 pass * * * * *
ip filter 500000 pass * 10.0.0.0/16 established * *
ip filter 500001 pass * 10.0.0.0/16 tcp ftpdata *
ip filter 500002 pass * 10.0.0.0/16 tcp,udp * domain
ip filter 500003 pass * 10.0.0.0/16 udp domain *
ip filter 500004 pass * 10.0.0.0/16 udp * ntp
ip filter 500005 pass * 10.0.0.0/16 udp ntp *
ip filter 500099 pass * * * * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200081 * * domain
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp

nat descripterの設定です。
ココです。ココがキーポイントでした。
まさか、内側セグメントが複数書けるとは・・・・orz

nat descriptor log on
nat descriptor type 1 masquerade
nat descriptor address inner 1 192.168.3.1-192.168.3.254 10.0.1.1-10.0.1.254
nat descriptor masquerade static 1 1 192.168.3.254 esp
nat descriptor masquerade static 1 2 192.168.3.254 udp 500

BGPの設定です。
これはAWSからダウンロードできます。
今回は何も触ってません。

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

雑多な設定達です。
この辺は適当に環境に合わせましょう。

telnetd host lan1
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dns server 203.141.128.35 203.141.128.32
dns server select 500001 203.141.128.35 203.141.128.32 any . restrict pp 1
dns private address spoof on
snmp community read-only PUBLIC
snmp yrifppdisplayatmib2 on
snmp yriftunneldisplayatmib2 on
snmp yrifswitchdisplayatmib2 on
snmp trap enable snmp coldstart warmstart linkup linkdown authenticationfailure
snmp sysname rtx1200
schedule at 1 startup * ntpdate ntp.nict.jp syslog
httpd host 192.168.3.1-192.168.3.254
operation http revision-up permit on
sshd service on
sshd host key generate *
sftpd host any
statistics cpu on
statistics memory on
statistics traffic on

 

VPC上へのインスタンスの立て方については、色々情報が転がってると
思いますのでがんばってお勉強しましょう!

テストについては、以下の点についてテストを実施しました。
VPC上のインスタンスから、自宅ADサーバへpingが飛ぶこと
VPC上のインスタンスから、自宅RTX1200を経由して、外界へ出て行けること

費用感としては、保守契約(Developper)とVPC込みで2万円+インスタンス料金位を
見ておけばいいんじゃないでしょうか?
(この辺は自分への投資ということでw)

では、Let’s Enjoy!