소개
이 문서에서는 자동 확장 Cisco FTDv(Firepower Threat Defense Virtual)를 고신뢰 환경에서 Azure에 구축하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- NGFW 및 Firepower Management Center는 프라이빗 IP를 통해 통신해야 함
- 외부 부하 분산 장치에는 공용 IP가 없어야 합니다.
- 기능의 앱이 프라이빗 IP와 통신할 수 있어야 합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- 아주레
- Firepower 관리 센터
- 가상 머신 확장 집합
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
FTDv는 Cisco의 Firepower Next-Generation Firewall 기능을 가상화된 환경에 적용하여 물리적, 가상 및 클라우드 환경 전반과 클라우드 간에 워크로드를 따르는 일관된 보안 정책을 구현합니다.
가상화된 환경에서 이러한 구축을 사용할 수 있으므로, 현재 NGFW에서는 HA를 지원할 수 없습니다. 따라서 가용성이 높은 솔루션을 제공하기 위해 Cisco NGFW(Next-Generation Firewall)는 가용성 집합 및 VMSS(Virtual Machine Scale Set)와 같은 Azure의 기본 기능을 활용하여 NGFW의 가용성을 높이고 온디맨드 트래픽 증가에 대처합니다.
이 문서에서는 NGFW가 온디맨드 방식으로 확장되거나 확장되는 다양한 매개변수를 기반으로 Cisco NGFW가 AutoScale이 되도록 구성하는 데 초점을 맞추고 있습니다. 여기에는 고객이 코로케이션 데이터 센터에서 사용 가능하고 모든 NGFW를 중앙에서 관리하는 데 필요한 FMC(Firepower Management Center)를 사용해야 하는 경우, 또한 관리 트래픽을 위해 공용 IP를 통해 통신하는 데 FMC 및 FTD를 원하지 않는 경우의 활용 사례가 포함됩니다.
구성 및 설계 고려 사항을 자세히 살펴보기 전에 Azure에 대해 잘 알고 있어야 하는 몇 가지 개념이 있습니다.
가용 영역: Availability Zone은 데이터 센터 장애로부터 애플리케이션과 데이터를 보호하는 고가용성 솔루션입니다. 가용성 영역은 Azure 지역 내에서 고유한 물리적 위치입니다. 각 영역은 독립적인 전력, 냉각 및 네트워킹을 갖춘 하나 이상의 데이터 센터로 구성됩니다.
VNET: Azure 가상 네트워크(VNet)는 Azure에서 개인 네트워크를 위한 기본 구성 요소입니다. VNet를 사용하면 Azure VM(가상 컴퓨터)과 같은 다양한 유형의 Azure 리소스가 서로, 인터넷 및 온-프레미스 네트워크와 안전하게 통신할 수 있습니다. VNet은 자체 데이터 센터에서 운영한다는 점에서 기존 네트워크와 유사하지만 확장성, 가용성, 격리 등 Azure 인프라의 추가 이점을 제공합니다. VNET 내의 모든 서브넷은 기본적으로 서로 연결할 수 있지만, 서로 다른 VNET의 서브넷에 대해서도 마찬가지가 아닙니다.
가용성 집합: 가용성 세트는 VM 이중화 및 가용성을 제공하기 위한 또 다른 데이터 센터 컨피그레이션입니다. 데이터 센터 내의 이 구성을 사용하면 계획된 유지 관리 이벤트 또는 계획되지 않은 유지 관리 이벤트 중에 하나 이상의 가상 컴퓨터를 사용할 수 있으며 99.95%의 Azure SLA를 충족할 수 있습니다.
VMSS: Azure 가상 컴퓨터 크기 조정 집합을 사용하면 부하가 분산된 VM 그룹을 만들고 관리할 수 있습니다. VM 인스턴스 수는 수요나 정의된 일정에 따라 자동으로 증가하거나 감소할 수 있습니다. 스케일 세트는 애플리케이션에 고가용성을 제공하며 다수의 VM을 중앙에서 관리, 구성 및 업데이트할 수 있도록 합니다. 가상 머신 확장 세트를 사용하면 컴퓨팅, 빅 데이터, 컨테이너 워크로드 등의 영역에 대한 대규모 서비스를 구축할 수 있습니다.
Functions App: Azure Functions는 온디맨드로 사용할 수 있는 클라우드 서비스로서 응용 프로그램을 실행하는 데 필요한 모든 지속적으로 업데이트된 인프라 및 리소스를 제공합니다. 가장 중요한 코드 조각에 초점을 맞추면 Azure Functions에서 나머지를 처리합니다. Azure 함수를 사용하여 웹 API를 빌드하고, 데이터베이스 변경에 응답하고, IoT 스트림을 처리하고, 메시지 큐를 관리하는 등의 작업을 수행할 수 있습니다. 이 자동 크기 조정 솔루션에서 Azure 함수는 개체 만들기, FTDv 등록/등록 취소, 매개 변수 확인 등을 위해 FMC에 다양한 API 요청입니다.
Logic App: Azure Logic Apps는 기업 또는 조직 간에 앱, 데이터, 시스템 및 서비스를 통합해야 할 때 작업, 비즈니스 프로세스 및 워크플로를 예약, 자동화 및 오케스트레이션하는 데 도움이 되는 클라우드 서비스입니다. Logic Apps는 클라우드, 온프레미스 또는 두 가지 모두에서 앱 통합, 데이터 통합, 시스템 통합, EAI(Enterprise Application Integration) 및 B2B(Business-to-Business) 커뮤니케이션을 위한 확장 가능한 솔루션을 설계하고 구축하는 방법을 간소화합니다. 이 솔루션은 자동 스케일링된 솔루션의 기능을 위해 실행될 함수의 논리적 시퀀싱을 제공합니다.
현재 NGFW에 사용 가능한 AutoScale 솔루션은 VNet에 로컬인 프라이빗 IP와 통신할 수 있는 관리 계획을 제공하지 않으며, Firepower Management Center와 NGFW 간의 통신을 교환하기 위해 퍼블릭 IP가 필요합니다.
이 문서에서는 검증된 솔루션을 프라이빗 IP를 통한 Firepower Management Center 및 NGFW 통신에 사용할 수 있을 때까지 이 문제를 해결하고자 합니다.
구성
Autoscaled NGFW 솔루션을 생성하기 위해 다음 활용 사례를 해결할 수 있도록 이 컨피그레이션 가이드를 몇 가지 수정 사항과 함께 사용합니다.
- 기능의 앱이 고객의 내부 IP 세그먼트와 통신할 수 있어야 함
- 로드 밸런서에는 공용 IP가 없어야 합니다.
- NGFW와 FMC 간의 관리 트래픽은 프라이빗 IP 세그먼트를 통해 교환되어야 합니다
AutoScaled NGFW 솔루션을 구축하려면 앞서 언급한 활용 사례를 Cisco 공식 가이드에 언급된 단계에서 수정해야 합니다.
1. Azure ARM 템플릿
ARM 템플릿은 Azure에서 자동화를 사용하도록 설정하는 데 사용됩니다. Cisco는 자동 크기 조정 솔루션을 만드는 데 활용할 수 있는 검증된 ARM 템플릿을 제공했습니다. 그러나 퍼블릭 Github에서 사용 가능한 이 ARM 템플릿은 Express 경로를 통해 연결할 수 있지만 고객의 내부 네트워크와 통신할 수 있도록 만들 수 없는 Functions App을 생성합니다. 따라서 기능 앱에서 소비 모드 대신 프리미엄 모드를 사용할 수 있도록 이를 약간 수정해야 합니다. 따라서 필요한 ARM 템플릿은 https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git에서 사용할 수 있습니다.
2. 기능 앱
함수 앱은 Azure 함수 집합입니다. 기본 기능에는 다음이 포함됩니다.
- 정기적으로 Azure 메트릭을 통신/탐색합니다.
- FTDv 로드를 모니터링하고 확장/확장 작업을 트리거합니다.
- FMC에 새 FTDv를 등록합니다.
- FMC를 통해 새 FTDv를 구성합니다.
- FMC에서 확장 FTDv를 등록 취소(제거)합니다.
요구 사항에서 언급했듯이 온디맨드 NGFW 생성 또는 삭제를 위해 생성되는 다양한 기능은 NGFW의 공용 IP를 기반으로 합니다. 따라서 공용 IP 대신 개인 IP를 가져오려면 C# 코드를 조정해야 합니다. 코드를 조정한 후 기능 앱을 만들기 위해 zip 파일은 https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git에서 사용할 수 있습니다.
이름을 ASM_Function.zip으로 지정합니다. 그러면 Functions 앱이 공용 IP를 사용하지 않고 내부 리소스와 통신할 수 있습니다.
3. 논리 앱
Auto Scale Logic App은 워크플로, 즉 시퀀스의 단계 모음입니다. Azure 함수는 독립적인 엔터티이며 서로 통신할 수 없습니다. 이 오케스트레이터는 이러한 기능의 실행을 시퀀싱하고 이들 간에 정보를 교환합니다.
- 논리 앱은 자동 크기 조정 Azure 함수 간에 정보를 오케스트레이션하고 전달하는 데 사용됩니다.
- 각 단계는 Azure 자동 크기 조정 기능 또는 기본 제공 표준 논리를 나타냅니다.
- Logic App은 JSON 파일로 제공됩니다.
- Logic App은 GUI 또는 JSON 파일을 통해 사용자 정의할 수 있습니다.
참고: https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git에서 사용할 수 있는 논리 앱 세부 정보를 신중하게 수정해야 하며 이러한 항목은 배포 세부 정보, FUNCTIONAPP 이름, 리소스 그룹 이름, 구독 ID로 교체해야 합니다.
네트워크 다이어그램
이 이미지는 인바운드 및 아웃바운드 트래픽이 NGFW를 통해 Azure 환경 내에서 이동하는 방식을 보여줍니다.
설정
이제 자동 크기 조정 솔루션에 필요한 다양한 구성 요소를 만듭니다.
- 자동 크기 조정 논리의 구성 요소를 만듭니다.
ARM 템플릿을 사용하고 VMSS, Logic APP, Function APP, App Insight 및 Network Security Group을 생성합니다.
탐색 Home > Create a Resource > Search for Template
선택한 다음 Template Deployment
. 이제 Create
편집기에서 고유한 템플릿을 작성합니다.
- 클릭
Save
.
이 템플릿을 필요한 대로 변경하고 Review + create
.
- 이렇게 하면 언급된 리소스 그룹 아래에 모든 구성 요소가 생성됩니다.
- URL에 로그인합니다.
파일 업로드 ASM_Function.zip
및 ftdssh.exe
수신 site/wwwroot/
폴더(지정된 위치에 업로드해야 함 기능 앱이 다양한 기능을 식별하지 않음)
다음 이미지와 같아야 합니다.
- 체크 인
Function app > Function
. 모든 기능을 볼 수 있습니다.
- VMSS가 함수 앱 내에서 함수를 실행할 수 있도록 액세스 권한을 변경합니다. 탐색
-vmss> Access Control (IAM) > Add role assignement
. 이 VMSS 기여자 액세스 권한을
-function-app
.
클릭 Save
.
- 탐색
Logic App > Logic Code
https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/Logic%20App에서 제공되는 코드를 사용하여 논리 코드를 보고 변경합니다. 여기서 Azure 구독, 리소스 그룹 이름 및 함수 앱 이름은 사용하기 전에 교체해야 합니다. 이 이름은 성공적으로 저장할 수 없습니다.
- 클릭
Save
. Logic App Overview(로직 앱 개요)로 이동하여 Enable(활성화) Logic App
.
다음을 확인합니다.
논리 앱이 즉시 활성화되면 5분 간격으로 실행이 시작됩니다. 모든 것이 올바르게 구성되면 트리거 작업이 성공하는 것을 볼 수 있습니다.
또한 VM은 VMSS에서 생성됩니다.
FMC에 로그인하여 FMC 및 NGFW가 FTDv Private IP를 통해 연결되어 있는지 확인합니다.
NGFW CLI에 로그인하면 다음과 같이 표시됩니다.
따라서 FMC는 Azure Private VNet 서브넷을 통해 NGFW와 통신합니다.
문제 해결
새로운 NGFW를 구축할 때 Logic App이 실패하는 경우가 있는데, 이러한 문제를 해결하기 위해 다음 단계를 수행할 수 있습니다.
- 논리 앱이 성공적으로 실행되고 있는지 확인합니다.
- 실패의 원인을 파악합니다. 실패한 트리거를 클릭합니다.
코드 흐름에서 오류 지점을 식별해 보십시오. 이 그림에서 ASM 로직이 FMC에 연결할 수 없어 실패한 것이 분명합니다. 다음으로 Azure 내의 흐름에 따라 FMC에 연결할 수 없는 이유를 확인해야 합니다.