700 以上のラボとコースにアクセス

ファイアウォールにアクセスしてルールを作成する

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス
重要アイコン 重要:

パソコン / ノートパソコンのアイコン このハンズオンラボは、デスクトップまたはノートパソコンでのみ完了するようにしてください。

チェック アイコン ラボごとに 5 回までしか試行できません。

クイズのターゲット アイコン なお、最初の試行で全問正解できないことや、タスクをやり直す必要があることはよくあります。これは学習プロセスの一部です。

タイマー アイコン ラボを開始すると、タイマーを一時停止することはできません。1 時間 30 分後にラボは終了し、最初からやり直す必要があります。

ヒントアイコン 詳しくは、ラボでの技術的なヒントの資料をご覧ください。

アクティビティの概要

クラウド環境内のアセットは、不正アクセスから保護する必要があります。これに対処するために、セキュリティ専門家は境界防御を使用します。これは、ネットワークやシステムの境界を不正アクセスやサイバー脅威から防御するために実装されるセキュリティ対策を指します。境界保護の一種として、ファイアウォールを使用してクラウド環境に出入りするネットワーク トラフィックを管理および保護する方法があります。ファイアウォールは、信頼できる内部ネットワーク(企業のプライベート ネットワークなど)を、信頼できない外部ネットワーク(インターネットなど)から保護するのに役立ちます。ファイアウォールは、事前定義されたルールに基づいて、送受信されるネットワーク トラフィックを検査し、特定のデータパケットを許可またはブロックします。これは、アプリケーションのセキュリティ、トラフィック制御、コンプライアンス、ポリシーの適用を維持するうえで非常に重要です。

このラボでは、ファイアウォールにアクセスし、ルールを作成してサーバーのセキュリティをテストし、必要に応じて変更を加えます。

シナリオ

Cymbal Bank には、既存の Virtual Private Cloud(VPC)ネットワーク上にプロビジョニングされたデモ用ウェブサーバーがあります。チームリーダーの Chloe は、このウェブサーバーのセキュリティ構成を懸念しており、ウェブサーバーへのインバウンド ネットワーク トラフィックを分析し、ファイアウォール ルールを使用して不要なポートへの接続をブロックすることを求めています。あなたは、このウェブサーバーのファイアウォール ルールを分析し、その接続をテストするよう依頼されました。このタスクを完了するには、いくつかのファイアウォール ルールを作成し、ウェブサーバーに接続して、ネットワーク接続に関連付けられたログを分析する必要があります。

方法: まず、デモ ウェブサーバーへのネットワーク トラフィックを許可するファイアウォール ルールを作成します。次に、サーバーへの HTTP ネットワーク トラフィックを生成し、そのネットワーク ログを分析します。次に、サーバーへの HTTP トラフィックを拒否する新しいファイアウォール ルールを作成してテストします。最後に、ファイアウォール ログを分析して、新しいファイアウォール ルールが意図したとおりに機能することを確認します。

注: このラボでは、カスタムモードのネットワーク VPC(vpc-net)とサブネット(vpc-subnet)が用意されています。これらは リージョンで VPC フローログを使用して構成されています。また、 ゾーンの vpc-subnet 内に Apache ウェブサーバーがインストールされた VM インスタンス web-server も用意されています。この VM インスタンスには、ネットワーク タグ http-server がアタッチされています。

設定

[ラボを開始] をクリックする前に

こちらの手順をお読みください。ラボには時間制限があり、一時停止することはできません。[ラボを開始] をクリックすることでスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

この実践ラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、以下が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。左側の [ラボの詳細] パネルには、以下が表示されます。

    • 残り時間
    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
    注: ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。新しいブラウザタブで [ログイン] ページが開きます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておくと、簡単に切り替えられます。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のGoogle Cloud ユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。[Next] をクリックします。

{{{user_0.username | "Google Cloud username"}}}

[ラボの詳細] パネルでも Google Cloud ユーザー名を確認できます。

  1. 以下の Google Cloud パスワードをコピーして、[ようこそ] ダイアログに貼り付けます。[Next] をクリックします。
{{{user_0.password | "Google Cloud password"}}}

[ラボの詳細] パネルでも Google Cloud のパスワードを確認できます。

重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  1. その後次のように進みます。
    • 利用規約に同意します。
    • 一時的なアカウントですので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルに登録しないでください。

しばらくすると、このタブで Cloud コンソールが開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコンがハイライトされた Google Cloud コンソール メニュー

タスク 1. ファイアウォール ルールを作成する

このタスクでは、HTTP と SSH の接続を許可するファイアウォール ルールを作成します。また、新しく作成したファイアウォール ルールのターゲットタグも指定します。

Google Cloud では、ファイアウォール ルールでターゲットを指定して、適用する VM インスタンスを定義する必要があります。ターゲットタグを使用すると、ファイアウォール ルールを特定の VM グループに適用できるため、ファイアウォール ルールの管理が簡素化されます。ターゲットタグを使用して、このファイアウォール ルールをウェブサーバーのみに適用します。

  1. Google Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)をクリックします。
  2. [VPC ネットワーク] > [ファイアウォール] を選択します。[ファイアウォール ポリシー] ページが表示されます。
注: このプロジェクトによって継承されたファイアウォール ポリシーを閲覧する権限がないというメッセージが表示された場合は、無視して次の手順に進んでください。
  1. ツールバーで、[+ ファイアウォール ルールを作成] をクリックします。[ファイアウォール ルールを作成] ダイアログが表示されます。

  2. 次のように指定し、残りの設定はデフォルトのままにします。

フィールド
名前 allow-http-ssh
ログ On
ネットワーク vpc-net
ターゲット 指定されたターゲットタグ
ターゲットタグ http-server
ソースフィルタ IPv4 範囲
送信元 IPv4 範囲 0.0.0.0/0
[プロトコルとポート] セクションで
  • 指定したプロトコルとポートを選択します。
  • [TCP] チェックボックスをオンにします。
  • [ポート] フィールドに 80, 22 と入力します。
  1. [作成] をクリックします。
注: Successfully created firewall rule "allow-http-ssh" というメッセージが表示されるまで待ってから続行してください。

[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。 ファイアウォール ルールを作成する

タスク 2. HTTP ネットワーク トラフィックを生成する

このタスクでは、ウェブサーバーの外部 IP アドレスにアクセスして、ウェブサーバーへの HTTP ネットワーク トラフィックを生成します。生成したネットワーク トラフィックはログとして記録され、ログ エクスプローラで分析できます。

まず、ネットワーク トラフィックを生成する必要があります。

  1. Google Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)をクリックします。

  2. [Compute Engine] > [VM インスタンス] を選択します。[VM インスタンス] ページが開きます。

  3. web-server の [外部 IP] をクリックしてサーバーにアクセスします。

(または、新しいブラウザ ウィンドウまたはタブで http://EXTERNAL_IP/ に外部 IP の値を追加することもできます)。デフォルトのウェブページが表示されます。

次に、使用しているパソコンの IP アドレスを調べます。

  1. whatismyip.com のリンクを使用して IP アドレスにアクセスします。IP アドレスが直接返されます。

ブラウザにウェブサイト www.whatismyip.com のホームページが表示されている

注: IP アドレスが IPv4(数字のみ)であり、IPv6(16 進数)でないことを確認します。
  1. IP アドレスをコピーし、メモ帳に保存します。これは次のタスクで使用します。

[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。 HTTP ネットワーク トラフィックを生成する

タスク 3. ウェブサーバーのフローログを分析する

このタスクでは、ログ エクスプローラを使用してウェブサーバーの VPC フローログにアクセスし、分析します。

  1. Google Cloud コンソールのタイトルバーにある [検索] フィールドに「ログ エクスプローラ」と入力し、検索結果から [ログ エクスプローラ] をクリックします。

  2. [オブザーバビリティ ロギング] の横にある固定アイコンをクリックします。

  3. [ログ エクスプローラ] ページの左側に [フィールド] ペインが表示されます。[重大度] セクションと [リソースタイプ] セクションが利用可能です。[リソースタイプ] セクションで、[サブネットワーク] を選択します。

サブネットワーク ログのエントリが、[フィールド] ペインの右にある [クエリ結果] ペインに表示されます。

  1. [フィールド] ペインの [ログ名] セクションで、[compute.googleapis.com/vpc_flows] を選択して、ネットワークの VPC フローログにアクセスします。このオプションが表示されない場合は、このログタイプが表示されるまで数分待ちます。

選択すると、VPC フローログのエントリが [クエリ結果] ペインに表示されます。

  1. ページ上部の [クエリ] ビルダーで、2 行目の末尾で ENTER キーを押して新しい行を作成します。

  2. 3 行目に次のように入力します。

jsonPayload.connection.src_ip=YOUR_IP

クエリは次のようになります。

resource.type="gce_subnetwork" log_name="projects/{{{project_0.project_id | PROJECT_ID}}}/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.src_ip=YOUR_IP
  1. YOUR_IP は、タスク 2 で保存した IP アドレスに置き換えます。このクエリは、前のタスクで生成した IP アドレスから発信されたネットワーク トラフィック ログを検索します。

  2. [クエリを実行] をクリックします。クエリ結果が [クエリ結果] ペインに表示されます。

注: vpc_flows のフィルタ オプションが表示されない場合、またはログがない場合、数分待ってから更新してください。数分待っても vpc_flows のフィルタ オプションが表示されない場合は、[Compute Engine] ページに移動し、web-server の [外部 IP] を数回クリックしてトラフィックをさらに生成してから vpc_flows のフィルタ オプションを確認してください。
  1. [クエリ結果] ペインで、ログエントリの 1 つを開きます。

  2. エントリ内で、展開矢印 > をクリックして jsonPayload を展開します。次に、connection フィールドを展開します。

ここでは、ウェブサーバーへのネットワーク接続に関する詳細を確認できます。

  • dest_ip - これはウェブサーバーの宛先 IP アドレスです。
  • dest_port - これは、ウェブサーバーの宛先ポート番号です。HTTP ポート 80 です。
  • protocol - プロトコルは 6(TCP トラフィック用の IANA プロトコル)です。
  • src_ip - これは、コンピュータの送信元 IP アドレスです。
  • src_port - これは、コンピュータに割り当てられた送信元ポート番号です。インターネット割り当て番号機関(IANA)の標準によると、通常は 49152 ~ 65535 の範囲のランダムなポート番号です。

このログエントリの詳細を分析すると、以前に作成したファイアウォール ルール allow-http-ssh により、生成したネットワーク トラフィック(HTTP ポート 80)が許可されたことがわかります。このルールでは、ポート 80 と 22 での受信トラフィックが許可されていました。

タスク 4. HTTP トラフィックを拒否するファイアウォール ルールを作成する

このタスクでは、ポート 80 からのトラフィックを拒否する新しいファイアウォール ルールを作成します。

  1. Google Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)をクリックします。

  2. [VPC ネットワーク] > [ファイアウォール] を選択します。[ファイアウォール ポリシー] ページが表示されます。

  3. ツールバーで、[+ ファイアウォール ルールを作成] をクリックします。

  4. [ファイアウォール ルールの作成] ダイアログで、次の設定を指定します。残りの設定はデフォルト値のままにします。

フィールド
名前 deny-http
ログ On
ネットワーク vpc-net
一致したときのアクション 拒否
ターゲット 指定されたターゲットタグ
ターゲットタグ http-server
ソースフィルタ IPv4 範囲
送信元 IPv4 範囲 0.0.0.0/0
[プロトコルとポート] セクションで
  • 指定したプロトコルとポートを選択します。
  • [TCP] チェックボックスをオンにします。
  • [ポート] フィールドに 80 と入力します。
  1. [作成] をクリックします。

[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。 HTTP トラフィックを拒否するファイアウォールを作成する

タスク 5. ファイアウォール ログを分析する

このタスクでは、前のタスクで作成した deny-http ファイアウォール ルールをテストします。

まず、ウェブサーバーに接続してみます。

  1. ナビゲーション メニューナビゲーション メニュー アイコン)をクリックします。
  2. [Compute Engine] > [VM インスタンス] を選択します。[VM インスタンス] ページが開きます。
  3. web-server の [外部 IP] をクリックしてサーバーにアクセスします。

ページに次のエラー メッセージが表示されます。

 ウェブブラウザにサイト接続エラーが表示される

このエラーは、前のタスクで作成したファイアウォール ルール deny-http が原因で発生しました。これを確認するには、ログ エクスプローラにアクセスして、ウェブサーバーのファイアウォール ログを分析します。

  1. Google Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)をクリックします。

  2. [ロギング] > [ログ エクスプローラ] を選択します。 [ログ エクスプローラ] ページが開きます。

  3. [リソースタイプ] セクションで、[サブネットワーク] を選択します。

  4. [ログのフィールド] ペインの [ログ名] セクションで、[compute.googleapis.com/firewall] を選択して、ネットワークのファイアウォール ログにアクセスします。

  5. ページ上部の [クエリ] ビルダーで、2 行目の末尾で ENTER キーを押して新しい行を作成します。

  6. 3 行目に次のように入力します。

jsonPayload.connection.src_ip=YOUR_IP DENIED

YOUR_IP は、タスク 2 で保存した IP アドレスに置き換えます。このクエリは、ウェブサーバーへの IP アドレス接続を拒否したファイアウォール ログを検索します。クエリは次のようになります。

resource.type="gce_subnetwork" log_name="projects/{{{project_0.project_id | PROJECT_ID}}}/logs/compute.googleapis.com%2Ffirewall" jsonPayload.connection.src_ip=YOUR_IP DENIED
  1. [クエリを実行] をクリックします。クエリ結果が [クエリ結果] ペインに表示されます。

  2. [クエリ結果] ペインで、ログエントリの 1 つを開きます。

  3. ログエントリ内で、展開矢印 > をクリックして jsonPayload フィールドを展開します。次に、connection フィールドを展開します。ウェブサーバーへのネットワーク接続の詳細を調べて、ファイアウォール ルールが正常にトリガーされたかどうかを確認できます。

  • dest_ip - これはウェブサーバーの宛先 IP アドレスで、10.1.3.2 です。
  • dest_port - これは、ウェブサーバーの宛先ポート番号です。HTTP ポート 80 です。
  • protocol - プロトコルは 6(TCP トラフィック用の IANA プロトコル)です。
  • src_ip - これは、コンピュータの送信元 IP アドレスです。
  • src_port - これは、コンピュータに割り当てられた送信元ポート番号です。
  • disposition - このフィールドは、接続が許可されたか拒否されたかを示します。ここでは denied と表示されており、サーバーへの接続が拒否されたことを示しています。
  1. ログエントリ内で、展開矢印 > をクリックして rule_details フィールドを展開します。ファイアウォール ルールの詳細を確認できます。また、ログエントリの次のフィールドを展開して、より多くの情報を抽出できます。
  • action - ルールによって実行されたアクション。この場合は DENY
  • direction - ルールのトラフィックの方向は、上り(内向き)または下り(外向き)のいずれかです。ここでは INGRESS であり、アクションは上り(内向き)トラフィックに適用されます。
  • ip_port_info - このルールで制御するプロトコルとポート。ip_protocolport_range のリストに TCP ポート 80 が含まれています。
  • source_range - ファイアウォール ルールが適用されるトラフィックの送信元。次のようになります。0.0.0.0/0
  • target_tag - ファイアウォール ルールが適用されるすべてのターゲットタグのリスト。ここでは、前のタスクでファイアウォール ルールに追加したターゲットタグである http-server を使用します。

このファイアウォール ログエントリの詳細を調べると、HTTP トラフィックを拒否するために設定したファイアウォール ルール deny-http が正常にトリガーされたことがわかります。このルールは、ポート 80 での受信ネットワーク トラフィックを拒否しました。

[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。 ファイアウォール ログを分析する

まとめ

これで完了です。

クラウド環境のウェブサーバーのファイアウォール ルールを作成してテストする実践的な経験を積みました。ファイアウォール ルールを作成し、ログエントリを分析することで、境界保護の複雑さを理解しました。これは、セキュリティ アナリストの役割に不可欠な、潜在的なセキュリティ インシデントや脅威のモニタリングと分析に役立ちます。

ネットワーク セキュリティを最大限に確保するためにファイアウォール ルールを変更する方法について、理解を深めることができました。

ラボを終了する

すべてのタスクが問題なく完了したことを確認してから、ラボを終了してください。準備ができたら、[ラボを終了] をクリックし、[送信] をクリックします。

ラボを終了すると、ラボ環境へのアクセス権が削除され、完了した作業にもう一度アクセスすることはできなくなります。

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。