Az - Azure Network
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)
Azure 내의 네트워크는 클라우드 컴퓨팅 플랫폼의 필수적인 부분으로 기능하며, 다양한 Azure 서비스와 리소스 간의 연결 및 통신을 가능하게 합니다. Azure의 네트워크 아키텍처는 매우 확장 가능하고, 안전하며, 사용자 정의가 가능하도록 설계되었습니다.
Azure의 핵심은 사용자가 Azure 클라우드 내에서 격리된 네트워크를 생성할 수 있도록 하는 **가상 네트워크 (VNet)**를 제공합니다. 이러한 VNet 내에서 가상 머신, 애플리케이션 및 데이터베이스와 같은 리소스를 안전하게 호스팅하고 관리할 수 있습니다. Azure의 네트워킹은 클라우드 내의 통신(즉, Azure 서비스 간의 통신)과 외부 네트워크 및 인터넷과의 연결을 지원합니다.
보안은 Azure 네트워킹의 중요한 측면으로, 데이터 보호, 접근 관리 및 준수를 보장하기 위한 다양한 도구와 서비스가 제공됩니다. 이러한 보안 조치에는 방화벽, 네트워크 보안 그룹, 및 암호화 기능이 포함되어 있어 트래픽 및 접근에 대한 높은 수준의 제어를 가능하게 합니다.
전반적으로 Azure의 네트워킹 기능은 유연성을 제공하도록 설계되어 있으며, 사용자가 특정 애플리케이션 및 작업 부하 요구에 맞는 네트워크 환경을 생성할 수 있도록 하면서 보안과 신뢰성을 강하게 강조합니다.
Azure의 VNet은 본질적으로 클라우드 내에서 자신의 네트워크를 나타냅니다. 이는 귀하의 구독에 전념하는 Azure 클라우드의 논리적 격리입니다. VNet을 사용하면 Azure에서 가상 사설 네트워크(VPN)를 프로비저닝하고 관리할 수 있으며, 가상 머신(VM), 데이터베이스 및 애플리케이션 서비스와 같은 여러 유형의 Azure 리소스를 호스팅하고 관리하는 데 사용할 수 있습니다.
VNet은 IP 주소 범위, 서브넷 생성, 라우트 테이블 및 네트워크 게이트웨이를 포함하여 네트워크 설정에 대한 완전한 제어를 제공합니다.
서브넷은 VNet 내의 IP 주소 범위입니다. 조직 및 보안을 위해 VNet을 여러 서브넷으로 나눌 수 있습니다. VNet의 각 서브넷은 네트워크 및 애플리케이션 아키텍처에 따라 리소스를 격리하고 그룹화하는 데 사용할 수 있습니다.
또한, 서브넷을 사용하면 VNet을 하나 이상의 서브 네트워크로 분할할 수 있으며, 리소스가 사용할 수 있는 IP 주소 범위를 제공합니다.
예를 들어, MyVNet
이라는 이름의 VNet이 있고 IP 주소 범위가 10.0.0.0/16
인 경우, 이 VNet 내에 Subnet-1
이라는 서브넷을 생성할 수 있으며, IP 주소 범위는 10.0.0.0/24
로 웹 서버를 호스팅하는 데 사용할 수 있습니다. 또 다른 서브넷인 Subnet-2
는 10.0.1.0/24
범위를 사용하여 데이터베이스 서버에 사용할 수 있습니다. 이러한 분할은 네트워크 내에서 효율적인 관리 및 보안 제어를 가능하게 합니다.
Azure 계정의 모든 VNet 및 서브넷을 나열하려면 Azure Command-Line Interface (CLI)를 사용할 수 있습니다. 단계는 다음과 같습니다:
Azure에서 **네트워크 보안 그룹 (NSG)**는 Azure 가상 네트워크 (VNet) 내의 Azure 리소스에 대한 네트워크 트래픽을 필터링하는 주요 기능을 수행합니다. 이는 네트워크 트래픽의 흐름을 세밀하게 규정하는 보안 규칙 세트를 포함하고 있습니다.
NSG의 주요 측면은 다음과 같습니다:
트래픽 제어: 각 NSG는 다양한 Azure 리소스와 관련된 인바운드 및 아웃바운드 네트워크 트래픽을 허용하거나 차단하는 데 중요한 역할을 하는 규칙을 포함합니다.
규칙 구성 요소: NSG 내의 규칙은 매우 구체적이며, 소스/목적지 IP 주소, 포트 및 프로토콜과 같은 기준에 따라 트래픽을 필터링합니다. 이러한 구체성은 네트워크 트래픽의 세밀한 관리를 가능하게 합니다.
보안 강화: NSG는 승인된 트래픽만이 Azure 리소스에 들어오거나 나갈 수 있도록 보장함으로써 네트워크 인프라의 보안 태세를 강화하는 데 중요한 역할을 합니다.
VNet 내의 서브넷이나 특정 가상 머신에 MyNSG
라는 NSG가 적용되어 있다고 가정해 보십시오. 다음과 같은 규칙을 생성할 수 있습니다:
모든 소스에서 웹 서버로의 HTTP 트래픽(포트 80)을 허용하는 인바운드 규칙.
특정 목적지 IP 주소 범위로의 SQL 트래픽(포트 1433)만을 허용하는 아웃바운드 규칙.
Azure Firewall는 Azure Virtual Network 리소스를 보호하는 관리형 클라우드 기반 네트워크 보안 서비스입니다. 이는 내장된 고가용성 및 확장성 기능을 갖춘 완전한 상태 저장 방화벽 서비스입니다.
Azure Firewall은 NSG보다 더 발전된 기능을 제공하며, 여기에는 애플리케이션 수준 필터링, 네트워크 수준 필터링, 위협 인텔리전스 기반 필터링, 로깅 및 분석을 위한 Azure Monitor와의 통합이 포함됩니다. 아웃바운드, 인바운드, 스포크 간, VPN 및 ExpressRoute 트래픽을 필터링할 수 있습니다. 방화벽 규칙은 FQDN(정규화된 도메인 이름), IP 주소 및 포트를 기반으로 생성할 수 있습니다.
범위:
NSG: 서브넷 또는 네트워크 인터페이스 수준에서 작동합니다. 네트워크 인터페이스(NIC), VM 또는 서브넷에서 들어오고 나가는 트래픽의 기본 필터링을 제공하기 위해 설계되었습니다.
Azure Firewall: VNet 수준에서 작동하여 더 넓은 보호 범위를 제공합니다. 가상 네트워크 리소스를 보호하고 VNet으로 들어오고 나가는 트래픽을 관리하도록 설계되었습니다.
기능:
NSG: IP 주소, 포트 및 프로토콜을 기반으로 한 기본 필터링 기능을 제공합니다. 애플리케이션 수준 검사 또는 위협 인텔리전스와 같은 고급 기능을 지원하지 않습니다.
Azure Firewall: 애플리케이션 수준(계층 7) 트래픽 필터링, 위협 인텔리전스 기반 필터링, 네트워크 트래픽 필터링 등과 같은 고급 기능을 제공합니다. 또한 여러 개의 공용 IP 주소를 지원합니다.
사용 사례:
NSG: 기본 네트워크 수준 트래픽 필터링에 적합합니다.
Azure Firewall: 애플리케이션 수준 제어, 로깅 및 위협 인텔리전스가 필요한 더 복잡한 필터링 시나리오에 적합합니다.
관리 및 모니터링:
NSG: 기본 로깅 및 Azure Monitor와의 통합을 제공합니다.
Azure Firewall: Azure Monitor를 통해 고급 로깅 및 분석 기능을 제공하며, 이는 트래픽의 성격과 패턴을 이해하는 데 필수적입니다.
Azure의 네트워크 가상 어플라이언스 (NVA)는 가상 네트워크 내에서 네트워크 기능을 수행하는 가상 어플라이언스입니다. NVA는 일반적으로 Azure에서 본래 제공되지 않는 네트워크 기능이나 더 많은 사용자 정의가 필요한 경우에 사용됩니다. 본질적으로 네트워크 애플리케이션 또는 서비스를 실행하는 VM입니다. 예를 들어 방화벽, WAN 최적화기 또는 로드 밸런서와 같은 것입니다.
NVA는 복잡한 라우팅, 보안 및 네트워크 트래픽 관리 작업에 사용됩니다. Azure Marketplace에서 배포할 수 있으며, 많은 제3자 공급업체가 Azure 환경에 통합할 준비가 된 어플라이언스를 제공합니다.
조직은 Azure에 NVA를 배포하여 맞춤형 방화벽 솔루션을 만들 수 있습니다. 이 NVA는 제3자 방화벽 소프트웨어를 실행하여 침입 탐지, 패킷 검사 또는 VPN 연결과 같은 고급 기능을 제공할 수 있습니다. NVA는 통과하는 트래픽을 검사하고 필터링하도록 구성할 수 있으며, 조직의 정책에 따라 향상된 보안 조치가 마련되어 있는지 확인합니다.
Azure Route Tables는 Microsoft Azure 내에서 Azure Virtual Networks (VNets) 내의 네트워크 트래픽 라우팅을 제어할 수 있는 기능입니다. 본질적으로, 이들은 패킷이 VNets 내의 서브넷 간, VNets 간, 또는 외부 네트워크로 어떻게 전달되는지 정의합니다. 각 라우트 테이블은 패킷이 목적지 IP 주소에 따라 어떻게 라우팅되어야 하는지를 지정하는 규칙 집합인 라우트를 포함합니다.
**User Defined Routes (UDR)**는 Azure Route Tables 내에서 네트워크 트래픽의 흐름을 제어하기 위해 생성하는 사용자 정의 경로입니다. UDR은 Azure Virtual Networks (VNets) 내 및 외부 연결 간의 네트워크 트래픽을 특정 요구 사항에 따라 유연하게 지시할 수 있게 해주며, Azure의 기본 라우팅 결정을 무시할 수 있습니다.
이러한 경로는 가상 어플라이언스를 통한 트래픽 라우팅, 보안 또는 정책 준수를 위한 특정 경로 강제, 또는 온프레미스 네트워크와의 통합이 필요한 시나리오에 특히 유용합니다.
VNet 내의 서브넷 간 트래픽을 검사하기 위해 Network Virtual Appliance (NVA)를 배포했다고 가정해 보겠습니다. 한 서브넷에서 다른 서브넷으로의 모든 트래픽이 NVA를 통해 가도록 지시하는 UDR을 생성할 수 있습니다. 이 UDR은 NVA가 목적지에 도달하기 전에 보안 목적으로 트래픽을 검사하도록 보장합니다.
Azure Private Link는 Azure 서비스에 대한 개인 액세스를 가능하게 하는 Azure의 서비스로, Azure 가상 네트워크(VNet)와 서비스 간의 트래픽이 Microsoft의 Azure 백본 네트워크 내에서 완전히 이동하도록 보장합니다. 이 설정은 서비스를 VNet으로 가져옵니다. 이로 인해 데이터가 공용 인터넷에 노출되지 않아 보안이 강화됩니다.
Private Link는 Azure Storage, Azure SQL Database 및 Private Link를 통해 공유되는 사용자 지정 서비스와 같은 다양한 Azure 서비스와 함께 사용할 수 있습니다. 이는 자신의 VNet 내에서 또는 다른 Azure 구독에서 서비스를 소비하는 안전한 방법을 제공합니다.
NSG는 개인 엔드포인트에 적용되지 않으므로, Private Link를 포함하는 서브넷에 NSG를 연결하는 것은 아무런 효과가 없음을 분명히 의미합니다.
VNet에서 안전하게 액세스하고자 하는 Azure SQL Database가 있는 시나리오를 고려해 보십시오. 일반적으로 이는 공용 인터넷을 통과해야 할 수 있습니다. Private Link를 사용하면 VNet 내에서 Azure SQL Database 서비스에 직접 연결되는 개인 엔드포인트를 생성할 수 있습니다. 이 엔드포인트는 데이터베이스가 자신의 VNet의 일부인 것처럼 보이게 하며, 개인 IP 주소를 통해 접근할 수 있도록 하여 안전하고 개인적인 액세스를 보장합니다.
Azure 서비스 엔드포인트는 가상 네트워크의 개인 주소 공간과 VNet의 ID를 Azure 서비스에 직접 연결하여 확장합니다. 서비스 엔드포인트를 활성화하면, VNet의 리소스가 Azure의 백본 네트워크를 사용하여 Azure 서비스에 안전하게 연결할 수 있습니다. 이는 VNet에서 Azure 서비스로의 트래픽이 Azure 네트워크 내에 유지되도록 하여, 보다 안전하고 신뢰할 수 있는 경로를 제공합니다.
예를 들어, Azure Storage 계정은 기본적으로 공용 인터넷을 통해 접근할 수 있습니다. VNet 내에서 Azure Storage에 대한 서비스 엔드포인트를 활성화하면, VNet의 트래픽만이 스토리지 계정에 접근할 수 있도록 보장할 수 있습니다. 그런 다음 스토리지 계정 방화벽을 구성하여 VNet에서만 트래픽을 수용하도록 설정할 수 있습니다.
Microsoft는 문서에서 프라이빗 링크 사용을 권장합니다: \
서비스 엔드포인트:
VNet에서 Azure 서비스로의 트래픽은 Microsoft Azure 백본 네트워크를 통해 이동하며, 공용 인터넷을 우회합니다.
엔드포인트는 Azure 서비스에 대한 직접 연결이며, VNet 내에서 서비스에 대한 프라이빗 IP를 제공하지 않습니다.
서비스 자체는 VNet 외부에서 공용 엔드포인트를 통해 여전히 접근할 수 있으며, 서비스 방화벽을 구성하여 이러한 트래픽을 차단하지 않는 한 접근이 가능합니다.
서브넷과 Azure 서비스 간의 일대일 관계입니다.
프라이빗 링크보다 비용이 적게 듭니다.
프라이빗 링크:
프라이빗 링크는 Azure 서비스를 VNet 내의 프라이빗 엔드포인트를 통해 매핑하며, 이는 VNet 내의 프라이빗 IP 주소를 가진 네트워크 인터페이스입니다.
Azure 서비스는 이 프라이빗 IP 주소를 사용하여 접근되며, 마치 네트워크의 일부인 것처럼 보입니다.
프라이빗 링크를 통해 연결된 서비스는 VNet 또는 연결된 네트워크에서만 접근할 수 있으며, 서비스에 대한 공용 인터넷 접근은 없습니다.
Azure 서비스 또는 Azure에 호스팅된 자체 서비스에 대한 안전한 연결을 가능하게 하며, 다른 사람들이 공유하는 서비스에 대한 연결도 제공합니다.
서비스 엔드포인트와 달리 VNet 내의 프라이빗 엔드포인트를 통해 더 세분화된 접근 제어를 제공합니다.
요약하자면, 서비스 엔드포인트와 프라이빗 링크 모두 Azure 서비스에 대한 안전한 연결을 제공하지만, 프라이빗 링크는 서비스를 공용 인터넷에 노출하지 않고 프라이빗하게 접근하도록 보장함으로써 더 높은 수준의 격리와 보안을 제공합니다. 반면 서비스 엔드포인트는 VNet 내에서 프라이빗 IP가 필요 없는 일반적인 경우에 Azure 서비스에 대한 간단하고 안전한 접근을 설정하기가 더 쉽습니다.
Azure Front Door는 전 세계 웹 애플리케이션의 빠른 배포를 위한 확장 가능하고 안전한 진입점입니다. 이는 글로벌 로드 밸런싱, 사이트 가속화, SSL 오프로드 및 웹 애플리케이션 방화벽(WAF) 기능과 같은 다양한 서비스를 하나의 서비스로 결합합니다. Azure Front Door는 사용자에게 가장 가까운 엣지 위치를 기반으로 지능형 라우팅을 제공하여 최적의 성능과 신뢰성을 보장합니다. 또한 URL 기반 라우팅, 다중 사이트 호스팅, 세션 친화성 및 애플리케이션 계층 보안을 제공합니다.
Azure Front Door WAF는 웹 기반 공격으로부터 웹 애플리케이션을 보호하도록 설계되었으며, 백엔드 코드를 수정할 필요가 없습니다. SQL 인젝션, 크로스 사이트 스크립팅 및 기타 일반적인 공격과 같은 위협으로부터 보호하기 위해 사용자 정의 규칙 및 관리 규칙 세트를 포함합니다.
전 세계에 사용자들이 있는 글로벌 분산 애플리케이션이 있다고 가정해 보십시오. Azure Front Door를 사용하여 사용자 요청을 애플리케이션을 호스팅하는 가장 가까운 지역 데이터 센터로 라우팅하여 지연 시간을 줄이고 사용자 경험을 개선하며 WAF 기능으로 웹 공격으로부터 방어할 수 있습니다. 특정 지역에서 다운타임이 발생하면 Azure Front Door는 자동으로 트래픽을 다음 최적의 위치로 재라우팅하여 높은 가용성을 보장합니다.
Azure Application Gateway는 웹 트래픽 로드 밸런서로, 웹 애플리케이션에 대한 트래픽을 관리할 수 있게 해줍니다. 이는 7계층 로드 밸런싱, SSL 종료 및 웹 애플리케이션 방화벽(WAF) 기능을 서비스로 제공하는 애플리케이션 배달 컨트롤러(ADC)입니다. 주요 기능으로는 URL 기반 라우팅, 쿠키 기반 세션 친화성 및 보안 소켓 계층(SSL) 오프로드가 있으며, 이는 글로벌 라우팅 및 경로 기반 라우팅과 같은 복잡한 로드 밸런싱 기능이 필요한 애플리케이션에 중요합니다.
사용자 계정 및 결제 처리와 같은 다양한 기능을 위한 여러 하위 도메인을 포함하는 전자 상거래 웹사이트가 있다고 가정해 보십시오. Azure Application Gateway는 URL 경로에 따라 적절한 웹 서버로 트래픽을 라우팅할 수 있습니다. 예를 들어, example.com/accounts
로의 트래픽은 사용자 계정 서비스로, example.com/pay
로의 트래픽은 결제 처리 서비스로 라우팅될 수 있습니다.
그리고 WAF 기능을 사용하여 웹사이트를 공격으로부터 보호합니다.
VNet Peering는 Azure의 네트워킹 기능으로 서로 다른 가상 네트워크(VNet)를 직접적이고 원활하게 연결할 수 있게 해줍니다. VNet 피어링을 통해 한 VNet의 리소스는 마치 같은 네트워크에 있는 것처럼 다른 VNet의 리소스와 개인 IP 주소를 사용하여 통신할 수 있습니다. VNet 피어링은 온프레미스 네트워크와도 사용할 수 있습니다. 사이트 간 VPN 또는 Azure ExpressRoute를 설정하여 가능합니다.
Azure Hub and Spoke는 Azure에서 네트워크 트래픽을 관리하고 조직하는 데 사용되는 네트워크 토폴로지입니다. "허브"는 서로 다른 "스포크" 간의 트래픽을 제어하고 라우팅하는 중앙 지점입니다. 허브는 일반적으로 네트워크 가상 장치(NVA), Azure VPN Gateway, Azure Firewall 또는 Azure Bastion과 같은 공유 서비스를 포함합니다. "스포크"는 워크로드를 호스팅하고 VNet 피어링을 사용하여 허브에 연결되는 VNet입니다, 이를 통해 허브 내의 공유 서비스를 활용할 수 있습니다. 이 모델은 여러 VNet에 걸쳐 있는 여러 워크로드가 사용할 수 있는 공통 서비스를 중앙 집중화하여 복잡성을 줄이고 깔끔한 네트워크 레이아웃을 촉진합니다.
Azure에서 VNET 피어링은 비전이전적입니다, 즉 스포크 1이 스포크 2에 연결되고 스포크 2가 스포크 3에 연결되어도 스포크 1은 스포크 3과 직접 통신할 수 없습니다.
판매, 인사 및 개발과 같은 별도의 부서를 가진 회사를 상상해 보십시오. 각 부서는 자체 VNet(스포크)을 가지고 있습니다. 이러한 VNet은 중앙 데이터베이스, 방화벽 및 인터넷 게이트웨이와 같은 공유 리소스에 대한 접근이 필요합니다, 이 모든 것은 다른 VNet(허브)에 위치해 있습니다. Hub and Spoke 모델을 사용함으로써 각 부서는 공유 리소스를 허브 VNet을 통해 안전하게 연결할 수 있으며, 이러한 리소스를 공용 인터넷에 노출시키거나 복잡한 네트워크 구조를 만들 필요가 없습니다.
Azure의 Site-to-Site VPN은 온프레미스 네트워크를 Azure 가상 네트워크(VNet)에 연결할 수 있게 해주며, Azure 내의 VM과 같은 리소스가 로컬 네트워크에 있는 것처럼 보이게 합니다. 이 연결은 두 네트워크 간의 트래픽을 암호화하는 VPN 게이트웨이를 통해 설정됩니다.
뉴욕에 본사가 있는 한 기업은 Azure에서 가상화된 워크로드를 호스팅하는 VNet에 안전하게 연결해야 하는 온프레미스 데이터 센터를 가지고 있습니다. Site-to-Site VPN을 설정함으로써, 회사는 온프레미스 서버와 Azure VM 간의 암호화된 연결을 보장할 수 있으며, 두 환경 모두에서 리소스에 안전하게 접근할 수 있도록 하여 마치 동일한 로컬 네트워크에 있는 것처럼 만듭니다.
Azure ExpressRoute는 온프레미스 인프라와 Azure 데이터 센터 간의 개인적이고 전용의 고속 연결을 제공하는 서비스입니다. 이 연결은 연결 제공자를 통해 이루어지며, 공용 인터넷을 우회하여 일반 인터넷 연결보다 더 높은 신뢰성, 더 빠른 속도, 더 낮은 대기 시간 및 더 높은 보안을 제공합니다.
다국적 기업은 데이터 양이 많고 높은 처리량이 필요하기 때문에 Azure 서비스에 대한 일관되고 신뢰할 수 있는 연결이 필요합니다. 이 회사는 온프레미스 데이터 센터를 Azure에 직접 연결하기 위해 Azure ExpressRoute를 선택하여, 일일 백업 및 실시간 데이터 분석과 같은 대규모 데이터 전송을 향상된 개인 정보 보호 및 속도로 용이하게 합니다.
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)