설명
NSG가 모든 출발지에서 TCP 3389를 허용하면, 해당 규칙이 적용되고 연결 경로가 있는 클라이언트가 RDP 연결을 시도할 수 있습니다. 실제 외부 접근은 NSG 연결, 규칙 우선순위, VM의 주소·라우팅과 호스트 방화벽에도 달려 있습니다.
관리용 RDP는 승인된 관리자 주소, VPN이나 Azure Bastion 같은 통제된 경로로 제한하세요. 네트워크 제한과 별도로 강한 인증과 보안 업데이트도 필요합니다.
잠재적 영향
- 도달 가능한 RDP 서비스에 무차별 대입이나 유출된 자격 증명을 이용한 로그인 시도가 늘어날 수 있습니다.
- 서비스 취약점이나 약한 인증이 있으면 VM과 연결된 자원이 침해될 수 있습니다.
해결 방법
- 불필요한 전체 출발지 허용을 제거하고 실제 관리 경로에 필요한 출발지만 허용하세요. 먼저 대체 관리 연결을 준비해 운영자 접근이 끊기지 않도록 하세요.
- NIC와 서브넷에 연결된 NSG의 유효 규칙, 우선순위와 IPv4·IPv6 접근을 함께 확인하세요. 더 높은 우선순위의 허용 규칙이 있으면 뒤의 거부 규칙보다 먼저 적용됩니다.
- 변경 후 승인된 관리자 연결과 불필요한 외부 연결의 차단을 시험하고 VM의 인증·패치·로그를 점검하세요.
예시
예시는 NSG의 규칙만 구성하며 NIC나 서브넷 연결은 포함하지 않습니다. 같은 NSG의 대안 구성이며, 필요한 관리 경로와 더 높은 우선순위의 제한적 허용 규칙은 별도로 검토하세요.
변경 전
bicep
resource security_group 'Microsoft.Network/networkSecurityGroups@2020-11-01' = {
name: 'rdp-security-group'
location: resourceGroup().location
tags: {}
properties: {
securityRules: [
{
properties: {
description: 'access to RDP'
protocol: 'Tcp'
sourcePortRange: '*'
destinationPortRange: '3389'
sourceAddressPrefix: '*'
destinationAddressPrefix: '*'
access: 'Allow'
priority: 301
direction: 'Inbound'
}
name: 'rdp-rule'
}
]
}
}
이 규칙이 적용되면 모든 출발지에서 TCP 3389를 허용합니다.
변경 후
bicep
resource security_group 'Microsoft.Network/networkSecurityGroups@2020-11-01' = {
name: 'rdp-security-group'
location: resourceGroup().location
tags: {}
properties: {
securityRules: [
{
properties: {
description: 'access to RDP'
protocol: 'Tcp'
sourcePortRange: '*'
destinationPortRange: '3389'
sourceAddressPrefix: '*'
destinationAddressPrefix: '*'
access: 'Deny'
priority: 301
direction: 'Inbound'
}
name: 'rdp-rule'
}
]
}
}
우선순위가 더 높은 규칙과 일치하지 않은 TCP 3389 트래픽을 거부합니다. 필요한 관리 접근까지 막지 않는지 적용 전에 확인하세요.