RHEL7のOpenVPNを使ってAWSに接続
◆AWS準備◆
まずはAWSの申し込みを行いましょう。
はじめての場合は、1年間は毎月無料枠が用意されており、はじめのうちはほとんど無料で利用できるようです。

■VPC準備■
申込みが完了すれば以下のネットワーク図で赤枠の部分のAmazon Virtual Private Cloud(VPC)の準備を行います。

- まず、トップのメニューから、以下の通り「VPC」を選択します。

- 次に、VPCダッシュボードが表示されますので、以下の通り「VPCウィザードの開始」を選択します。

※VPCがすでにある場合は、読み飛ばしてください。
- 準備するVPCの種類を選択する画面が表示されますので「1 個のパブリックサブネットを持つ VPC」を、以下の通り選択し、「選択」ボタンをクリックします。

- VPCのネットワークの設定を行う画面が表示されます。デフォルトでVPC全体のアドレス空間は「10.0.0.0/16」で指定されます。また、VPC内に設けるパブリックサブネットは「10.0.0.0/24」でデフォルトで指定されます。今回はこれをそのまま使いますが、環境に応じて任意に変更してください。また、VPCの名前「VPC名」を任意につけ、「VPCの作成」をクリックしてください。

- VPCが作成されますので、以下のメッセージが出れば「OK」ボタンをクリックしてください。

■ネットワークACL確認■
- 次に、VPCダッシュボードから、以下の通り「ネットワークACL」を選択し、既に作成されているデフォルトのACLを選択します。

ネットワークアクセスコントロールリスト (ACL) は、1 つ以上のサブネットのインバウンドトラフィックとアウトバウンドトラフィックを制御するファイアウォールとして動作する、VPC 用のセキュリティのオプションレイヤーです。
アクセス制御は、このACL以外に、「セキュリティグループ」が存在しますが、セキュリティグループがインスタンス単位(サーバーごと)に割り当てされるのに対し、サブネットレベルで割り当てることができ、サブネットに接続されている全てのインスタンスに効果をもたらすのが特徴です。
- 以下の通り「インバウンドのルール」「アウトバウンドのルール」を選択し、それぞれに設定されているルールを確認します。


ルールは上から順に処理され、マッチした場合に許可/不許可処理が行われますので、デフォルトではすべての通信が許可されていることが分かります。
■セキュリティグループ作成■
- 次に、VPCダッシュボードから、以下の通り「セキュリティグループ」を選択し、「セキュリティグループの作成」を選択し、既に作成されているデフォルトのセキュリティグループ以外に新たに作成します。

既にあるデフォルトのセキュリティグループもネットワークACLと同じく、すべての通信が許可されていますので、ここで新たに作成しておきます。
- 以下の通りセキュリティグループの作成画面が表示されますので、まずはインターネットからOpenVPNで接続するOpenVPNサーバーのインスタンスに使用するセキュリティグループを作成します。

- 同じく内部用のWWWサーバーのインスタンスに使う、セキュリティグループを作成します。

- さらにSSHで接続して構築する際に使用する、セキュリティグループを作成します。

- 次に、作成したセキュリティグループの設定を実施します。まずは、以下の通りOpenVPNサーバーのインスタンスに割り当てるセキュリティグループの設定を行います。

- 以下の通り「インバウンドのルール」を選択します。何も設定されていないのが分かりますので「編集」ボタンをクリックし、ルールを追加します。

- ルールの追加画面になりますので、「タイプ」に「カスタム UDP ルール」を選択し、「プロトコル」に「UDP(17)」を選択し、「ポート範囲」に「1194」を入力し、「ソース」を「0.0.0.0/0」を入力、「説明」に任意の説明を入力し、「保存」ボタンをクリックします。

- 以下の通り「インバウンドのルール」の画面で、先ほど設定した内容が反映されていることを確認します。

これで、インターネットからOpenVPNサービスで使用する「UDP:1194」ポートにのみ接続できるルールのセキュリティグループが作成できました。
なお、「アウトバウンドのルール」は今回特に制限をかけなくてもよいので、以下の通り制限なしにしています。

- 次に、以下の通りSSHで接続して構築する際に使用する、セキュリティグループの設定を行います。

- 以下の通り「インバウンドのルール」を選択します。何も設定されていないのが分かりますので「編集」ボタンをクリックし、ルールを追加します。

- ルールの追加画面になりますので、「タイプ」に「SSH(22)」を選択し、「プロトコル」に「TCP(6)」を選択し、「ソース」を「0.0.0.0/0」を入力、「説明」に任意の説明を入力し、「保存」ボタンをクリックします。

- 以下の通り「インバウンドのルール」の画面で、先ほど設定した内容が反映されていることを確認します。

これで、インターネットからSSHで接続して構築する際に使用するルールのセキュリティグループが作成できました。
なお、「アウトバウンドのルール」は今回特に制限をかけなくてもよいので、以下の通り制限なしにしています。

最後に内部用のWWWサーバーのインスタンスに使うセキュリティグループに関する設定について、インバウンドトラフィックを以下の通り許可します。

特徴は送信もと(ソース)を「10.0.0.0/8」にしているところです。これは、OpenVPNで接続したクライアントとOpenVPNサーバーが構成する仮想のネットワークが、デフォルトは「10.8.0.0/24」ですので、これを包含するプライベートネットワークアドレスを指定しています。
|