OCIでは、各リソースへのアクセスを制御する為に、サブネット単位でセキュリティ・リストで制御したり、COMPUTEインスタンス等のリソース単位で、ネットワーク・セキュリティ・グループで制御する事が可能となっています。
弊社でも、セキュリティ・リスト/ネットワーク・セキュリティ・グループ を活用して、会社のIPアドレスから特定のPortのみにアクセスを許可したり等の制御を行っています。
このアクセス制御によってアクセスが許可された、拒否されたという情報は、Service LogのVCN Flow Logsで確認する事ができるので、手順をご紹介したいと思います。
ロググループ及びログの作成
ログを確認する為には、ロググループとログを作成する必要があります。
まずは、コンソール画面左のハンバーガーメニューから「ロギング」-「Log Groups」を押下します。
表示された画面で「ログ・グループの作成」ボタンを押下します。
ログ・グループの作成画面でコンパートメントを選択し、グループ名を入力します。
今回は、グループ名を「subnet_log_group」として「作成」ボタンを押下します。
ロググループが作成されたので、画面左の「リソース」-「ログ」のリンクを押下します。
表示された画面の「サービス・ログの有効化」ボタンを押下します。
リソース・ログの有効化画面で以下のように設定し、「ログの有効化」ボタンを押下します。
- リソースの選択
- リソース・コンパートメント:ログ出力対象とするサブネットが存在するコンパートメントを選択
- サービス:Virtual Cloud Network(subnets)を選択
- リソース:ログ出力対象とする対象のサブネットを選択
- ログの構成
- ログ・カテゴリ:Flow Logs(All records)を選択
- ログ名:今回は 「subnet1_log」 と設定しています
作成後、しばらくすると以下の画面のように「Active」状態となります。
ログの確認
ログを作成後、対象のサブネットに配置しているCOMPUTEインスタンスにSSHでアクセスして、しばらく放置しました。
5分程、経過してから以下のログ詳細画面の右側にある「ログ検索で探索」リンクを押下して、ログ検索画面を表示します。
SSHアクセスで 許可された アクセス
まずは、SSHアクセス(22番Port)で 許可された
アクセスを確認してみます。
検索画面で以下のように設定して、「検索」ボタンを押下します。
- フィールドまたはテキスト検索によるフィルタ
- data.destinationPort=22
- data.Action=ACCEPT
- 検索するログの選択
- 初期表示のまま変更しない
- 時間によるフィルタ
- 過去5分間を選択
(過去5分間,過去15分間,過去1時間,過去3時間,今日,カスタムの6項目から選択可能)
- 過去5分間を選択
こちらに表示された第4オクテットが「73」のIPアドレスは、アクセス元のIPアドレスとなり、自分がアクセスした情報となります。
SSHアクセスで 拒否された アクセス
次に、SSHアクセス(22番Port)で 拒否された
アクセスを確認してみます。
検索画面で以下のように設定して、「検索」ボタンを押下します。
- フィールドまたはテキスト検索によるフィルタ
- data.destinationPort=22
- data.Action=REJECT
- 検索するログの選択
- 初期表示のまま変更しない
- 時間によるフィルタ
- 過去5分間を選択
検索結果に表示されたIPアドレスは、セキュリティ・リストでもネットワーク・セキュリティ・グループでも許可していないIPアドレスとなっています。
誰が何の為にアクセスしたかは不明ですが、想定しないアクセスがあった事が分かります。
今回は、宛先ポート番号とアクション(許可/拒否)でフィルタリングしましたが、他にも多くの条件が用意されています。
その他の指定できる条件については、こちらのリファレンスの Contents of a VCN Flow Log
をご参照下さい。
また、ログはコンソール画面上から確認するだけでなく、オブジェクト・ストレージに保存されているので、ログをダウンロードして確認する事も可能となっています。
まとめ
今回の検証で、ログを有効にしてからの少しの時間でも、想定しないアクセスがあった事が分かりました。
いつ、誰が悪意を持ってアクセスしてくるのか分からないという事を身を持って感じ、検証環境であったとしても、セキュリティ・リスト/ネットワーク・セキュリティ・グループの設定は、必要なアクセスのみを許可するように設定しておく必要があると改めて強く感じました。
OCIをご利用の方は、セキュリティ・リスト/ネットワーク・セキュリティ・グループの設定で簡単にアクセス制御ができるので、検証環境といえど、設定を疎かにしないよう気を付けましょう。