AWS - VPC & Networking Basic Information
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
A VPC contains a network CIDR like 10.0.0.0/16 (with its routing table and network 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間の接続は、既存の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分のウィンドウ内でデータをキャプチャします。
Customer Gateway:
カスタマーゲートウェイは、VPN接続のあなたの側を表すためにAWSで作成するリソースです。
これは、サイト間VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーションです。
ルーティング情報とネットワークデバイス(ルーターやファイアウォールなど)のパブリックIPアドレスをAWSに提供してカスタマーゲートウェイを作成します。
VPN接続を設定するための参照ポイントとして機能し、追加料金は発生しません。
Virtual Private Gateway:
仮想プライベートゲートウェイ(VPG)は、サイト間VPN接続のAmazon側のVPN集中装置です。
VPCに接続され、VPN接続のターゲットとして機能します。
VPGはVPN接続のAWS側エンドポイントです。
VPCとオンプレミスネットワーク間の安全な通信を処理します。
Site-to-Site VPN Connection:
サイト間VPN接続は、オンプレミスネットワークをVPCに安全なIPsec VPNトンネルを介して接続します。
このタイプの接続には、カスタマーゲートウェイと仮想プライベートゲートウェイが必要です。
データセンターまたはネットワークとAWS環境間の安全で安定した一貫した通信に使用されます。
通常、定期的で長期的な接続に使用され、接続を介して転送されるデータ量に基づいて請求されます。
Client VPN Endpoint:
クライアントVPNエンドポイントは、クライアントVPNセッションを有効にし、管理するためにAWSで作成するリソースです。
個々のデバイス(ラップトップ、スマートフォンなど)がAWSリソースまたはオンプレミスネットワークに安全に接続できるようにするために使用されます。
サイト間VPNとは異なり、個々のクライアント向けに設計されています。
クライアントVPNでは、各クライアントデバイスがVPNクライアントソフトウェアを使用して安全な接続を確立します。
オンプレミスネットワークをVPCに接続します。
VPN接続:オンプレミス機器とVPC間の安全な接続。
VPNトンネル:顧客ネットワークからAWSへのデータが通過できる暗号化されたリンク。
各VPN接続には、同時に使用できる2つのVPNトンネルが含まれています。
カスタマーゲートウェイ:AWSに顧客ゲートウェイデバイスに関する情報を提供するAWSリソース。
カスタマーゲートウェイデバイス:サイト間VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーション。
仮想プライベートゲートウェイ:サイト間VPN接続のAmazon側のVPN集中装置。サイト間VPN接続のAmazon側のゲートウェイとして仮想プライベートゲートウェイまたはトランジットゲートウェイを使用します。
トランジットゲートウェイ:VPCとオンプレミスネットワークを相互接続するために使用できるトランジットハブ。サイト間VPN接続のAmazon側のゲートウェイとしてトランジットゲートウェイまたは仮想プライベートゲートウェイを使用します。
IPv6トラフィックは、仮想プライベートゲートウェイのVPN接続ではサポートされていません。
AWS VPN接続は、Path MTU Discoveryをサポートしていません。
さらに、サイト間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で無効になっている場合、ユーザーパスワードは次の形式であることはできません。
セルフサービスポータルは、相互認証を使用して認証されるクライアントには利用できません。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)