[Vnet] Azure 방화벽 구성 101 (Azure Firewall Hand On and Free Tips)
VNet
작성자
Roronoa
작성일
2021-01-06 23:06
조회
3394
Azure Firewall hand-On 101 입니다
일반적으로 Azure Firewall은 Deploy 하는 것은 3rd Party에 비해서 엄청나게 간단한 일입니다.
프로덕션 일 경우에는 Hub and Spoke Architecture가 권장되며 이 링크에 자세한 설명이 있습니다
.http://cloud.syncrofusion.com/?page_id=1018&uid=369&mod=document
000
이 아키텍처가 기본적인 아키텍처 이며 Hand-On에서는 이보다 조금 단순한 배포를 해보려 합니다
003
이 아키텍처 를 잠시 보면 4개의 tier로 되어 있으며 Web 부분 Business 부분 Database 부분이 있습니다.
기본적으로 한개의 Virtual Network가 있으며 각각의 Tier 마다 다른 기능을 하고 있으며 각 Tier는 Subnet
으로 구성 되어 있습니다. 매우 단순하고 기본적인 구조이며 대규모가 아닌 일반적인 프로덕션에서도
사용이 가능하며 많이 사용하고 있는 부분입니다.
005
Tutorial 101
Tutorial 에서 해볼 부분은 상단의 그림처럼 단순하게 Firewall 부분과 Web 부분입니다.
이 Tutorial은 MS 공식문서에 있는 부분을 참조하였습니다. Azure Portal에서 구성합니다.
진행 순서
Task 0.리소스 그룹만들기
Task 1. 가상네트워크 만들기
Task 2.가상머신 만들기
Task 3. 방화벽 배포
Task 4. 경로 만들기
Task 5. 애플리케이션 규칙 만들기
Task 6. 네트워크 규칙 구성 만들기
Task 7. DNAT 규칙 만들기
Task 8. Web 서버에 DNS 주소 변경
Task 9. 방화벽 테스트
------------------------------------------------------------------------------------------------------
Task 0 리소스 그룹만들기
1.Azure portal 로 접속
2. 리소스 그룹 생성 luffy-fw-rg 이름으로 한국 지역에 리소스 그룹 생성
001
Task 1 가상네트워크 만들기
1.virtual network를 luffy-fw-rg 리소스 그룹에 생성
이때 방화벽(Firewall)의 Subnet 이름 은 무조건 “ AzureFirewallSubnet ” 로 되어야 합니다.
다른 주소는 원하는대로 CIDR에 맞게 변경 가능 합니다.
나머지 값은 디폴트 설정에 따릅니다. (why :UI가 매번 변경되므로)
002
Task 2 가상머신 만들기
Inbound Port는 Firewall에서 모두 관리 예정이므로 Port 는 만들지않습니다
Public IP 는 Firewall를 통해서 접근하므로 절대 만들지 않습니다.
Boot Diagnostics 는 Hand-On에서는 만들지 않으며 Production에는 무조건 만들어야 합니다.
003
Task 3 방화벽 배포
하기의 내용을 입력할때 존재하는 Firewall Subnet 이름이 AzureFirewallSubnet 가 아니면
오류가 생기며 이부분은 현재는 무조건 AzureFirewallSubnet 이름으로 만들어야 합니다. (파란색 화살표 부분)
현재 Azure Firewall은 Korea Central 지역에서는 Availability Zone은 불가능 합니다. (다른지역은 가능)
방화벽은 배포하는데 다른 리소스보다 오래 걸립니다.
004
Task 4 경로 만들기 (Route Tables)
1.경로 테이블 생성
005
2.경로 테이블 (Route Tables)을 리소스 그룹에서 생성 후 선택합니다.
하기의 빠른 박스 부분은 이 경로 테이블이 어디 서브넷에 연결되는 지를 설정하는 부분입니다
하기에 빨간 박스 부분은 경로(Route)를 설정 해야 하며 현재 아무것도 없습니다.
006
3.경로 테이블을 Subnet에 연결합니다.
007
4.경로(Route) 클릭 하고 +Add 버튼을 누르고 경로를 만듭니다.
008
Task 5 애플리케이션 규칙 만들기
1.리소스 방화벽을 선택합니다
009
2.방화벽에서 규칙(rule) 부분을 선택하면 빨간색 박스가 DNAT, SNAT, Application 규칙입니다
3.여기서 녹색 부분은 선택하고 Target FQDNs 에 하기 정보를 입력합니다.
이부분이 완성이 되어야 선택한 web서버에서 아웃바운드로 나가는 Application 규칙이
허용되는 부분을 완성시키는 부분입니다. 이부분이 완성이 되어야 구글.com이 접속이 가능합니다.
010
Task 6네트워크 규칙 구성 만들기
1.Task5와 동일한 방법으로 네트워크 규칙도 완성 시킵니다.
011
Task 7 DNAT 규칙 만들기
1.Task6과 동일한 방법으로 RDP를 세팅 해야 방화벽을 통하여 Virtual Machine의
RDP를 접속할수 있도록 세팅 합니다.
012
Task 8 Web 서버에 DNS 주소 변경
네트워크 규칙을 통하여 DNS 서버 주소를 받아 VM 의 DNS를 53번 포트로 받아서 아웃바운드가
생성되므로 VM에 네트워크 인터페이스에 209.244.0.3,209.244.0.4 주소를 Custom 도메인으로
설정을 합니다. 이 부분은 테스트 용도이며 실제 VM에 DNS는 주지 않습니다. 설정 후 VM을 재부팅
해야 네트워크 인터페이스가 설정이 됩니다.
013
Task 9 방화벽 테스트
1.원격 데스크탑을 통해서 방화벽(Firewall)의 맨앞단의 Public IP를 통해서 방화벽을
규칙에 따라 가상머신의 RDP 3389로 접속해서 웹서버에 접속합니다.
2.인터넷 익스플로어를 오픈 후 www.google.com을 입력합니다.
3.인터넷 브라우저의 방화벽을 사용하지 않습니다 를 선택합니다. 이때 나오는 방화벽은
인터넷브라우저 자체 방화벽이지 Azure Firewall이 아닙니다.
014
4. 선택 후 인터넷 브라우저가 싸이트를 블락 하겠습니다 라는 체크 하단의 녹색 화살표를 해제하고
Google.com을 신뢰하는 싸이트로 추가 합니다.
015
5.마지막 이 화면이 나오면 이제 모든 것이 성공 한 것이며 이화면이 나오지 않는다면
대부분 위에 설정을 잘못 설정한것이므로 다시 설정을 하거나 전체 삭제하고 처음부터
그대로 진행 하면 성공할 것 입니다.
016
마이크로소프트 Azure 방화벽 공식 문서
https://docs.microsoft.com/en-us/azure/firewall/overview?WT.mc_id=AZ-MVP-5002667
일반적으로 Azure Firewall은 Deploy 하는 것은 3rd Party에 비해서 엄청나게 간단한 일입니다.
프로덕션 일 경우에는 Hub and Spoke Architecture가 권장되며 이 링크에 자세한 설명이 있습니다
.http://cloud.syncrofusion.com/?page_id=1018&uid=369&mod=document
000
이 아키텍처가 기본적인 아키텍처 이며 Hand-On에서는 이보다 조금 단순한 배포를 해보려 합니다
003
이 아키텍처 를 잠시 보면 4개의 tier로 되어 있으며 Web 부분 Business 부분 Database 부분이 있습니다.
기본적으로 한개의 Virtual Network가 있으며 각각의 Tier 마다 다른 기능을 하고 있으며 각 Tier는 Subnet
으로 구성 되어 있습니다. 매우 단순하고 기본적인 구조이며 대규모가 아닌 일반적인 프로덕션에서도
사용이 가능하며 많이 사용하고 있는 부분입니다.
005
Tutorial 101
Tutorial 에서 해볼 부분은 상단의 그림처럼 단순하게 Firewall 부분과 Web 부분입니다.
이 Tutorial은 MS 공식문서에 있는 부분을 참조하였습니다. Azure Portal에서 구성합니다.
진행 순서
Task 0.리소스 그룹만들기
Task 1. 가상네트워크 만들기
Task 2.가상머신 만들기
Task 3. 방화벽 배포
Task 4. 경로 만들기
Task 5. 애플리케이션 규칙 만들기
Task 6. 네트워크 규칙 구성 만들기
Task 7. DNAT 규칙 만들기
Task 8. Web 서버에 DNS 주소 변경
Task 9. 방화벽 테스트
------------------------------------------------------------------------------------------------------
Task 0 리소스 그룹만들기
1.Azure portal 로 접속
2. 리소스 그룹 생성 luffy-fw-rg 이름으로 한국 지역에 리소스 그룹 생성
Resource Group | luffy-fw-rg |
Task 1 가상네트워크 만들기
1.virtual network를 luffy-fw-rg 리소스 그룹에 생성
이때 방화벽(Firewall)의 Subnet 이름 은 무조건 “ AzureFirewallSubnet ” 로 되어야 합니다.
다른 주소는 원하는대로 CIDR에 맞게 변경 가능 합니다.
나머지 값은 디폴트 설정에 따릅니다. (why :UI가 매번 변경되므로)
Virtual Network Name | luffy-fw-vnet001 |
Virtual Network Address | 18.0.0.0/16 |
Firewall Subnet | AzureFirewallSubnet |
Firewall Subnet Address | 18.0.1.0/26 |
Web Subnet | luffy-web-subnet |
Web Subnet Address | 18.0.2.0/24 |
Task 2 가상머신 만들기
Inbound Port는 Firewall에서 모두 관리 예정이므로 Port 는 만들지않습니다
Public IP 는 Firewall를 통해서 접근하므로 절대 만들지 않습니다.
Boot Diagnostics 는 Hand-On에서는 만들지 않으며 Production에는 무조건 만들어야 합니다.
Virtual Machine Name | luffyweb001 |
Image | 2019 Windows Datacenter |
Size | D2s_v3 |
Admin | dmonkey001 |
pw | 비밀번호 |
Inbound Port | x |
Public IP | x |
Disk | Standard SSD |
Boot Diagnostics | Disable |
Web Server Private IP | Check Azure Portal! |
Task 3 방화벽 배포
하기의 내용을 입력할때 존재하는 Firewall Subnet 이름이 AzureFirewallSubnet 가 아니면
오류가 생기며 이부분은 현재는 무조건 AzureFirewallSubnet 이름으로 만들어야 합니다. (파란색 화살표 부분)
현재 Azure Firewall은 Korea Central 지역에서는 Availability Zone은 불가능 합니다. (다른지역은 가능)
방화벽은 배포하는데 다른 리소스보다 오래 걸립니다.
Firewall Name | luffy-fw001 |
Firewall IP | luffy-fw-ip001 |
Firewall Public IP | 20.194.21.49 |
Firewall Private IP | Check Azure Portal! |
Task 4 경로 만들기 (Route Tables)
Route Table Name | luffy-fw-route001 |
005
2.경로 테이블 (Route Tables)을 리소스 그룹에서 생성 후 선택합니다.
하기의 빠른 박스 부분은 이 경로 테이블이 어디 서브넷에 연결되는 지를 설정하는 부분입니다
하기에 빨간 박스 부분은 경로(Route)를 설정 해야 하며 현재 아무것도 없습니다.
006
3.경로 테이블을 Subnet에 연결합니다.
Destination Subnet | luffy-web-subnet |
4.경로(Route) 클릭 하고 +Add 버튼을 누르고 경로를 만듭니다.
Route Name | fw-dg | |
Address Prefix | 0.0.0.0/0 | |
Next Hop Type | Virtual appliance | |
Next Hop | 18.0.1.4 | Firewall Private IP Address |
Task 5 애플리케이션 규칙 만들기
1.리소스 방화벽을 선택합니다
009
2.방화벽에서 규칙(rule) 부분을 선택하면 빨간색 박스가 DNAT, SNAT, Application 규칙입니다
3.여기서 녹색 부분은 선택하고 Target FQDNs 에 하기 정보를 입력합니다.
이부분이 완성이 되어야 선택한 web서버에서 아웃바운드로 나가는 Application 규칙이
허용되는 부분을 완성시키는 부분입니다. 이부분이 완성이 되어야 구글.com이 접속이 가능합니다.
Application Rule Name | app-coll-001 | |
Priority | 200 | |
Action | allow | |
Target FQDN | allow-google | |
Source Type | ip | |
Source | 18.0.2.0/24 | Web Subnet Address |
Protocol:port | http, https | |
Target FQDN | www.google.com |
Task 6네트워크 규칙 구성 만들기
1.Task5와 동일한 방법으로 네트워크 규칙도 완성 시킵니다.
Network Rule Name | net-coll-001 | |
Priority | 200 | |
Action | allow | |
IP Address Name | allow-DNS | |
Protocol | UDP | |
Source Type | ip | |
Source | 18.0.2.0/24 | web subnet address |
Destination Type | IP | |
Destination address | 209.244.0.3,209.244.0.4 | |
Port | 53 |
Task 7 DNAT 규칙 만들기
1.Task6과 동일한 방법으로 RDP를 세팅 해야 방화벽을 통하여 Virtual Machine의
RDP를 접속할수 있도록 세팅 합니다.
DNAT | ||
NAT rule collection name | rdp | |
Priority | 200 | |
Rules Name | rdp-nat | |
Protocol | TCP | |
Source Type | IP | |
Source | * | |
Destination address | Check Azure Portal! | firewall public ip |
Destination Ports | 3389 | |
Translated address | 18.0.2.4 | web server private IP address |
Translated port | 3389 |
Task 8 Web 서버에 DNS 주소 변경
네트워크 규칙을 통하여 DNS 서버 주소를 받아 VM 의 DNS를 53번 포트로 받아서 아웃바운드가
생성되므로 VM에 네트워크 인터페이스에 209.244.0.3,209.244.0.4 주소를 Custom 도메인으로
설정을 합니다. 이 부분은 테스트 용도이며 실제 VM에 DNS는 주지 않습니다. 설정 후 VM을 재부팅
해야 네트워크 인터페이스가 설정이 됩니다.
013
Task 9 방화벽 테스트
1.원격 데스크탑을 통해서 방화벽(Firewall)의 맨앞단의 Public IP를 통해서 방화벽을
규칙에 따라 가상머신의 RDP 3389로 접속해서 웹서버에 접속합니다.
2.인터넷 익스플로어를 오픈 후 www.google.com을 입력합니다.
3.인터넷 브라우저의 방화벽을 사용하지 않습니다 를 선택합니다. 이때 나오는 방화벽은
인터넷브라우저 자체 방화벽이지 Azure Firewall이 아닙니다.
014
4. 선택 후 인터넷 브라우저가 싸이트를 블락 하겠습니다 라는 체크 하단의 녹색 화살표를 해제하고
Google.com을 신뢰하는 싸이트로 추가 합니다.
015
5.마지막 이 화면이 나오면 이제 모든 것이 성공 한 것이며 이화면이 나오지 않는다면
대부분 위에 설정을 잘못 설정한것이므로 다시 설정을 하거나 전체 삭제하고 처음부터
그대로 진행 하면 성공할 것 입니다.
016
마이크로소프트 Azure 방화벽 공식 문서
https://docs.microsoft.com/en-us/azure/firewall/overview?WT.mc_id=AZ-MVP-5002667