上り(内向き)トラフィックを有効にするグローバル ネットワーク ファイアウォール ポリシーを構成する

複数のサブネットを持つカスタム Virtual Private Cloud(VPC)ネットワークでは、デフォルトで下り(外向き)トラフィックは許可されますが、上り(内向き)トラフィックは拒否されます。上り(内向き)トラフィックを有効にして、異なるサブネット内の VM インスタンスが相互に通信できるようにするには、VPC ネットワークの Cloud Next Generation Firewall で、サブネットの特定の IP アドレス範囲からの上り(内向き)トラフィックを許可するグローバル ネットワーク ファイアウォール ポリシーを作成します。

このチュートリアルでは、カスタム VPC ネットワーク内の VM サブネット間の内部トラフィックを許可するようにグローバル ネットワーク ファイアウォール ポリシーを構成する方法について説明します。

サブネットを持つカスタム VPC ネットワークを作成する

このセクションでは、2 つの IPv4 サブネットを持つカスタムモードの VPC ネットワークを作成します。

コンソール

  1. Cloud de Confiance コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。

  3. [名前] に「vpc-fw-rules」と入力します。

  4. [説明] に「VPC network for the firewall rules tutorial」と入力します。

  5. [サブネット作成モード] で [カスタム] を選択します。

  6. [新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。

    • 名前: subnet-fw-rules-server
    • リージョン: us-central1 (Iowa)
    • IPv4 範囲: 10.0.0.0/24
    • 限定公開の Google アクセス: オン
  7. [完了] をクリックします。

  8. [サブネットを追加] をクリックし、次の構成パラメータを指定します。

    • 名前: subnet-fw-rules-client
    • リージョン: us-central1 (Iowa)
    • IPv4 範囲: 192.168.10.0/24
    • 限定公開の Google アクセス: オン
  9. [完了] をクリックします。

  10. [作成] をクリックします。

gcloud

  1. VPC ネットワークを作成するには、次のコマンドを実行します。

    gcloud compute networks create vpc-fw-rules \
      --subnet-mode=custom \
      --description="VPC network for the firewall rules tutorial"
    
  2. [Cloud Shell の承認] ダイアログで、[承認] をクリックします。

  3. サブネットを作成するには、次のコマンドを実行します。

    gcloud compute networks subnets create subnet-fw-rules-server \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=10.0.0.0/24 \
      --enable-private-ip-google-access
    
  4. 別のサブネットを作成するには、次のコマンドを実行します。

    gcloud compute networks subnets create subnet-fw-rules-client \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=192.168.10.0/24 \
      --enable-private-ip-google-access
    

デフォルトでは、VPC ネットワークには 2 つの暗黙の IPv4 ルールがあります。

  • 宛先が 0.0.0.0/0 で、最も低い優先度(65535)の allow 下り(外向き)ルール。 Cloud de Confiance by S3NSによってブロックされたトラフィックを除き、すべてのインスタンスが任意の宛先にトラフィックを送信できるようにします。
  • 送信元が 0.0.0.0/0 で、最も低い優先度(65535)の deny 上り(内向き)ルール。受信接続をブロックすることですべてのインスタンスを保護します。

詳細については、暗黙のルールをご覧ください。

クライアント VM とサーバー VM を作成する

このセクションでは、前のセクションで作成した VPC ネットワークのサブネットに、外部 IP アドレスを持たない 2 つの Linux VM を作成します。

サーバー VM を作成する

コンソール

サーバー VM を作成する手順は次のとおりです。

  1. Cloud de Confiance コンソールで [インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. [マシンの構成] ペインで、次の操作を行います。

    1. [名前] に「vm-fw-rules-server」と入力します。
    2. [リージョン] で us-central1 (Iowa) を選択します。
  3. ナビゲーション メニューで、[ネットワーキング] をクリックします。

    1. [ネットワーク インターフェース] セクションで、default をクリックし、次の構成パラメータを指定します。
      • ネットワーク: vpc-fw-rules
      • サブネットワーク: subnet-fw-rules-server IPv4 (10.0.0.0/24)
      • 外部 IPv4 アドレス: なし
    2. [完了] をクリックします。
  4. [作成] をクリックします。

gcloud

サーバー VM を作成するには、次のコマンドを実行します。

gcloud compute instances create vm-fw-rules-server \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-server \
    --stack-type=IPV4_ONLY \
    --no-address

クライアント VM を作成する

コンソール

クライアント VM を作成する手順は次のとおりです。

  1. Cloud de Confiance コンソールで [インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. [マシンの構成] ペインで、次の操作を行います。

    1. [名前] に「vm-fw-rules-client」と入力します。
    2. [リージョン] で us-central1 (Iowa) を選択します。
  3. ナビゲーション メニューで、[ネットワーキング] をクリックします。

    1. [ネットワーク インターフェース] セクションで、default をクリックし、次の構成パラメータを指定します。
      • ネットワーク: vpc-fw-rules
      • サブネットワーク: subnet-fw-rules-client IPv4 (192.168.10.0/24)
      • 外部 IPv4 アドレス: なし
    2. [完了] をクリックします。
  4. [作成] をクリックします。

gcloud

次のコマンドを実行してクライアント VM を作成します。

gcloud compute instances create vm-fw-rules-client \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-client \
    --stack-type=IPV4_ONLY \
    --no-address

Cloud Router と Cloud NAT ゲートウェイを作成する

前のセクションでは、パブリック IPv4 アドレスのない 2 つの Linux VM を作成しました。これらの VM が公共のインターネットにアクセスできるようにするため、Cloud Router と Cloud NAT ゲートウェイを作成します。

コンソール

  1. Cloud de Confiance コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. [開始] または [Cloud NAT ゲートウェイを作成] をクリックします。

  3. [ゲートウェイ名] に「gateway-fw-rules」と入力します。

  4. [NAT タイプ] で、[パブリック] を選択します。

  5. [Cloud Router の選択] セクションで、次の構成パラメータを指定します。

    • ネットワーク: vpc-fw-rules
    • リージョン: us-central1
    • Cloud Router: [新しいルーターを作成] を選択します。
      1. [名前] に「router-fw-rules」と入力します。
      2. [作成] をクリックします。
  6. [作成] をクリックします。

gcloud

  1. Cloud Router を作成するには、次のコマンドを実行します。

    gcloud compute routers create router-fw-rules \
      --network=vpc-fw-rules \
      --region=us-central1
    
  2. Cloud NAT ゲートウェイを作成するには、次のコマンドを実行します。

    gcloud compute routers nats create gateway-fw-rules \
      --router=router-fw-rules \
      --region=us-central1 \
      --auto-allocate-nat-external-ips \
      --nat-all-subnet-ip-ranges
    

グローバル ネットワーク ファイアウォール ポリシーを作成する

このセクションでは、次のものを使用してグローバル ネットワーク ファイアウォール ポリシーを作成します。

  • 0.0.0.0./0 を宛先とする下り(外向き)ルール。
  • ロギングを有効にします。ファイアウォール ルール ロギングを使用すると、ファイアウォール ルールの効果を監査、検証、分析できます。

コンソール

  1. Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ポリシーを作成] をクリックします。

  3. [ポリシーの構成] セクションの [ポリシー名] に「fw-policy」と入力します。

  4. [デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。

  5. ポリシーのルールを作成するには、[ルールを追加] セクションで [ルールを追加] をクリックします。

    1. [優先度] に「65534」と入力します。
    2. [トラフィックの方向] に [下り(外向き)] を選択します。
    3. [ログ] で [オン] を選択します。
    4. [ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。
    5. [送信先] セクションの [IP 範囲] に「0.0.0.0/0」と入力します。
    6. [プロトコルとポート] セクションで、[すべて許可] を選択します。
    7. [作成] をクリックします。
  6. [続行] をクリックします。

  7. VPC ネットワークをポリシーに関連付けるには、[ポリシーと VPC ネットワークの関連付け] セクションで [関連付け] をクリックします。

  8. [vpc-fw-rules] のチェックボックスをオンにして、[関連付け] をクリックします。

  9. [続行] をクリックします。

  10. [作成] をクリックします。

gcloud

  1. ファイアウォール ポリシーを作成するには、次のコマンドを実行します。

    gcloud compute network-firewall-policies create fw-policy \
        --global
    
  2. すべての宛先へのトラフィックを許可し、ログを有効にするファイアウォール ルールを作成するには、次のコマンドを実行します。

    gcloud compute network-firewall-policies rules create 65534 \
        --firewall-policy=fw-policy \
        --direction=EGRESS \
        --action=ALLOW \
        --dest-ip-ranges=0.0.0.0/0 \
        --layer4-configs=all \
        --global-firewall-policy \
        --enable-logging
    
  3. ファイアウォール ポリシーを VPC ネットワークに関連付けるには、次のコマンドを実行します。

    gcloud compute network-firewall-policies associations create \
        --firewall-policy=fw-policy \
        --network=vpc-fw-rules \
        --name=pol-association-fw-rules \
        --global-firewall-policy
    

IAP のファイアウォール ルールを追加する

前のセクションでは、外部 IP アドレスを持たない Linux VM を作成しました。このセクションでは、Identity-Aware Proxy(IAP)を有効にして、外部 IP アドレスを持たない VM インスタンスへの管理アクセスを許可します。

IAP に VM インスタンスへの接続を許可するには、次のファイアウォール ルールを作成します。

  • IAP を使用してアクセス可能にするすべての VM インスタンスに対して適用します。
  • IP 範囲 35.235.240.0/20 からの上り(内向き)トラフィックを許可します。この範囲には、IAP が TCP 転送に使用するすべての IP アドレスが含まれています。

    IPv6 VM の場合は、IP 範囲 2600:2d00:1:7::/64 を使用します。

  • IAP TCP 転送を使用してアクセス可能にするすべてのポートへの接続を許可します。たとえば、SSH のポート 22 と RDP のポート 3389 です。

コンソール

vpc-fw-rules ネットワーク内のすべての VM インスタンスへの RDP と SSH のアクセスを許可するには、次の操作を行います。

  1. Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ネットワーク ファイアウォール ポリシー] セクションで、[fw-policy] をクリックします。

  3. [ルールを作成] をクリックします。

  4. [優先度] に「500」と入力します。

  5. [トラフィックの方向] で [上り(内向き)] をオンにします。

  6. [ログ] で [オン] を選択します。

  7. [ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。

  8. [送信元] セクションの [IP 範囲] に「35.235.240.0/20」と入力します。

  9. [プロトコルとポート] セクションで、[指定したプロトコルとポート] を選択します。

  10. [TCP] チェックボックスをオンにし、[ポート] に「22」と「3389」をカンマで区切って入力します。

  11. [作成] をクリックします。

gcloud

vpc-fw-rules ネットワーク内のすべての VM インスタンスへの RDP および SSH アクセスを許可するには、次のコマンドを実行します。

gcloud compute network-firewall-policies rules create 500 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=35.235.240.0/20 \
    --global-firewall-policy \
    --layer4-configs tcp:22,tcp:3389 \
    --enable-logging

Apache サーバーをインストールする

このセクションでは、Apache サーバーをサーバー VM にインストールします。

  1. Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. vm-fw-rules-server VM の [接続] 列で [SSH] をクリックします。

  3. ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。

  4. apache2 パッケージをインストールするには、コマンド プロンプトで次のコマンドを実行します。

    sudo apt update && sudo apt -y install apache2
    

    Apache をインストールすると、オペレーティング システムにより Apache サーバーが自動的に起動します。

  5. Apache が実行されていることを確認するには、次のコマンドを実行します。

    sudo systemctl status apache2 --no-pager
    
  6. Apache ウェブサーバーのデフォルトのウェブページを上書きするには、次のコマンドを実行します。

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    
  7. ブラウザでの SSH ダイアログを閉じます。

接続をテストする

Apache サーバーをサーバー VM にインストールしたら、サーバー VM の内部 IP アドレスを使用してクライアント VM からサーバー VM に接続します。

  1. Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. vm-fw-rules-server VM の [内部 IP] 列から、VM の内部 IP アドレスをコピーします。

  3. vm-fw-rules-client VM の [接続] 列で [SSH] をクリックします。

  4. ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。

  5. 接続を確認するには、次のコマンドを実行します。

    curl INTERNAL_IP -m 2
    

    INTERNAL_IP は、vm-fw-rules-server VM の IP アドレスに置き換えます。

    どの VM にも、すべてのトラフィックを拒否する暗黙的な上り(内向き)ファイアウォール ルールが作成されるため、「Connection timed out」というメッセージが返されるのは想定の動作です。トラフィックを許可するには、ファイアウォール ポリシーに上り(内向き)ルールを追加します。

  6. ブラウザでの SSH ダイアログを閉じます。

グローバル ネットワーク ファイアウォール ポリシーを更新して内部トラフィックを許可する

このセクションでは、クライアント VM のサブネットからの内部トラフィックを許可するようにグローバル ネットワーク ファイアウォール ポリシーを更新します。

コンソール

  1. Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ネットワーク ファイアウォール ポリシー] セクションで、[fw-policy] をクリックします。

  3. [ルールを作成] をクリックします。

  4. [優先度] に「501」と入力します。

  5. [トラフィックの方向] で [上り(内向き)] をオンにします。

  6. [ログ] で [オン] を選択します。

  7. [ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。

  8. [送信元] セクションの [IP 範囲] に「192.168.10.0/24」と入力します。

    IP 範囲 192.168.10.0/24subnet-fw-rules-client に割り当てられます。

  9. [送信先] セクションの [IP タイプ] で、[IPv4] を選択します。[IP 範囲] で、10.0.0.0/24 を指定します。

    IP 範囲 10.0.0.0/24subnet-fw-rules-server に割り当てられます。

  10. [作成] をクリックします。

gcloud

ファイアウォール ポリシーを更新するには、次のコマンドを実行します。

gcloud compute network-firewall-policies rules create 501 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=192.168.10.0/24 \
    --dest-ip-ranges=10.0.0.0/24 \
    --layer4-configs=all \
    --global-firewall-policy \
    --enable-logging

接続をテストする

ファイアウォール ポリシーを作成したら、サーバー VM の内部 IP アドレスを使用して、クライアント VM からサーバー VM に接続します。

  1. Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. vm-fw-rules-server VM の [内部 IP] 列から、VM の内部 IP アドレスをコピーします。

  3. vm-fw-rules-client VM の [接続] 列で [SSH] をクリックします。

  4. ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。

  5. 接続を確認するには、次のコマンドを実行します。

    curl INTERNAL_IP -m 2
    

    INTERNAL_IP は、vm-fw-rules-server VM の IP アドレスに置き換えます。

    想定されるメッセージは <!doctype html><html><body><h1>Hello World!</h1></body></html> です。

  6. ブラウザでの SSH ダイアログを閉じます。

ファイアウォール ログを表示するには、ログを表示するをご覧ください。