AWS - VPC & Networking Basic Information

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

AWSネットワーキング要点

VPCには、10.0.0.0/16のようなネットワークCIDRルーティングテーブルおよびネットワークACLを含む)が含まれています。

このVPCネットワークはサブネットに分割されており、サブネットVPCルーティングテーブル、およびネットワークACLと直接関連しています。

その後、サービス(例:EC2インスタンス)にアタッチされたネットワークインターフェースは、セキュリティグループを使用してサブネット接続されます。

したがって、セキュリティグループは、それを使用するネットワークインターフェースの公開ポートを制限し、サブネットには関係なく制限されます。そして、ネットワークACLネットワーク全体の公開ポートを制限します。

さらに、インターネットにアクセスするためには、確認すべき興味深い構成がいくつかあります:

  • サブネットパブリックIPv4アドレスを自動割り当てできます

  • IPv4アドレスを自動割り当てするネットワークに作成されたインスタンスは、1つ取得できます

  • インターネットゲートウェイVPCにアタッチする必要があります

  • Egress-onlyインターネットゲートウェイを使用することもできます

  • プライベートサブネットNATゲートウェイを持つことで、そのプライベートサブネットから外部サービスに接続できますが、外部からは到達できません。

  • NATゲートウェイはパブリック(インターネットへのアクセス)またはプライベート(他のVPCへのアクセス)である可能性があります

VPC

Amazon Virtual Private Cloud(Amazon VPC)を使用すると、定義した仮想ネットワークにAWSリソースを展開できます。この仮想ネットワークには、複数のサブネット、インターネットゲートウェイ(インターネットへのアクセス)、ACL、セキュリティグループ、IPなどが含まれます...

サブネット

サブネットは、同様のリソースの論理的なグループ化を強制するのに役立ちます。インフラ全体での管理の容易さを維持するのにも役立ちます。

  • 有効なCIDRは/16ネットマスクから/28ネットマスクまでです。

  • サブネットは同時に異なる可用性ゾーンに存在できません。

  • 各サブネットの最初の3つのホストIPアドレスは内部AWS使用のために予約されています:最初のホストアドレスはVPCルーター用に使用されます。2番目のアドレスはAWS DNS用に予約され、3番目のアドレスは将来の使用のために予約されています。

  • 直接インターネットにアクセスできるサブネットをパブリックサブネットと呼び、そうでないものをプライベートサブネットと呼びます。

ルートテーブル

ルートテーブルは、VPC内のサブネットのトラフィックルーティングを決定します。インターネットまたはVPN接続にトラフィックを転送するかどうかを決定します。通常、以下へのアクセスが見つかります:

  • ローカルVPC

  • NAT

  • インターネットゲートウェイ/イグレス専用インターネットゲートウェイ(VPCにインターネットアクセスを提供するために必要)

  • サブネットをパブリックにするには、VPCにインターネットゲートウェイ作成してアタッチする必要があります。

  • VPCエンドポイント(プライベートネットワークからS3にアクセスするため)

次の画像では、デフォルトのパブリックネットワークとプライベートネットワークの違いを確認できます:

ACLs

ネットワークアクセス制御リスト(ACLs):ネットワークACLは、サブネットへの着信および送信ネットワークトラフィックを制御するファイアウォールルールです。特定のIPアドレスまたは範囲へのトラフィックを許可または拒否するために使用できます。

  • アクセスを許可/拒否する際には、セキュリティグループを使用することが最も一般的ですが、これは確立された逆シェルを完全に切断する唯一の方法です。セキュリティグループの変更されたルールは、すでに確立された接続を停止しません

  • ただし、これはサブネット全体に適用されるため、必要な機能が妨害される可能性があるので、禁止する際には注意してください

セキュリティグループ

セキュリティグループは、VPC内のインスタンスへのインバウンドおよびアウトバウンドのネットワークトラフィックを制御する仮想ファイアウォールです。通常、1つのセキュリティグループは複数のインスタンスに関連付けられます(通常は1対1)。 通常、これはインスタンス内の危険なポートを開くために使用されます。例えば、ポート22などです。

Elastic IPアドレス

_Elastic IPアドレス_は、動的クラウドコンピューティング向けに設計された静的IPv4アドレスです。Elastic IPアドレスはAWSアカウントに割り当てられ、解放するまでそのアドレスはあなたのものです。Elastic IPアドレスを使用することで、インスタンスやソフトウェアの障害を別のインスタンスに迅速に再マッピングすることができます。

サブネット間の接続

デフォルトでは、すべてのサブネットはパブリックIPアドレスの自動割り当てがオフになっていますが、オンにすることができます。

ルートテーブル内のローカルルートにより、VPCサブネット間の通信が可能になります。

異なるサブネット間を接続する場合、他のサブネットに接続されたサブネットにアクセスすることはできません。直接接続する必要があります。これはインターネットゲートウェイにも適用されます。インターネットにアクセスするには、サブネットにインターネットゲートウェイを割り当てる必要があります。

VPCピアリング

VPCピアリングを使用すると、IPv4またはIPv6を使用して、まるで同じネットワークの一部であるかのように、2つ以上のVPCを接続できます。

ピア接続が確立されると、1つのVPCのリソースが他のVPCのリソースにアクセスできます。VPC間の接続は既存のAWSネットワークインフラストラクチャを介して実装されているため、高い可用性を持ち、帯域幅の制約がありません。ピア接続はまるで同じネットワークの一部であるかのように動作するため、使用できるCIDRブロック範囲に制限があります。 VPCに重複するCIDR範囲がある場合、VPCをピアリングすることはできません。 各AWS VPCはそのピアとのみ通信します。例えば、VPC 1とVPC 2の間にピアリング接続があり、VPC 2とVPC 3の間にも接続がある場合、VPC 1と2は直接通信できますし、VPC 2と3も直接通信できますが、VPC 1と3は通信できません。他のVPCを経由して別のVPCにアクセスすることはできません。

VPCフローログ

VPC内には、異なるサブネット間、パブリックおよびプライベートの両方のリソース間、およびVPCピアリング接続を介して異なるVPC間で通信する数百、または数千のリソースがある可能性があります。VPCフローログを使用すると、VPC内のリソースのネットワークインターフェース間を流れるIPトラフィック情報をキャプチャできます。

S3アクセスログやCloudFrontアクセスログとは異なり、VPCフローログによって生成されるログデータはS3に保存されません。代わりに、キャプチャされたログデータはCloudWatchログに送信されます。

制限事項:

  • VPCピアリング接続を実行している場合、同じアカウント内のピアリングされたVPCのフローログのみを表示できます。

  • まだEC2-Classic環境でリソースを実行している場合、インターフェースから情報を取得することはできません。

  • VPCフローログが作成されると、変更できません。VPCフローログの構成を変更するには、削除してから新しいものを作成する必要があります。

  • 次のトラフィックはログで監視およびキャプチャされません。VPC内のDHCPトラフィック、Amazon DNSサーバー宛てのインスタンスからのトラフィック。

  • VPCデフォルトルーターのIPアドレス宛てのトラフィック、および以下のアドレス間のトラフィック、インスタンスメタデータを収集するために使用される169.254.169.254、Amazon Time Sync Serviceに使用される169.254.169.123。

  • WindowsインスタンスからのAmazon Windowsアクティベーションライセンスに関連するトラフィック

  • ネットワークロードバランサーインターフェースとエンドポイントネットワークインターフェース間のトラフィック

CloudWatchロググループにデータを公開する各ネットワークインターフェースごとに、異なるログストリームが使用されます。そして、それぞれのストリーム内には、ログエントリの内容を示すフローログイベントデータが含まれます。これらのログは、おおよそ10から15分のウィンドウでデータをキャプチャします。

VPN

基本的なAWS VPNコンポーネント

  1. カスタマーゲートウェイ:

  • カスタマーゲートウェイは、VPN接続のあなた側を表すためにAWSで作成するリソースです。

  • これは、サイト間VPN接続のあなた側にある物理デバイスまたはソフトウェアアプリケーションです。

  • ルーティング情報とネットワークデバイス(ルーターやファイアウォールなど)のパブリックIPアドレスをAWSに提供して、カスタマーゲートウェイを作成します。

  • VPN接続の設定の参照点となり、追加料金は発生しません。

  1. 仮想プライベートゲートウェイ:

  • 仮想プライベートゲートウェイ(VPG)は、サイト間VPN接続のAmazon側のVPNコンセントレータです。

  • VPGはVPCにアタッチされ、VPN接続のターゲットとして機能します。

  • VPGはVPN接続のAWS側エンドポイントです。

  • VPCとオンプレミスネットワーク間の安全な通信を処理します。

  1. サイト間VPN接続:

  • サイト間VPN接続は、安全なIPsec VPNトンネルを介して、オンプレミスネットワークをVPCに接続します。

  • このタイプの接続には、カスタマーゲートウェイと仮想プライベートゲートウェイが必要です。

  • データセンターやネットワークとAWS環境間の安全で安定した一貫した通信に使用されます。

  • 通常、定期的で長期的な接続に使用され、接続経由で転送されるデータ量に基づいて請求されます。

  1. クライアントVPNエンドポイント:

  • クライアントVPNエンドポイントは、クライアントVPNセッションを有効にし管理するためにAWSで作成するリソースです。

  • 個々のデバイス(ラップトップ、スマートフォンなど)がAWSリソースやオンプレミスネットワークに安全に接続できるように使用されます。

  • サイト間VPNとは異なり、ネットワーク全体を接続するのではなく、個々のクライアント向けに設計されています。

  • クライアントVPNでは、各クライアントデバイスがVPNクライアントソフトウェアを使用して安全な接続を確立します。

サイト間VPN

オンプレミスネットワークをVPCと接続します。

  • VPN接続: オンプレミス機器とVPC間の安全な接続。

  • VPNトンネル: データが顧客ネットワークからAWSへ、またはAWSから通過できる暗号化されたリンク。

各VPN接続には、高可用性のために同時に使用できる2つのVPNトンネルが含まれます。

  • カスタマーゲートウェイ: AWSにお客様のカスタマーゲートウェイデバイスに関する情報を提供するリソース。

  • カスタマーゲートウェイデバイス: サイト間VPN接続のあなた側にある物理デバイスまたはソフトウェアアプリケーション。

  • 仮想プライベートゲートウェイ: サイト間VPN接続のAmazon側のVPNコンセントレータ。Amazon側のサイト間VPN接続のゲートウェイとして、仮想プライベートゲートウェイまたはトランジットゲートウェイを使用します。

  • トランジットゲートウェイ: VPCとオンプレミスネットワークを相互接続するために使用できるトランジットハブ。Amazon側のサイト間VPN接続のゲートウェイとして、トランジットゲートウェイまたは仮想プライベートゲートウェイを使用します。

制限事項

  • 仮想プライベートゲートウェイ上のVPN接続ではIPv6トラフィックはサポートされていません。

  • AWS VPN接続はPath MTU Discoveryをサポートしていません。

さらに、Site-to-Site VPNを使用する際には以下を考慮してください。

クライアントVPN

自分のマシンからVPCに接続

コンセプト

  • クライアントVPNエンドポイント: クライアントVPNセッションを有効にし管理するために作成および構成するリソース。すべてのクライアントVPNセッションが終了するリソースです。

  • ターゲットネットワーク: ターゲットネットワークは、クライアントVPNエンドポイントに関連付けるネットワークです。VPCのサブネットはターゲットネットワークです。サブネットをクライアントVPNエンドポイントに関連付けると、VPNセッションを確立できます。クライアントVPNエンドポイントに複数のサブネットを関連付けることで高可用性を実現できます。すべてのサブネットは同じVPCに属している必要があります。各サブネットは異なるアベイラビリティーゾーンに属している必要があります。

  • ルート: 各クライアントVPNエンドポイントには、利用可能な宛先ネットワークルートを記述するルートテーブルがあります。ルートテーブルの各ルートは、特定のリソースやネットワークへのトラフィックのパスを指定します。

  • 認証ルール: 認証ルールはネットワークにアクセスできるユーザーを制限します。指定されたネットワークについて、アクセスが許可されるActive DirectoryまたはIdPグループを構成します。このグループに所属するユーザーのみが指定されたネットワークにアクセスできます。デフォルトでは認証ルールはありませんので、ユーザーがリソースやネットワークにアクセスできるようにするには認証ルールを構成する必要があります。

  • クライアント: VPNセッションを確立するためにクライアントVPNエンドポイントに接続するエンドユーザー。エンドユーザーはOpenVPNクライアントをダウンロードし、作成したクライアントVPN構成ファイルを使用してVPNセッションを確立する必要があります。

  • クライアントCIDR範囲: クライアントIPアドレスを割り当てるためのIPアドレス範囲。クライアントVPNエンドポイントへの各接続には、クライアントCIDR範囲から一意のIPアドレスが割り当てられます。クライアントCIDR範囲を選択します。例: 10.2.0.0/16

  • クライアントVPNポート: AWSクライアントVPNはTCPおよびUDPの両方のポート443と1194をサポートしています。デフォルトはポート443です。

  • クライアントVPNネットワークインターフェイス: サブネットをクライアントVPNエンドポイントに関連付けると、そのサブネットにクライアントVPNネットワークインターフェイスが作成されます。クライアントVPNエンドポイントからVPCに送信されるトラフィックは、クライアントVPNネットワークインターフェイスを介して送信されます。その後、クライアントCIDR範囲のソースIPアドレスがクライアントVPNネットワークインターフェイスのIPアドレスに変換されるソースネットワークアドレス変換(SNAT)が適用されます。

  • 接続ログ: クライアントVPNエンドポイントの接続ログを有効にして接続イベントを記録できます。この情報を使用してフォレンジックを実行したり、クライアントVPNエンドポイントの使用状況を分析したり、接続の問題をデバッグしたりできます。

  • セルフサービスポータル: クライアントVPNエンドポイントのセルフサービスポータルを有効にできます。クライアントは資格情報を使用してWebベースのポータルにログインし、作成したクライアントVPNエンドポイント構成ファイルの最新バージョン、またはAWSが提供するクライアントの最新バージョンをダウンロードできます。

制限事項

  • クライアントCIDR範囲は、関連付けられたサブネットが存在するVPCのローカルCIDRと重複してはいけません、またはクライアントVPNエンドポイントのルートテーブルに手動で追加されたルートとも重複してはいけません。

  • クライアントCIDR範囲は少なくとも/22のブロックサイズでなければならず、/12を超えてはいけません

  • クライアントCIDR範囲のアドレスの一部は、クライアントVPNエンドポイントの可用性モデルをサポートするために使用され、クライアントに割り当てることはできません。したがって、クライアントVPNエンドポイントでサポートする最大同時接続数に必要なIPアドレスの2倍を含むCIDRブロックを割り当てることをお勧めします。

  • クライアントCIDR範囲は、クライアントVPNエンドポイントを作成した後に変更できません

  • クライアントVPNエンドポイントに関連付けられたサブネットは同じVPC内にある必要があります。

  • 同じアベイラビリティーゾーンからの複数のサブネットをクライアントVPNエンドポイントに関連付けることはできません

  • クライアントVPNエンドポイントは、専用テナンシVPCでのサブネット関連付けをサポートしません。

  • クライアントVPNはIPv4トラフィックのみをサポートしています。

  • クライアントVPNはFederal Information Processing Standards(FIPS)に準拠していません

  • Active Directoryの多要素認証(MFA)が無効になっている場合、ユーザーパスワードは次の形式にすることはできません。

SCRV1:<base64_encoded_string>:<base64_encoded_string>
  • セルフサービスポータルは、相互認証を使用して認証するクライアントには利用できません

最終更新