FTP를 지원하려면 방화벽에서 다음 주요 측면을 고려해야 합니다.
- FTP 모드 – 활성 또는 수동
- 클라이언트 및 서버 위치 - 인터넷 또는 인트라넷
- 흐름 방향 - 인바운드 또는 아웃바운드
Azure Firewall은 활성 및 수동 FTP 시나리오를 모두 지원합니다. FTP 모드에 대한 자세한 내용은 활성 FTP 및 수동 FTP, 결정적 설명을 참조하세요.
기본적으로 Azure Firewall은 수동 FTP를 사용하도록 설정하고 FTP PORT 명령을 사용하는 FTP 반송 공격으로부터 보호하기 위해 활성 FTP 지원을 사용하지 않도록 설정합니다.
그러나 Azure PowerShell, Azure CLI 또는 Azure ARM 템플릿을 사용하여 Azure Firewall을 배포할 때 활성 FTP를 사용하도록 설정할 수 있습니다. Azure Firewall은 활성 및 수동 FTP를 동시에 지원할 수 있습니다.
ActiveFTP 는 다음을 사용하도록 설정할 수 있는 Azure Firewall 속성입니다.
- 모든 Azure Firewall SKU
- 보안 허브 및 가상 네트워크 방화벽
- 정책 및 클래식 규칙을 사용하는 방화벽
지원되는 시나리오
다음 표에서는 다양한 FTP 시나리오를 지원하는 데 필요한 구성을 보여 줍니다.
팁
연결을 지원하도록 클라이언트 쪽에서 방화벽 규칙을 구성해야 할 수도 있습니다.
주의
기본적으로 Azure Firewall은 수동 FTP를 사용하도록 설정하고 활성 FTP에는 추가 구성이 필요합니다. 자세한 내용은 다음 섹션을 참조하세요.
대부분의 FTP 서버는 보안상의 이유로 다른 원본 IP 주소의 데이터 및 제어 채널을 허용하지 않습니다. 따라서 Azure Firewall을 통한 FTP 세션은 단일 클라이언트 IP와 연결해야 합니다. 이 요구 사항은 Azure Firewall 개인 IP를 사용하여 E-W FTP 트래픽을 SNAT해서는 안 된다는 것을 의미합니다. 대신 FTP 흐름에 클라이언트 IP 를 사용합니다. 인터넷 FTP 트래픽의 경우 FTP 연결을 위한 단일 공용 IP로 Azure Firewall을 프로비전합니다. NAT 게이트웨이를 사용하여 SNAT 고갈을 방지합니다.
| 방화벽 시나리오 | 활성 FTP 모드 | 수동 FTP 모드 |
|---|---|---|
| VNet-VNet | 구성할 네트워크 규칙: - 원본 가상 네트워크에서 대상 IP의 포트 21을 허용 - 목적지 IP 포트 20에서 출발하여 소스 가상 네트워크로 허용 |
구성할 네트워크 규칙: - 소스 가상 네트워크에서 대상 IP의 포트 21로 허용 - 소스 가상 네트워크에서 대상 IP의 <데이터 포트 범위>로 허용 |
| 아웃바운드 가상 네트워크 - 인터넷 (가상 네트워크의 FTP 클라이언트, 인터넷의 서버) |
지원되지 않음 1 | 구성할 네트워크 규칙: - 소스 가상 네트워크에서 대상 IP의 포트 21로 허용 - 원본 가상 네트워크에서 대상 IP로 데이터 포트 범위를 허용<> |
| 인바운드 DNAT (인터넷의 FTP 클라이언트, 가상 네트워크의 FTP 서버) |
DNAT 규칙 구성하기: - 인터넷 소스에서 가상 네트워크 IP 포트 21로의 DNAT 구성할 네트워크 규칙: - FTP 서버 IP에서 인터넷 클라이언트 IP로의 트래픽을 활성 FTP 포트 범위에서 허용합니다. |
지원되지 않음 2 |
1 활성 FTP는 FTP 클라이언트가 인터넷의 FTP 서버에 도달해야 하는 경우 작동하지 않습니다. 활성 FTP는 FTP 서버에 데이터 채널에 사용할 IP 주소 및 포트를 알려주는 FTP 클라이언트의 PORT 명령을 사용합니다. 이 PORT 명령은 변경할 수 없는 클라이언트의 개인 IP 주소를 사용합니다. Azure Firewall을 통과하는 클라이언트 쪽 트래픽은 인터넷 기반 통신에 대해 NAT로 지정되므로 FTP 서버에서는 PORT 명령을 잘못된 것으로 표시합니다. 이는 클라이언트 쪽 NAT와 함께 사용할 때 활성 FTP의 일반적인 제한 사항입니다.
2 Azure Firewall을 통한 인터넷 클라이언트의 데이터 경로 트래픽이 잠재적으로 다른 IP 주소(부하 분산 장치로 인해)를 사용할 수 있기 때문에 인터넷을 통한 수동 FTP는 지원되지 않습니다. 보안상의 이유로 다른 원본 IP 주소의 제어 및 데이터 평면 트래픽을 허용하도록 FTP 서버 설정을 변경하지 않는 것이 좋습니다.
Azure PowerShell을 사용하여 배포
Azure PowerShell을 사용하여 배포하려면 매개 변수를 AllowActiveFTP 사용합니다. 자세한 내용은 활성 FTP를 사용하여 방화벽 만들기를 참조하세요.
Azure PowerShell을 사용하여 기존 Azure Firewall 업데이트
Azure PowerShell을 사용하여 기존 Azure Firewall을 업데이트하려면 매개 변수AllowActiveFTP를 True .로 설정합니다.
$rgName = "resourceGroupName"
$afwName = "afwName"
$afw = Get-AzFirewall `
-Name $afwName `
-ResourceGroupName $rgName
$afw.AllowActiveFTP = $true
$afw | Set-AzFirewall
Azure CLI를 사용하여 배포
Azure CLI를 사용하여 배포하려면 매개 변수를 --allow-active-ftp 사용합니다. 자세한 내용은 az network firewall create를 참조하세요.
Azure Resource Manager 템플릿 배포
ARM 템플릿을 사용하여 배포하려면 다음 AdditionalProperties 필드를 사용합니다.
"additionalProperties": {
"Network.FTP.AllowActiveFTP": "True"
},
자세한 내용은 Microsoft.Network azureFirewalls를 참조하세요.
다음 단계
- FTP 시나리오에 대한 자세한 내용은 Azure Firewall을 사용하여 FTP 트래픽 시나리오 유효성 검사를 참조하세요.
- Azure Firewall을 배포하는 방법을 알아보려면 Azure PowerShell을 사용하여 Azure Firewall 배포 및 구성을 참조하세요.