AWS VPC

会社の引越しに伴い、VPNの必要が出たのでVPCやります。

若干ハードル高いですが、ヨチヨチ歩きでいきます。

色々調べた結果、AWSではVPNサーバは自前で用意する必要があるので、
PublicSubnetにVPNサーバを置いて、
PrivateSubnetにセキュリティを確保したいサーバを置く構成がいいのではと。
ハードウェアVPNは、運用考えると楽だとは思うのですが、接続者が色んな場所にいるので(基本モバイルルータ)

VPC作成
ダッシュボードからウィザード使って作ります。「VPC with Public and Private Subnets」を選択。
フルデフォルトで作成。
NATインスタンスのKeyPair忘れずに。

NATインスタンス
NAT インスタンス - Amazon Virtual Private Cloud
プラス、UDP1194の解放

NATインスタンスのSource/Dest. Checkを無効に。(元々無効)

IPv4フォワーディングの有効化

$ sudo vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
$ sudo /sbin/sysctl -p

接続方式どうしようかと迷ったんですが、
クライアントもWindowsがほとんどなので、PPPTPが良かったんですが、
諸々の理由から心折れまして、OoenVPNにしました。
OpenVPNのインストールと設定。yumでサクッと。

証明書を作成
OpenVPNの設定(その1:認証用ファイルの生成) | Blog on fuketch.net
OpenVPNでもプラグインなどでユーザパスワード認証出来るらしいですが、
[OpenVPN TIPS] 証明書認証ではなく、ID/パスワード認証を使用する
OpenVPNが起動せず、うまく動作しませんでした。まぁ私の設定が悪い可能性が高いですが...

server.confはこんな感じ

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

#script-security 2
#client-cert-not-required
#username-as-common-name
#auth-user-pass-verify /etc/openvpn/auth.py via-file

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "route 10.0.1.0 255.255.255.0"

keepalive 10 120
persist-tun
persist-key
client-to-client
duplicate-cn
comp-lzo
status /etc/openvpn/openvpn.log

verb 3

管理者都合からだと鍵をたくさん用意するのが面倒なので、
同じ鍵で複数接続を許可するのが、duplicate-cnオプションらしいです。
これ指定しないと同じ鍵で接続した場合、
後の接続が優先されて、前の接続は切断されます。

実際は、あんまりサクサク進まなくて、手こずった感ありますが、
なんとかVPNで接続できて、Privateなインスタンスにアクセスする事が出来ました。
いいですね。
お疲れ様でした。

参考
Amazon VPCにVyattaを使ってVPN接続をしてみた - まめ畑
suz-lab.com - このウェブサイトは販売用です! -&nbspsuz-lab リソースおよび情報
複数のAmazon VPCのプライベートネットワークをOpenVPNを使って接続する | DevelopersIO