AWS - VPC & Networking Basic Information
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
VPCは、10.0.0.0/16のようなネットワークCIDRを含みます(そのルーティングテーブルとネットワークACLを持っています)。
このVPCネットワークはサブネットに分割されており、サブネットはVPC、ルーティングテーブル、およびネットワークACLに直接関連しています。
次に、サービス(EC2インスタンスなど)に接続されたネットワークインターフェースは、セキュリティグループを使用してサブネットに接続されます。
したがって、セキュリティグループは、サブネットに関係なく、それを使用するネットワークインターフェースの公開ポートを制限します。そして、ネットワークACLは全体のネットワークに対して公開ポートを制限します。
さらに、インターネットにアクセスするために確認すべきいくつかの興味深い設定があります:
サブネットはパブリックIPv4アドレスを自動割り当てできます
IPv4アドレスを自動割り当てできるネットワーク内で作成されたインスタンスは、1つを取得できます
インターネットゲートウェイはVPCに接続する必要があります
Egress-onlyインターネットゲートウェイを使用することもできます
プライベートサブネットにNATゲートウェイを持つこともでき、そこから外部サービスに接続することが可能ですが、外部からそれらに到達することはできません。
NATゲートウェイはパブリック(インターネットへのアクセス)またはプライベート(他のVPCへのアクセス)である可能性があります。
Amazon Virtual Private Cloud(Amazon VPC)は、定義した仮想ネットワークにAWSリソースを起動することを可能にします。この仮想ネットワークには、いくつかのサブネット、インターネットゲートウェイ、ACL、セキュリティグループ、IPが含まれます...
サブネットは、より高いレベルのセキュリティを強化するのに役立ちます。類似リソースの論理グループ化は、インフラストラクチャ全体の管理の容易さを維持するのにも役立ちます。
有効なCIDRは、/16ネットマスクから/28ネットマスクまでです。
サブネットは同時に異なるアベイラビリティゾーンに存在することはできません。
AWSは各サブネットの最初の3つのホストIPアドレスを 内部AWS使用のために予約しています:最初のホストアドレスはVPCルーターに使用されます。2番目のアドレスはAWS DNS用に予約され、3番目のアドレスは将来の使用のために予約されています。
インターネットに直接アクセスできるサブネットはパブリックサブネットと呼ばれ、プライベートサブネットはそうではありません。
ルートテーブルは、VPC内のサブネットのトラフィックルーティングを決定します。どのネットワークトラフィックがインターネットまたはVPN接続に転送されるかを決定します。通常、以下へのアクセスが見つかります:
ローカルVPC
NAT
インターネットゲートウェイ / Egress-onlyインターネットゲートウェイ(VPCにインターネットアクセスを提供するために必要です)。
サブネットをパブリックにするには、インターネットゲートウェイを作成してVPCに接続する必要があります。
VPCエンドポイント(プライベートネットワークからS3にアクセスするため)
以下の画像では、デフォルトのパブリックネットワークとプライベートネットワークの違いを確認できます:
ネットワークアクセス制御リスト(ACL):ネットワークACLは、サブネットへの入出力ネットワークトラフィックを制御するファイアウォールルールです。特定のIPアドレスまたは範囲へのトラフィックを許可または拒否するために使用できます。
アクセスを許可/拒否するためにセキュリティグループを使用することが最も一般的ですが、これは確立されたリバースシェルを完全に切断する唯一の方法です。セキュリティグループのルールを変更しても、すでに確立された接続は停止しません。
ただし、これは全体のサブネットに適用されるため、必要な機能が妨げられる可能性があるため、注意が必要です。
セキュリティグループは、VPC内のインスタンスへの入出力ネットワークトラフィックを制御する仮想ファイアウォールです。1つのSGとMインスタンスの関係(通常は1対1)。 通常、これはインスタンス内の危険なポートを開くために使用されます。例えば、ポート22など:
_Elastic IPアドレス_は、動的クラウドコンピューティング用に設計された静的IPv4アドレスです。Elastic IPアドレスは、あなたのAWSアカウントに割り当てられ、解放するまであなたのものです。Elastic IPアドレスを使用することで、インスタンスやソフトウェアの障害をマスクし、アカウント内の別のインスタンスにアドレスを迅速に再マッピングできます。
デフォルトでは、すべてのサブネットはパブリックIPアドレスの自動割り当てがオフになっていますが、オンにすることができます。
ルートテーブル内のローカルルートは、VPCサブネット間の通信を可能にします。
異なるサブネットと接続している場合、他のサブネットに接続されたサブネットにアクセスすることはできません。直接接続を作成する必要があります。これはインターネットゲートウェイにも適用されます。インターネットにアクセスするためにサブネット接続を通過することはできず、インターネットゲートウェイをサブネットに割り当てる必要があります。
VPCピアリングは、2つ以上のVPCを接続することを可能にします。IPV4またはIPV6を使用し、同じネットワークの一部であるかのように接続します。
ピア接続が確立されると、1つのVPC内のリソースが他のVPC内のリソースにアクセスできます。VPC間の接続は、既存のAWSネットワークインフラストラクチャを通じて実装されるため、高可用性で帯域幅のボトルネックはありません。ピア接続は同じネットワークの一部であるかのように動作するため、使用できるCIDRブロック範囲に制限があります。 VPCのCIDR範囲が重複または重複している場合、VPCをピアリングすることはできません。 各AWS VPCはそのピアとのみ通信します。例えば、VPC 1とVPC 2の間にピア接続があり、VPC 2とVPC 3の間に別の接続がある場合、VPC 1とVPC 2は直接通信でき、VPC 2とVPC 3も同様ですが、VPC 1とVPC 3は通信できません。1つのVPCを通じて別のVPCにルーティングすることはできません。
VPC内には、異なるサブネット間で通信する数百または数千のリソースが存在する可能性があります。VPC Flow Logsを使用すると、VPC内のリソースのネットワークインターフェース間で流れるIPトラフィック情報をキャプチャできます。
S3アクセスログやCloudFrontアクセスログとは異なり、VPC Flow Logsによって生成されたログデータはS3に保存されません。代わりに、キャプチャされたログデータはCloudWatchログに送信されます。
制限:
VPCピア接続を実行している場合、同じアカウント内のピアVPCのフローログのみを見ることができます。
EC2-Classic環境内でリソースを実行している場合、残念ながらそのインターフェースから情報を取得することはできません。
VPC Flow Logが作成されると、変更することはできません。VPC Flow Logの設定を変更するには、それを削除して新しいものを再作成する必要があります。
次のトラフィックはログによって監視およびキャプチャされません。VPC内のDHCPトラフィック、Amazon DNSサーバー宛てのインスタンスからのトラフィック。
VPCデフォルトルーターのIPアドレス宛てのトラフィックおよび次のアドレスとの間のトラフィック、169.254.169.254(インスタンスメタデータを取得するために使用)および169.254.169.123(Amazon Time Sync Serviceに使用)。
WindowsインスタンスからのAmazon Windowsアクティベーションライセンスに関連するトラフィック
ネットワークロードバランサーインターフェースとエンドポイントネットワークインターフェース間のトラフィック
CloudWatchロググループにデータを公開する各ネットワークインターフェースは、異なるログストリームを使用します。そして、これらのストリーム内には、ログエントリの内容を示すフローログイベントデータがあります。これらのログは、約10〜15分のウィンドウ内でデータをキャプチャします。
カスタマーゲートウェイ:
カスタマーゲートウェイは、VPN接続のあなたの側を表すためにAWSで作成するリソースです。
これは、Site-to-Site VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーションです。
ルーティング情報とネットワークデバイス(ルーターやファイアウォールなど)のパブリックIPアドレスをAWSに提供してカスタマーゲートウェイを作成します。
VPN接続を設定するための参照ポイントとして機能し、追加料金は発生しません。
仮想プライベートゲートウェイ:
仮想プライベートゲートウェイ(VPG)は、Site-to-Site VPN接続のAmazon側のVPN集中装置です。
VPCに接続され、VPN接続のターゲットとして機能します。
VPGはVPN接続のAWS側エンドポイントです。
VPCとオンプレミスネットワーク間の安全な通信を処理します。
Site-to-Site VPN接続:
Site-to-Site VPN接続は、オンプレミスネットワークをVPCに安全なIPsec VPNトンネルを介して接続します。
このタイプの接続には、カスタマーゲートウェイと仮想プライベートゲートウェイが必要です。
データセンターやネットワークとAWS環境間の安全で安定した一貫した通信に使用されます。
通常、定期的で長期的な接続に使用され、接続を介して転送されるデータ量に基づいて請求されます。
クライアントVPNエンドポイント:
クライアントVPNエンドポイントは、クライアントVPNセッションを有効にし、管理するためにAWSで作成するリソースです。
個々のデバイス(ラップトップ、スマートフォンなど)がAWSリソースまたはオンプレミスネットワークに安全に接続できるようにするために使用されます。
Site-to-Site VPNとは異なり、個々のクライアント向けに設計されています。
クライアントVPNでは、各クライアントデバイスがVPNクライアントソフトウェアを使用して安全な接続を確立します。
オンプレミスネットワークをVPCに接続します。
VPN接続:オンプレミス機器とVPC間の安全な接続。
VPNトンネル:顧客ネットワークからAWSへのデータが通過できる暗号化されたリンク。
各VPN接続には、同時に使用できる2つのVPNトンネルが含まれています。
カスタマーゲートウェイ:AWSに顧客ゲートウェイデバイスに関する情報を提供するAWSリソース。
カスタマーゲートウェイデバイス:Site-to-Site VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーション。
仮想プライベートゲートウェイ:Site-to-Site VPN接続のAmazon側のVPN集中装置。Site-to-Site VPN接続のAmazon側のゲートウェイとして仮想プライベートゲートウェイまたはトランジットゲートウェイを使用します。
トランジットゲートウェイ:VPCとオンプレミスネットワークを相互接続するために使用できるトランジットハブ。Site-to-Site VPN接続のAmazon側のゲートウェイとしてトランジットゲートウェイまたは仮想プライベートゲートウェイを使用します。
IPv6トラフィックは、仮想プライベートゲートウェイのVPN接続ではサポートされていません。
AWS VPN接続は、Path MTU Discoveryをサポートしていません。
さらに、Site-to-Site VPNを使用する際には、次の点を考慮してください。
VPCを共通のオンプレミスネットワークに接続する場合、ネットワークのCIDRブロックが重複しないようにすることをお勧めします。
あなたのマシンからVPCに接続します
クライアントVPNエンドポイント:クライアントVPNセッションを有効にし、管理するために作成および構成するリソースです。すべてのクライアントVPNセッションが終了するリソースです。
ターゲットネットワーク:クライアントVPNエンドポイントに関連付けるネットワークです。VPCのサブネットはターゲットネットワークです。サブネットをクライアントVPNエンドポイントに関連付けることで、VPNセッションを確立できます。高可用性のために複数のサブネットをクライアントVPNエンドポイントに関連付けることができます。すべてのサブネットは同じVPCからでなければなりません。各サブネットは異なるアベイラビリティゾーンに属する必要があります。
ルート:各クライアントVPNエンドポイントには、利用可能な宛先ネットワークルートを説明するルートテーブルがあります。ルートテーブル内の各ルートは、特定のリソースまたはネットワークへのトラフィックのパスを指定します。
認可ルール:認可ルールは、ネットワークにアクセスできるユーザーを制限します。指定されたネットワークに対して、アクセスを許可されているActive DirectoryまたはIDプロバイダー(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ネットワークインターフェースを介して送信されます。その後、ソースネットワークアドレス変換(SNAT)が適用され、クライアントCIDR範囲からのソースIPアドレスがクライアントVPNネットワークインターフェースIPアドレスに変換されます。
接続ログ:クライアントVPNエンドポイントの接続イベントをログに記録するために接続ログを有効にできます。この情報を使用してフォレンジックを実行したり、クライアントVPNエンドポイントの使用状況を分析したり、接続の問題をデバッグしたりできます。
セルフサービスポータル:クライアントVPNエンドポイントのセルフサービスポータルを有効にできます。クライアントは、自分の資格情報を使用してWebベースのポータルにログインし、クライアントVPNエンドポイント構成ファイルの最新バージョンをダウンロードしたり、AWSが提供するクライアントの最新バージョンをダウンロードしたりできます。
クライアントCIDR範囲は、関連付けられたサブネットが存在するVPCのローカルCIDRと重複してはなりません。また、クライアントVPNエンドポイントのルートテーブルに手動で追加されたルートとも重複してはなりません。
クライアントCIDR範囲は、少なくとも/22のブロックサイズを持ち、/12を超えてはなりません。
クライアントCIDR範囲内の一部のアドレスは、クライアントVPNエンドポイントの可用性モデルをサポートするために使用され、クライアントに割り当てることはできません。したがって、サポートする最大同時接続数の2倍のIPアドレスを含むCIDRブロックを割り当てることをお勧めします。
クライアントCIDR範囲は、クライアントVPNエンドポイントを作成した後に変更することはできません。
クライアントVPNエンドポイントに関連付けられたサブネットは、同じVPC内に存在する必要があります。
クライアントVPNエンドポイントに同じアベイラビリティゾーンから複数のサブネットを関連付けることはできません。
クライアントVPNエンドポイントは、専用テナンシーVPC内のサブネットの関連付けをサポートしていません。
クライアントVPNはIPv4トラフィックのみをサポートします。
クライアントVPNは連邦情報処理基準(FIPS)に準拠していません。
マルチファクター認証(MFA)がActive Directoryで無効になっている場合、ユーザーパスワードは次の形式であることはできません。
セルフサービスポータルは、相互認証を使用して認証されるクライアントには利用できません。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)