こちらの記事の続きです。
AWSにはAmazon Virtual Private Cloud(VPC)という仮想ネットワークを構築、運用する機能があります。この機能を用いて攻撃者のサーバーへのアクセスを遮断しましょう。
Amazon VPCとは?
詳しくはこちらをご覧下さい。
VPCの仮想ネットワーク上でEC2等、AWSのサービスを稼働できます。Amazonが公開している以下の画像をご覧下さい。このような構成となります。
VPCを用いる狙い
攻撃者のアクセスがEC2インスタンスへ届く前に、EC2インスタンスの外側に位置するVPC層での攻撃者のアクセス遮断が狙いです。
それに用いるVPCの機能はネットワーク ACLです。
ネットワーク ACLとは
ネットワーク Access Control List。詳しくはこちらを御覧ください。
ざっくり言えば、ファイアウォールです。VPCへのアクセスの許可、拒否を行えます。
EC2のセキュリティグループと似ていますが、以下の点が大きく違います。
- アクセスの拒否が出来る。
- 仮想ネットワーク単位でアクセス制御を行える。
例えば、VPCにWebサーバーのインスタンスと、DBサーバーのインスタンスを起動したとします。それぞれのサーバーに対して、特定のホストからのアクセスだけを許可するよう、ネットワーク ACLで設定すれば、それぞれのサーバーに関連付けたセキュリティグループの設定を変更せずともアクセス制限を行えます。大まかな接続制限の一括管理が出来る、という訳です。
ルールを追加する
攻撃者のサーバーへのアクセスを遮断するルールを追加します。
- AWSへログイン後、サービス -> VPCへ選択し、VPCのページへ移動します。
- VPCページの左のメニューからセキュリティ -> ネットワーク ACLを選択し、ネットワーク ACL設定ページへ移動します。
- 以下のページが表示されたら、ネットワークACL を選択します。デフォルトで1つ存在するはずです。
- 以下のページが表示されたら、「インバウンドのルール」タブをクリックします。
- 「編集」ボタンをクリックします。
- 「別のルールの追加」ボタンをクリックします。
- 以下の画面が表示されたら、値を入力して「保存」ボタンをクリックすれば、設定は完了です。各項目について解説します。
- ルール #:数字が少ない程ルールの優先順位が高くなります。拒否ルールは先に行うよう設定した方が良いと思います。
- タイプ:どのプロトコルやポートに対してのルールとするか選択します。
- プロトコル:タイプに応じて変更されます。自分で変更は出来ない?ようです。
- ポート範囲:タイプで「カスタム~」を選択すると、ポートを指定できます。
- ソース:ルールを適用するセグメントを入力します。x.x.x.x/x形式で入力します。
- 許可/拒否:ソースで入力したセグメントを許可するか拒否するか、です。
- 削除:ルールを削除します。
以上で設定は完了です。EC2インスタンスにsshログインしてApacheのアクセスログをtail -fしてみて下さい。攻撃者のアクセスが無くなっているはずです。
有効に活用して攻撃者からサーバーを保護しましょう。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。