구성도

가상 네트워크 생성
가상 네트워크 이름 : FWVNet
IPv4 주소 공간: 10.0.0.0/16

서브넷 생성
서브넷1 이름 : AzureFirewallSubnet(서브넷 용도 선택: Azure Firewall)
서브넷1 주소 범위 : 10.0.0.0/26
서브넷2 이름 : Workload-SN
서브넷2 주소 범위 : 10.0.2.0/24
서브넷3 이름 : Jump-SN
서브넷3 주소 범위: 10.0.3.0/24

점프박스용 VM 생성
VM 이름 : Srv-Jump
Vnet : FWVNet
Subnet : Jump-SN
공용 IP : 새로 만들기 (이름 : Srv-Jump-ip)

서버용 VM 생성
VM 이름 : Srv-Work
Vnet : FWVNet
Subnet : Workload-SN
공용 IP: 없음

Azure Firewall 생성
방화벽 이름 : AzureFW
가용 영역 : 없음
방화벽 SKU : 표준
방화벽 관리 : 방화벽 규칙(클래식)을 사용하여 이 방화벽을 관리합니다.
가상 네트워크 선택 : 기존 네트워크 사용
가상 네트워크 : FWVNet
공용 IP : 새로 만들기 (이름 : azureFirewalls-ip)
강제 터널링 : 사용 안 함

경로 테이블 생성
경로 테이블 이름 : FW-Route
생성한 경로 테이블을 workload-SN 서브넷과 연결.

경로 추가
경로 이름 : FW-DG
대상 유형 : IP주소
대상 IP 주소/CIDR 범위 : 0.0.0.0/0
다음 홉 유형 : 가상 어플라이언스
다음 홉 주소 : AzureFirewall의 Private IP

방화벽 규칙 추가
애플리케이션 규칙 컬렉션
이름 : App-Coll01
우선 순위 : 200
작업 : 허용
대상 FQDN :
이름 : AllowGH
Source : 10.0.2.0/24
프로토콜 : http, https
대상 FQDN : github.com

네트워크 규칙 컬렉션
이름 : Net-Coll01
우선 순위 : 200
작업 : 허용
규칙(IP 주소)
이름 : Allow-DNS
프로토콜 : UDP
출처 : 10.0.2.0/24
대상 주소 : 8.8.8.8, 1.1.1.1
대상 포트 : 53

서버 NIC에 대한 DNS 변경
Srv-Work VM의 NIC 설정 화면으로 이동
왼쪽의 설정 > DNS 서버를 클릭한 다음 사용자 지정을 클릭
8.8.8.8, 1.1.1.1을 추가
추가하고 Srv-Work VM을 다시시작

방화벽 테스트
Srv-Jump VM에 Public IP로 RDP 접속
Srv-Jump VM -> Srv-Work VM 으로 Private IP로 RDP 접속
Srv-Work VM에서 웹브라우저를 실행
https://github.com 으로 접속 -> 방화벽 정책이 있기 때문에 성공

http://abc.com 으로 접속 -> 방화벽 정책이 없기 때문에 차단
