소개
이 문서에서는 신뢰도가 높은 환경에서 Azure에 자동 터널링된 Cisco FTDv(Firepower Threat Defense Virtual)를 구축하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- NGFW 및 Firepower Management Center는 프라이빗 IP를 통해 통신해야 함
- 외부 로드 밸런서에는 공용 IP가 없어야 합니다.
- 기능의 앱은 프라이빗 IP와 통신할 수 있어야 합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Azure
- Firepower Management Center
- 가상 머신 배율 집합
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
배경 정보
FTDv는 Cisco의 Firepower Next-Generation Firewall 기능을 가상화된 환경에 접목시켜 물리적, 가상, 클라우드 환경 및 클라우드 간에 워크로드를 지속적으로 처리할 수 있도록 일관된 보안 정책을 지원합니다.
가상화된 환경에서 이러한 구축을 사용할 수 있기 때문에 현재 NGFW에서는 HA를 지원하지 않습니다.따라서 가용성이 높은 솔루션을 제공하기 위해 Cisco NGFW(Next-Generation Firewall)는 Azure의 기본 기능(예: 가용성 집합 및 VMSS(Virtual Machine Scale Set)을 활용하여 NGFW의 가용성을 높이고 온디맨드 트래픽 증가를 지원합니다.
이 문서에서는 NGFW가 온디맨드 방식으로 확장되거나 확장되는 다양한 파라미터를 기반으로 Cisco NGFW를 AutoScale로 구성하는 데 중점을 둡니다.이는 고객이 협업 데이터 센터에서 사용할 수 있고 모든 NGFW를 중앙에서 관리하는 데 필요한 FMC(Firepower Management Center)를 사용해야 하는 요구 사항을 가지고 있는 활용 사례이며, 또한 고객은 관리 트래픽을 위해 공용 IP를 통해 통신하려는 FMC와 FTD를 원하지 않습니다.
구성 및 설계 고려 사항을 심층적으로 살펴보기 전에 Azure에서 잘 이해할 수 있는 몇 가지 개념은 다음과 같습니다.
- 가용 영역: 가용 영역은 데이터 센터 장애로부터 애플리케이션과 데이터를 보호하는 고가용성 제품입니다.가용성 영역은 Azure 지역 내의 고유한 물리적 위치입니다.각 영역은 독립된 전력, 냉각 및 네트워킹을 갖춘 하나 이상의 데이터 센터로 구성됩니다.
- VNET: Azure Virtual Network(VNet)는 Azure의 개인 네트워크에 대한 기본 구성 요소입니다.VNet은 Azure VM(Virtual Machine)과 같은 여러 유형의 Azure 리소스를 서로, 인터넷 및 온-프레미스 네트워크와 안전하게 통신할 수 있도록 합니다.VNet은 기존 네트워크와 유사하지만 확장, 가용성, 격리 등 Azure 인프라의 추가적인 이점을 제공합니다.VNET의 모든 서브넷은 기본적으로 서로 연결할 수 있지만 다른 VNET의 서브넷에 대해서는 동일하지 않습니다.
- 가용성 집합: 가용성 집합은 VM 이중화 및 가용성을 제공하는 또 다른 데이터 센터 컨피그레이션입니다.데이터 센터 내의 이 구성을 통해 계획된 또는 계획되지 않은 유지 관리 이벤트 중에 하나 이상의 가상 컴퓨터를 사용할 수 있으며 99.95% Azure SLA를 충족합니다.
- VMSS: Azure 가상 컴퓨터 크기 집합을 사용하여 부하 분산 VM 그룹을 만들고 관리할 수 있습니다.VM 인스턴스 수는 수요 또는 정의된 일정에 따라 자동으로 증가 또는 감소할 수 있습니다.스케일 세트는 애플리케이션에 고가용성을 제공하고 다수의 VM을 중앙에서 관리, 구성 및 업데이트할 수 있도록 지원합니다.가상 머신 스케일 세트를 사용하면 컴퓨팅, 빅 데이터, 컨테이너 워크로드와 같은 영역에 대규모 서비스를 구축할 수 있습니다.
- 함수 앱: Azure 기능은 온디맨드 방식으로 사용 가능한 클라우드 서비스로서 응용 프로그램을 실행하는 데 필요한 모든 지속적인 업데이트 인프라 및 리소스를 제공합니다.가장 중요한 코드 부분에 집중하면 Azure 함수가 나머지 부분을 처리합니다.Azure 함수를 사용하여 웹 API를 빌드하고, 데이터베이스 변경에 응답하고, IoT 스트림을 처리하고, 메시지 큐를 관리할 수 있습니다.이 자동 변환 솔루션에서 Azure 함수는 개체를 만들고, FTDv를 등록/등록 취소하며, 매개 변수 확인 등을 위해 FMC에 대한 다양한 API 요청입니다.
- 논리 앱: Azure Logic Apps는 기업 또는 조직에서 앱, 데이터, 시스템 및 서비스를 통합해야 할 때 작업, 비즈니스 프로세스 및 워크플로를 예약, 자동화 및 오케스트레이션하는 클라우드 서비스입니다.Logic Apps는 애플리케이션 통합, 데이터 통합, 시스템 통합, EAI(Enterprise Application Integration), B2B(Business-to-Business) 커뮤니케이션을 위해 클라우드, 온프레미스 또는 둘 다에 관계없이 확장 가능한 솔루션을 설계하고 구축하는 방법을 간소화합니다.이 솔루션은 Autoscaled 솔루션의 기능을 위해 실행할 기능의 논리적 시퀀스를 제공합니다.
현재 NGFW에 사용 가능한 AutoScale 솔루션은 VNet에 로컬로 Private IP와 통신하기 위한 관리 계획을 제공하지 않으며 Firepower Management Center와 NGFW 간의 통신을 교환하기 위해 Public IP가 필요합니다.
이 문서는 검증된 솔루션이 Firepower Management Center 및 NGFW 통신에서 프라이빗 IP를 통해 제공될 때까지 이 문제를 해결하는 데 목적이 있습니다.
구성
자동 NGFW 솔루션을 생성하려면 이 컨피그레이션 가이드가 사용됩니다.
https://www.cisco.com/c/en/us/td/docs/security/firepower/quick_start/azure/ftdv-azure-gsg/ftdv-azure-autoscale.html#Cisco_Concept.dita_c0b3cf0d-9690-4342-8cba-e66730e70c47
다음과 같은 활용 사례를 해결할 수 있도록 몇 가지 수정 사항이 있습니다.
- 기능의 앱은 고객의 내부 IP 세그먼트와 통신할 수 있어야 함
- 로드 밸런서에는 공용 IP가 없어야 합니다.
- NGFW와 FMC 간의 관리 트래픽은 프라이빗 IP 세그먼트를 통해 교환해야 합니다.
위에서 언급한 활용 사례와 함께 AutoScaled NGFW 솔루션을 생성하려면 Cisco 공식 가이드에 언급된 단계에서 이를 수정해야 합니다.
-
Azure ARM 템플릿
ARM 템플릿은 Azure에서 자동화를 사용하도록 설정하는 데 사용됩니다.Cisco는 자동 크기 조정 솔루션 생성에 활용할 수 있는 검증된 ARM 템플릿을 제공했습니다.그러나 이 ARM 템플릿은 Public Github https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/ARM%20Template에서 사용할 수 있으며, Express 경로를 통해 연결할 수 있지만 고객의 내부 네트워크와 통신할 수 없는 기능 앱을 생성합니다.따라서 이제 Function App이 Consumption Mode 대신 Premium 모드를 사용할 수 있도록 이 모드를 약간 수정해야 합니다.따라서 필요한 ARM 템플릿은 https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git에서 확인할 수 있습니다.
-
함수 APP
함수 앱은 Azure 함수 집합입니다.기본 기능은 다음과 같습니다.
- Azure 메트릭을 주기적으로 통신/프로브
- FTDv 로드를 모니터링하고 Scale In/Scale-Out 작업을 트리거합니다.
- FMC에 새 FTDv를 등록합니다.
- FMC를 통해 새 FTDv를 구성합니다.
- FMC에서 확장 FTDv를 등록 취소(제거)합니다.
요구 사항에 설명된 대로 온디맨드 NGFW 생성 또는 삭제를 위해 생성되는 다양한 기능은 NGFW의 공용 IP를 기반으로 합니다.따라서 공용 IP 대신 사설 IP를 얻기 위해 C# 코드를 수정해야 합니다.코드를 수정한 후 zip 파일을 사용하여 Function App을 만들 수 있습니다(https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git).
ASM_Function.zip이라는 이름으로 구성됩니다.그러면 Functions 앱이 공용 IP를 사용하지 않고 내부 리소스와 통신할 수 있습니다.
-
논리 앱
Auto Scale Logic App은 워크플로입니다. 즉 시퀀스의 단계 모음입니다.Azure 함수는 독립 엔터티이며 서로 통신할 수 없습니다.이 오케스트레이터는 이러한 기능의 실행을 시퀀스하고 상호 간에 정보를 교환합니다.
- 논리 앱은 Auto Scale Azure 함수 간에 정보를 오케스트레이션하고 전달하는 데 사용됩니다.
- 각 단계는 Azure 자동 확장 기능 또는 기본 제공 표준 논리를 나타냅니다.
- 논리 앱이 JSON 파일로 전달됩니다.
- 논리 앱은 GUI 또는 JSON 파일을 통해 사용자 지정할 수 있습니다.
참고:https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.git에서 사용할 수 있는 논리 앱 세부 정보를 신중하게 수정해야 하며 다음 항목은 배포 세부 정보, FUNSTIONAPP 이름, RESOURCE GROUP Name, SUBSCRIPTION ID로 대체되어야 합니다.
네트워크 다이어그램

이 이미지는 NGFW를 통해 Azure 환경 내에서 인바운드 및 아웃바운드 트래픽이 어떻게 이동하는지 보여줍니다.
구성
이제 자동 인식 솔루션에 필요한 다양한 구성 요소를 만듭니다.
- Autoscale Logic의 구성 요소를 만듭니다.
ARM 템플릿을 사용하여 VMSS, Logic APP, Function APP, App Insight, Network Security Group을 생성합니다.
Home(홈) > Create a Resource(리소스 생성) > Search for Template(템플릿 검색)으로 이동한 다음 Template Deployment(템플릿 구축)를 선택합니다.이제 편집기에서 Create and build your own template을 클릭합니다.

- Save(저장)를 클릭합니다.

이 템플릿을 필요에 따라 변경하고 Review +Create를 클릭합니다.
- 이렇게 하면 언급된 리소스 그룹 아래에 모든 구성 요소가 생성됩니다.

- URL에 로그인
https://<function_app_name>.scm.azurewebsites.net/DebugConsole
ASM_Function.zip 파일 및 ftdssh.exe를 site/wwroot/폴더에 업로드합니다(지정된 위치에 업로드해야 함). 그렇지 않으면 함수 앱에서 다양한 기능을 식별하지 않습니다.)
다음과 같아야 합니다.

- Function app > Function을 선택합니다.모든 기능이 표시되어야 합니다.

- VMSS가 Function App 내에서 Functions를 실행할 수 있도록 액세스 권한을 변경합니다.
<prefix>-vmss> Access Control (IAM) > Add role assignment로 이동합니다.이 VMSS에 <prefix>-function-app에 대한 참가자 액세스 제공

저장을 클릭합니다.
- Logic App(논리 앱) > Logic Code(논리 코드) 보기로 이동하고 다음 위치에서 사용할 수 있는 코드로 논리 코드를 변경합니다.
https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/Logic%20App
Azure 구독, 리소스 그룹 이름 및 함수 앱 이름을 사용하려면 먼저 바꿔야 합니다. 그렇지 않으면 저장할 수 없습니다.
- 저장을 클릭합니다.Logic App Overview(논리 앱 개요) 및 Enable Logic App(논리 앱 활성화)로 이동합니다.
다음을 확인합니다.
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에 연결할 수 없는 이유를 식별해야 합니다.