share facebook facebook2 twitter menu hatena pocket slack

2013.02.01 FRI

Openswan on EC2でVPCとVPN Connection

鈴木 宏康

WRITTEN BY鈴木 宏康

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に出力されます。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。