2013年1月29日火曜日

"Openswan on EC2"で"VPC"と"VPN Connection"

スズキです。

EC2(CentOS6)上にOpenswanをインストールして、まずはVPCの
"Virtual Private Gateway"に"VPN Connection"を張ってみました。


VPCの準備


"Customer Gateway"はあらかじめ取得しておいたEIP(z.z.z.z)を指定します。
(RoutingはとりあえずStaticです)


上記の"Customer Gateway"と"Virtual Private Gateway"から"VPN Connection"を
作成します。"Static Routing"の"IP Prefix"は、とりあえず上記のEC2が所属する
VPCのCIDRブロックにしています。


二つのトンネルが準備され、その"IP Address"に対してIPsecを張ることになります。
(Tunnel1: x.x.x.x, Tunnel2: y.y.y.y)


EC2の準備


EIP(z.z.z.z)をつけて、"Security Group (Outbound)"は下記のようにしておきます。
("x.x.x.x"と"y.y.y.y"に対してUDPの500番と4500番を許可します)


Openswanのインストールと設定準備


"yum"でインストールできます。
# yum -y install openswan lsof
...

カーネルパラメーターも調整しておきます。
# cat /etc/sysctl.conf 
...
net.ipv4.ip_forward = 1
...
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
# sysctl -p
...

Openswanの設定と接続


全体の設定です。
# cat /etc/ipsec.conf 
version 2.0

config setup
 protostack=netkey
 nat_traversal=yes
 oe=off

include /etc/ipsec.d/*.conf

Tunnel1の"Pre-Shared Key"の設定です。
# cat /etc/ipsec.d/tunnel1.secrets 
z.z.z.z x.x.x.x: PSK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
※キーはAWSコンソールの"VPN Connection"からダウンロードできる設定中にあります。

Tunnel1の本体の設定です。
# cat /etc/ipsec.d/tunnel1.conf 
conn tunnel1
    type        = tunnel
    authby      = secret
    left        = %defaultroute
    leftid      = z.z.z.z
    leftnexthop = %defaultroute
    right       = x.x.x.x
    auth        = esp
    keyexchange = ike
    ike         = aes128-sha1-modp1024
    ikelifetime = 28800s
    pfs         = yes
    esp         = aes128-sha1
    salifetime  = 3600s
    dpdtimeout  = 10
    dpddelay    = 3
    auto        = start


Openswanを起動(service ipsec start)すると、下記のようにAWSコンソールで
接続確認できます。



Tunnel2の"Pre-Shared Key"の設定です。
# cat tunnel2.secrets 
z.z.z.z y.y.y.y: PSK "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
※キーはAWSコンソールの"VPN Connection"からダウンロードできる設定中にあります。

Tunnel2の本体の設定
# cat tunnel2.conf 
conn tunnel2
    type        = tunnel
    authby      = secret
    left        = %defaultroute
    leftid      = z.z.z.z
    leftnexthop = %defaultroute
    right       = y.y.y.y
    auth        = esp
    keyexchange = ike
    ike         = aes128-sha1-modp1024
    ikelifetime = 28800s
    pfs         = yes
    esp         = aes128-sha1
    salifetime  = 3600s
    dpdtimeout  = 10
    dpddelay    = 3
    auto        = start

Openswanを再起動(service ipsec restart)すると、下記のようにAWSコンソールで
接続確認できます。


これで、"Openswan on EC2"から"VPC"の"Virtual Private Gateway"に
"VPN Connection"を張ることができました。
※ちなみにログは"/var/log/secure"に出力されます。

次は、対向に"ping"が通るまで...
--------
http://www.suz-lab.com

0 コメント: