AWS - VPC & Networking Basic Information

HackTricks 지원하기

AWS Networking in a Nutshell

VPC네트워크 CIDR을 포함합니다. 예: 10.0.0.0/16 (그의 라우팅 테이블네트워크 ACL 포함).

이 VPC 네트워크는 서브네트워크로 나뉘며, 서브네트워크VPC, 라우팅 테이블네트워크 ACL과 직접 연관됩니다.

그 다음, 서비스에 연결된 네트워크 인터페이스(예: EC2 인스턴스)는 보안 그룹과 함께 서브네트워크연결됩니다.

따라서, 보안 그룹서브네트워크와 관계없이 사용하는 네트워크 인터페이스의 노출된 포트를 제한합니다. 그리고 네트워크 ACL전체 네트워크에 대한 노출된 포트를 제한합니다.

또한, 인터넷에 접근하기 위해 확인해야 할 몇 가지 흥미로운 구성 요소가 있습니다:

  • 서브네트워크공용 IPv4 주소를 자동 할당할 수 있습니다.

  • IPv4 주소를 자동 할당하는 네트워크에서 생성된 인스턴스는 하나를 받을 수 있습니다.

  • 인터넷 게이트웨이VPC에 연결되어야 합니다.

  • Egress-only 인터넷 게이트웨이를 사용할 수도 있습니다.

  • 프라이빗 서브넷NAT 게이트웨이를 두어 해당 프라이빗 서브넷에서 외부 서비스에 연결할 수 있지만, 외부에서 그들에 도달하는 것은 불가능합니다.

  • NAT 게이트웨이는 공용(인터넷 접근) 또는 프라이빗(다른 VPC 접근)일 수 있습니다.

VPC

Amazon 가상 사설 클라우드(Amazon VPC)는 정의한 가상 네트워크에 AWS 리소스를 시작할 수 있게 해줍니다. 이 가상 네트워크는 여러 서브넷, 인터넷 게이트웨이를 통한 인터넷 접근, ACL, 보안 그룹, IP 등을 가집니다.

서브넷

서브넷은 더 높은 수준의 보안을 강화하는 데 도움을 줍니다. 유사한 리소스의 논리적 그룹화는 인프라 전반에 걸쳐 관리 용이성을 유지하는 데 도움을 줍니다.

  • 유효한 CIDR은 /16 넷마스크에서 /28 넷마스크까지입니다.

  • 서브넷은 동시에 서로 다른 가용 영역에 있을 수 없습니다.

  • AWS는 각 서브넷의 첫 세 호스트 IP 주소를 내부 AWS 사용을 위해 예약합니다: 첫 번째 호스트 주소는 VPC 라우터에 사용됩니다. 두 번째 주소는 AWS DNS에 예약되어 있으며, 세 번째 주소는 향후 사용을 위해 예약되어 있습니다.

  • 인터넷에 직접 접근할 수 있는 서브넷공용 서브넷이라고 하며, 프라이빗 서브넷은 그렇지 않습니다.

라우팅 테이블

라우팅 테이블은 VPC 내 서브넷의 트래픽 라우팅을 결정합니다. 이들은 어떤 네트워크 트래픽이 인터넷이나 VPN 연결로 전달되는지를 결정합니다. 일반적으로 다음에 대한 접근을 찾을 수 있습니다:

  • 로컬 VPC

  • NAT

  • 인터넷 게이트웨이 / Egress-only 인터넷 게이트웨이 (VPC에 인터넷 접근을 제공하기 위해 필요).

  • 서브넷을 공용으로 만들기 위해서는 인터넷 게이트웨이생성하고 VPC에 연결해야 합니다.

  • VPC 엔드포인트 (프라이빗 네트워크에서 S3에 접근하기 위해)

다음 이미지를 통해 기본 공용 네트워크와 프라이빗 네트워크의 차이를 확인할 수 있습니다:

ACLs

네트워크 접근 제어 목록(ACLs): 네트워크 ACL은 서브넷으로 들어오고 나가는 네트워크 트래픽을 제어하는 방화벽 규칙입니다. 특정 IP 주소나 범위에 대한 트래픽을 허용하거나 거부하는 데 사용할 수 있습니다.

  • 보안 그룹을 사용하여 접근을 허용/거부하는 것이 가장 일반적이지만, 이는 이미 설정된 역방향 셸을 완전히 차단하는 유일한 방법입니다. 보안 그룹의 수정된 규칙은 이미 설정된 연결을 중단하지 않습니다.

  • 그러나 이는 전체 서브네트워크에 적용되므로, 필요한 기능이 방해받을 수 있으니 주의해야 합니다.

보안 그룹

보안 그룹은 VPC 내 인스턴스에 대한 인바운드 및 아웃바운드 네트워크 트래픽을 제어하는 가상 방화벽입니다. 1 SG와 M 인스턴스의 관계(보통 1 대 1). 일반적으로 이는 인스턴스에서 위험한 포트를 열기 위해 사용됩니다. 예를 들어 포트 22와 같은 경우입니다:

탄력적 IP 주소

_탄력적 IP 주소_는 동적 클라우드 컴퓨팅을 위해 설계된 정적 IPv4 주소입니다. 탄력적 IP 주소는 AWS 계정에 할당되며, 이를 해제할 때까지 귀하의 것입니다. 탄력적 IP 주소를 사용하면 인스턴스나 소프트웨어의 실패를 마스킹하여 주소를 귀하의 계정 내 다른 인스턴스로 신속하게 재매핑할 수 있습니다.

서브넷 간 연결

기본적으로 모든 서브넷은 공용 IP 주소의 자동 할당이 꺼져 있습니다. 그러나 이를 켤 수 있습니다.

라우팅 테이블 내의 로컬 경로는 VPC 서브넷 간의 통신을 가능하게 합니다.

서브넷을 다른 서브넷과 연결할 경우, 다른 서브넷과 연결된 서브넷에 접근할 수 없습니다. 이들과 직접 연결을 생성해야 합니다. 이는 인터넷 게이트웨이에도 적용됩니다. 인터넷에 접근하기 위해 서브넷 연결을 통해 갈 수 없으며, 인터넷 게이트웨이를 서브넷에 할당해야 합니다.

VPC 피어링

VPC 피어링은 두 개 이상의 VPC를 연결할 수 있게 해주며, IPV4 또는 IPV6를 사용하여 마치 동일한 네트워크의 일부인 것처럼 연결합니다.

피어 연결이 설정되면, 한 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은 통신할 수 없습니다. 하나의 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 연결의 귀하 측에 있는 물리적 장치 또는 소프트웨어 애플리케이션입니다.

  • 고객 게이트웨이를 생성하기 위해 AWS에 네트워크 장치(예: 라우터 또는 방화벽)의 라우팅 정보와 공용 IP 주소를 제공합니다.

  • VPN 연결 설정을 위한 참조 지점 역할을 하며 추가 요금이 발생하지 않습니다.

  1. 가상 사설 게이트웨이:

  • 가상 사설 게이트웨이(VPG)는 사이트 간 VPN 연결의 Amazon 측 VPN 집중기입니다.

  • 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로 또는 그 반대로 데이터가 통과할 수 있는 암호화된 링크입니다.

각 VPN 연결에는 고가용성을 위해 동시에 사용할 수 있는 두 개의 VPN 터널이 포함됩니다.

  • 고객 게이트웨이: AWS에 고객 게이트웨이 장치에 대한 정보를 제공하는 AWS 리소스입니다.

  • 고객 게이트웨이 장치: 사이트 간 VPN 연결의 귀하 측에 있는 물리적 장치 또는 소프트웨어 애플리케이션입니다.

  • 가상 사설 게이트웨이: 사이트 간 VPN 연결의 Amazon 측 VPN 집중기입니다. 사이트 간 VPN 연결의 Amazon 측 게이트웨이로 가상 사설 게이트웨이 또는 전이 게이트웨이를 사용합니다.

  • 전이 게이트웨이: VPC와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 전이 허브입니다. 사이트 간 VPN 연결의 Amazon 측 게이트웨이로 전이 게이트웨이 또는 가상 사설 게이트웨이를 사용합니다.

제한 사항

  • 가상 사설 게이트웨이에서 VPN 연결에 대한 IPv6 트래픽은 지원되지 않습니다.

  • AWS VPN 연결은 경로 MTU 발견을 지원하지 않습니다.

사이트 간 VPN을 사용할 때 다음 사항도 고려하십시오.

  • VPC를 공통 온프레미스 네트워크에 연결할 때는 네트워크에 대해 겹치지 않는 CIDR 블록을 사용하는 것이 좋습니다.

클라이언트 VPN

귀하의 머신에서 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 엔드포인트에 대한 셀프 서비스 포털을 활성화할 수 있습니다. 클라이언트는 자격 증명을 사용하여 웹 기반 포털에 로그인하고 클라이언트 VPN 엔드포인트 구성 파일의 최신 버전을 다운로드하거나 AWS에서 제공하는 클라이언트의 최신 버전을 다운로드할 수 있습니다.

제한 사항

  • 클라이언트 CIDR 범위는 연결된 서브넷이 위치한 VPC의 로컬 CIDR과 겹칠 수 없습니다, 또는 클라이언트 VPN 엔드포인트의 라우팅 테이블에 수동으로 추가된 경로와 겹칠 수 없습니다.

  • 클라이언트 CIDR 범위는 최소 /22의 블록 크기를 가져야 하며, /12보다 커서는 안 됩니다.

  • 클라이언트 CIDR 범위의 일부 주소는 클라이언트 VPN 엔드포인트의 가용성 모델을 지원하는 데 사용되며, 클라이언트에게 할당될 수 없습니다. 따라서 지원할 최대 동시 연결 수에 필요한 IP 주소 수의 두 배를 포함하는 CIDR 블록을 할당하는 것이 좋습니다.

  • 클라이언트 VPN 엔드포인트를 생성한 후에는 클라이언트 CIDR 범위를 변경할 수 없습니다.

  • 클라이언트 VPN 엔드포인트와 연결된 서브넷은 반드시 동일한 VPC에 있어야 합니다.

  • 동일한 가용 영역의 여러 서브넷을 클라이언트 VPN 엔드포인트와 연결할 수 없습니다.

  • 클라이언트 VPN 엔드포인트는 전용 테넌시 VPC에서 서브넷 연결을 지원하지 않습니다.

  • 클라이언트 VPN은 IPv4 트래픽만 지원합니다.

  • 클라이언트 VPN은 연방 정보 처리 표준(FIPS) 준수가 아닙니다.

  • 다중 인증(MFA)이 Active Directory에 대해 비활성화된 경우, 사용자 비밀번호는 다음 형식일 수 없습니다.

SCRV1:<base64_encoded_string>:<base64_encoded_string>
  • 셀프 서비스 포털은 상호 인증을 사용하는 클라이언트에 대해 사용할 수 없습니다.

HackTricks 지원하기

Last updated