Azure Portal을 사용하여 Azure Firewall 배포 및 구성
아웃바운드 네트워크 액세스 제어는 전체 네트워크 보안 계획에서 중요한 부분입니다. 예를 들어 웹 사이트에 대한 액세스를 제한해야 할 수 있습니다. 또는 액세스할 수 있는 아웃바운드 IP 주소 및 포트를 제한해야 할 수 있습니다.
Azure 서브넷에서 아웃바운드 네트워크로의 액세스를 제어하는 한 가지 방법은 Azure Firewall입니다. Azure Firewall을 사용하면 다음을 구성할 수 있습니다.
- 서브넷에서 액세스할 수 있는 FQDN(정규화된 도메인 이름)을 정의하는 애플리케이션 규칙.
- 원본 주소, 프로토콜, 대상 포트 및 대상 주소를 정의하는 네트워크 규칙.
네트워크 트래픽은 서브넷 기본 게이트웨이처럼 방화벽에 네트워크 트래픽을 라우팅할 경우 구성된 방화벽 규칙에 종속됩니다.
이 문서에서는 쉽게 배포할 수 있도록 두 개의 서브넷이 있는 간소화된 단일 가상 네트워크를 만듭니다.
프로덕션 배포의 경우 방화벽이 자체 가상 네트워크에 위치하는 허브 및 스포크 모델이 권장됩니다. 워크로드 서버는 하나 이상의 서브넷이 있는 동일한 지역의 피어링된 가상 네트워크에 위치합니다.
- AzureFirewallSubnet - 방화벽은 이 서브넷에 있습니다.
- 워크로드-SN - 워크로드 서버는 이 서브넷에 있습니다. 이 서브넷의 네트워크 트래픽은 방화벽을 통해 이동합니다.
이 문서에서는 다음 방법을 설명합니다.
- 테스트 네트워크 환경 설정
- 방화벽 배포
- 기본 경로 만들기
- www.google.com에 대한 액세스를 허용하도록 애플리케이션 규칙 구성
- 외부 DNS 서버 액세스를 허용하도록 네트워크 규칙 구성
- 테스트 서버에 대한 원격 데스크톱을 허용하도록 NAT 규칙 구성
- 방화벽 테스트
참고 항목
이 문서에서는 클래식 방화벽 규칙을 사용하여 방화벽을 관리합니다. 선호되는 방법은 방화벽 정책을 사용하는 것입니다. 방화벽 정책을 사용하여 이 절차를 완료하려면 자습서: Azure Portal을 사용하여 Azure Firewall과 정책 배포 및 구성을 참조하세요.
원하는 경우 Azure PowerShell을 사용하여 이 절차를 완료할 수 있습니다.
필수 조건
Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
네트워크 설정
먼저 방화벽 배포에 필요한 리소스를 포함하는 리소스 그룹을 만듭니다. 그런 다음 가상 네트워크, 서브넷 및 테스트 서버를 만듭니다.
리소스 그룹 만들기
리소스 그룹에는 이 절차에 사용된 모든 리소스가 포함되어 있습니다.
- Azure Portal에 로그인합니다.
- Azure Portal 메뉴에서 리소스 그룹을 선택하거나 검색하여 어느 페이지에서든 리소스 그룹을 선택합니다. 다음으로 만들기를 선택합니다.
- 구독의 경우 사용자의 구독을 선택합니다.
- 리소스 그룹 이름에 Test-FW-RG를 입력합니다.
- 지역에 대해 지역을 선택합니다. 만드는 다른 모든 리소스는 동일한 지역에 있어야 합니다.
- 검토 + 만들기를 선택합니다.
- 만들기를 선택합니다.
가상 네트워크 만들기
이 가상 네트워크에는 두 개의 서브넷이 있습니다.
참고 항목
AzureFirewallSubnet 서브넷의 크기는 /26입니다. 서브넷 크기에 대한 자세한 내용은 Azure Firewall FAQ를 참조하세요.
- Azure Portal 메뉴 또는 홈 페이지에서 가상 네트워크를 검색합니다.
- 결과 창에서 가상 네트워크를 선택합니다.
- 만들기를 실행합니다.
- 구독의 경우 사용자의 구독을 선택합니다.
- 리소스 그룹의 경우 Test-FW-RG를 선택합니다.
- 가상 네트워크 이름에 Test-FW-VN을 입력합니다.
- 지역에 대해 이전에 사용한 것과 동일한 지역을 선택합니다.
- 다음을 선택합니다.
- 보안 탭에서 Azure Firewall 사용을 선택합니다.
- Azure Firewall 이름에 Test-FW01을 입력합니다.
- Azure Firewall 공용 IP 주소에서 공용 IP 주소 만들기를 선택합니다.
- 이름에 fw-pip를 입력하고 확인을 선택합니다.
- 다음을 선택합니다.
- 주소 공간의 경우 기본값 10.0.0.0/16을 적용합니다.
- 서브넷 아래에서 기본을 선택하고 이름을 Workload-SN으로 변경합니다.
- 시작 주소에서 주소를 10.0.2.0/24로 변경합니다.
- 저장을 선택합니다.
- 검토 + 만들기를 선택합니다.
- 만들기를 선택합니다.
참고 항목
Azure Firewall은 사용 가능한 포트에 기반하여 필요에 따라 공용 IP를 사용합니다. 아웃바운드를 연결할 공용 IP를 임의로 선택한 후에는 현재 공용 IP에서 더 이상 연결할 수 없게 되면 사용 가능한 다음 공용 IP만 사용하게 됩니다. 트래픽 볼륨 및 처리량이 많은 시나리오에서는 NAT Gateway를 사용하여 아웃바운드 연결을 제공하는 것이 좋습니다. SNAT 포트는 NAT Gateway와 연결된 모든 공용 IP에 동적으로 할당됩니다. 자세한 내용은 NAT Gateway를 Azure Firewall과 통합을 참조하세요.
가상 머신 만들기
이제 워크로드 가상 머신을 만들어 워크로드-SN 서브넷에 배치합니다.
Azure Portal 메뉴 또는 홈 페이지에서 리소스 만들기를 선택합니다.
Windows Server 2019 Datacenter를 선택합니다.
가상 머신에 대해 다음 값을 입력합니다.
설정 값 Resource group Test-FW-RG 가상 머신 이름 Srv-Work 지역 이전과 동일함 이미지 Windows Server 2019 Datacenter 관리자 사용자 이름 사용자 이름 입력 암호 암호 입력 인바운드 포트 규칙, 퍼블릭 인바운드 포트에서 없음을 선택합니다.
나머지는 기본값으로 두고 다음: 디스크를 선택합니다.
디스크 기본값을 수락하고 다음: 네트워킹을 선택합니다.
가상 네트워크에 Test-FW-VN이 선택되고 서브넷이 워크로드-SN인지 확인합니다.
공용 IP에 대해 없음을 선택합니다.
나머지는 기본값으로 두고 다음: 관리를 선택합니다.
기본값을 적용하고, 다음: 모니터링을 선택합니다.
부팅 진단에서 사용하지 않도록 설정을 선택하여 부팅 진단을 사용하지 않도록 설정합니다. 나머지는 기본값으로 두고 검토 + 만들기를 선택합니다.
요약 페이지에서 설정을 검토한 다음, 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택하고 나중에 사용해야 하는 Srv-Work 개인 IP 주소를 기록해 둡니다.
참고 항목
Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 VM에 대한 기본 아웃바운드 액세스 IP를 제공합니다. 기본 아웃바운드 액세스 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.
다음 이벤트 중 하나가 발생하면 기본 아웃바운드 액세스 IP가 사용하지 않도록 설정됩니다.
- 공용 IP 주소가 VM에 할당됩니다.
- VM은 아웃바운드 규칙 유무에 관계없이 표준 Load Balancer의 백 엔드 풀에 배치됩니다.
- Azure NAT Gateway 리소스는 VM의 서브넷에 할당됩니다.
유연한 오케스트레이션 모드에서 가상 머신 확장 집합을 사용하여 만드는 VM에는 기본 아웃바운드 액세스 권한이 없습니다.
Azure의 아웃바운드 연결에 대한 자세한 내용은 Azure의 기본 아웃바운드 액세스 및 아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.
방화벽 검사
- 리소스 그룹으로 이동하여 방화벽을 선택합니다.
- 방화벽 개인 및 공용 IP 주소를 확인합니다. 나중에 이들 주소를 사용합니다.
기본 경로 만들기
방화벽을 통해 아웃바운드 및 인바운드 연결에 대한 경로를 만들 때 0.0.0.0/0에 대한 기본 경로로 가상 어플라이언스 개인 IP를 다음 홉으로 사용하는 것으로 충분합니다. 그러면 나가는 연결과 들어오는 연결이 모두 방화벽을 통해 전달됩니다. 예를 들어 방화벽이 TCP 핸드셰이크를 수행하고 들어오는 요청에 응답하는 경우 응답은 트래픽을 보낸 IP 주소로 전달됩니다. 이것은 의도적인 것입니다.
따라서 AzureFirewallSubnet IP 범위를 포함하기 위해 다른 사용자 정의 경로를 만들 필요가 없습니다. 이로 인해 연결이 끊어질 수 있습니다. 원래 기본 경로로 충분합니다.
Workload-SN 서브넷의 경우 방화벽을 통과하도록 아웃바운드 기본 경로를 구성합니다.
- Azure Portal에서 경로 테이블을 검색합니다.
- 결과 창에서 경로 테이블을 선택합니다.
- 만들기를 실행합니다.
- 구독의 경우 사용자의 구독을 선택합니다.
- 리소스 그룹의 경우 Test-FW-RG를 선택합니다.
- 지역의 경우 전에 사용한 것과 동일한 위치를 선택합니다.
- 이름에 Firewall-route를 입력합니다.
- 검토 + 만들기를 선택합니다.
- 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택합니다.
방화벽 경로 페이지에서 서브넷을 선택한 다음, 연결을 선택합니다.
가상 네트워크에서 Test-FW-VN을 선택합니다.
서브넷에 대해 Workload-SN을 선택합니다. 이 경로에 대해 Workload-SN 서브넷만 선택해야 합니다. 그렇지 않으면 방화벽이 제대로 작동하지 않습니다.
확인을 선택합니다.
경로를 선택한 다음, 추가를 선택합니다.
경로 이름에 fw-dg를 입력합니다.
대상 유형에 대해 IP 주소를 선택합니다.
대상 IP 주소/CIDR 범위에 0.0.0.0/0을 입력합니다.
다음 홉 형식의 경우 가상 어플라이언스를 선택합니다.
Azure Firewall은 실제로 관리되는 서비스이지만 가상 어플라이언스는 이 상황에서 작동합니다.
다음 홉 주소에 이전에 적어둔 방화벽에 대한 개인 IP 주소를 입력합니다.
추가를 선택합니다.
애플리케이션 규칙 구성
이는 www.google.com
에 대한 아웃바운드 액세스를 허용하는 애플리케이션 규칙입니다.
- Test-FW-RG를 열고 Test-FW01 방화벽을 선택합니다.
- Test-FW01 페이지의 설정에서 규칙(클래식)을 선택합니다.
- 애플리케이션 규칙 컬렉션 탭을 선택합니다.
- 애플리케이션 규칙 컬렉션 추가를 선택합니다.
- 이름에 App-Coll01를 입력합니다.
- 우선 순위에 200을 입력합니다.
- 동작에 대해 허용을 선택합니다.
- 규칙, 대상 FQDN 아래에서 이름으로 Allow-Google을 입력합니다.
- 원본 유형에 대해 IP 주소를 선택합니다.
- 원본에 대해 10.0.2.0/24를 선택합니다.
- Protocol:port에 http, https를 입력합니다.
- 대상 FQDN에
www.google.com
을 입력합니다. - 추가를 선택합니다.
Azure Firewall은 기본적으로 허용되는 인프라 FQDN에 대한 기본 제공 규칙 컬렉션을 포함합니다. 이러한 FQDN은 플랫폼에 대해 특정적이며 다른 용도로 사용할 수 없습니다. 자세한 내용은 인프라 FQDN을 참조하세요.
네트워크 규칙 구성
포트 53(DNS)에서 두 IP 주소에 대한 아웃바운드 액세스를 허용하는 네트워크 규칙입니다.
네트워크 규칙 컬렉션 탭을 선택합니다.
네트워크 규칙 컬렉션 추가를 선택합니다.
이름에 Net-Coll01을 입력합니다.
우선 순위에 200을 입력합니다.
동작에 대해 허용을 선택합니다.
규칙, IP 주소 아래에서 이름에 대해 Allow-DNS를 입력합니다.
프로토콜로 UDP를 선택합니다.
원본 유형에 대해 IP 주소를 선택합니다.
원본에 대해 10.0.2.0/24를 선택합니다.
대상 유형에 대해 IP 주소를 선택합니다.
대상 주소에 대해 209.244.0.3,209.244.0.4를 입력합니다.
Level3에서 운영하는 공용 DNS 서버입니다.
대상 포트에 53을 입력합니다.
추가를 선택합니다.
DNAT 규칙 구성
이 규칙을 사용하면 방화벽을 통해 원격 데스크톱을 Srv-Work 가상 머신에 연결할 수 있습니다.
- NAT 규칙 컬렉션 탭을 선택합니다.
- NAT 규칙 컬렉션 추가를 선택합니다.
- 이름에 rdp를 입력합니다.
- 우선 순위에 200을 입력합니다.
- 규칙에서 이름에 rdp-nat을 입력합니다.
- 프로토콜의 경우 TCP를 선택합니다.
- 원본 유형에 대해 IP 주소를 선택합니다.
- 원본에 대해 *를 선택합니다.
- 대상 주소에 방화벽 공용 IP 주소를 입력합니다.
- 대상 포트에 대해 3389를 입력합니다.
- 변환 주소에 Srv-work 개인 IP 주소를 입력합니다.
- 변환 포트에 3389를 입력합니다.
- 추가를 선택합니다.
Srv-Work 네트워크 인터페이스에 대해 기본 및 보조 DNS 주소 변경
테스트 목적으로 서버의 기본 및 보조 DNS 주소를 구성합니다. 일반적인 Azure Firewall 요구 사항이 아닙니다.
- Azure Portal 메뉴에서 리소스 그룹을 선택하거나 검색하여 어느 페이지에서든 리소스 그룹을 선택합니다. Test-FW-RG 리소스 그룹을 선택합니다.
- Srv-Work 가상 머신에 대해 네트워크 인터페이스를 선택합니다.
- 설정 아래에서 DNS 서버를 선택합니다.
- DNS 서버 아래에서 사용자 지정을 선택합니다.
- 209.244.0.3을 입력하고 DNS 서버 추가 텍스트 상자에서 Enter 키를 누른 후 다음 텍스트 상자에 209.244.0.4를 입력합니다.
- 저장을 선택합니다.
- Srv-Work 가상 머신을 다시 시작합니다.
방화벽 테스트
이제 방화벽이 예상대로 작동하는지 테스트합니다.
원격 데스크톱을 방화벽 공용 IP 주소에 연결하고 Srv-Work 가상 머신에 로그인합니다.
Internet Explorer를 열고
https://www.google.com
으로 이동합니다.Internet Explorer 보안 경고에서 확인>닫기를 선택합니다.
Google 홈 페이지가 나타납니다.
https://www.microsoft.com
으로 이동합니다.방화벽이 차단됩니다.
이제 방화벽 규칙이 작동하는지 확인했습니다.
- RDP를 사용하여 가상 머신에 연결할 수 있습니다.
- 다른 모든 FQDN이 아닌 허용된 FQDN 하나만 찾아볼 수 있습니다.
- 구성된 외부 DNS 서버를 사용하여 DNS 이름을 확인할 수 있습니다.
리소스 정리
테스트를 계속하도록 방화벽 리소스를 그대로 유지하거나, 더 이상 필요하지 않은 경우 Test-FW-RG 리소스 그룹을 삭제하여 모든 방화벽 관련 리소스를 삭제해도 됩니다.