설명
Azure 네트워크 보안 규칙이 모든 주소에서 RDP 포트로 들어오는 연결을 허용하면 관리 서비스의 접근 범위가 필요 이상으로 넓어질 수 있습니다. 외부에서 실제로 연결 가능한 경우 암호 추측, 유출된 자격 증명 사용 또는 취약점 악용의 대상이 될 수 있습니다.
실제 연결 가능 여부는 NSG 연결 대상과 유효한 규칙 우선순위, 라우팅, 호스트 방화벽 및 RDP 서비스 상태에 따라 달라집니다. 네트워크 허용 자체가 로그인을 승인하지는 않습니다.
잠재적 영향
- 외부의 불필요한 RDP 로그인 시도가 증가할 수 있습니다.
- 계정이나 서비스가 침해되면 시스템과 내부 자원에 대한 접근으로 이어질 수 있습니다.
해결 방법
불필요한 RDP 허용 규칙을 제거하고 필요한 경우 승인된 관리 주소만 허용하세요. Azure Bastion이나 VPN 같은 관리 경로를 사용하고, NSG와 호스트 방화벽에서 같은 접근 의도를 적용하세요. 정상 관리 접속은 성공하고 승인되지 않은 주소의 접속은 차단되는지 확인하세요.
예시
같은 규칙에서 허용할 출발지 주소만 좁히는 예시입니다. 10.20.0.0/24는 실제 승인된 관리 네트워크로 바꾸고, 해당 네트워크의 연결 경로를 마련하세요.
변경 전
hcl
resource "azurerm_network_security_rule" "rdp_open" {
name = "allow-rdp"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "TCP"
source_port_range = "*"
destination_port_range = "3389"
source_address_prefix = "*"
destination_address_prefix = "*"
resource_group_name = azurerm_resource_group.example.name
network_security_group_name = azurerm_network_security_group.example.name
}
모든 출발지에서 TCP 3389 연결을 허용합니다.
변경 후
hcl
resource "azurerm_network_security_rule" "rdp_open" {
name = "allow-rdp"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "TCP"
source_port_range = "*"
destination_port_range = "3389"
source_address_prefix = "10.20.0.0/24"
destination_address_prefix = "*"
resource_group_name = azurerm_resource_group.example.name
network_security_group_name = azurerm_network_security_group.example.name
}
출발지를 관리 서브넷으로 제한합니다. 이 서브넷의 모든 사용자가 RDP 접근을 필요로 하는지와 다른 광범위한 허용 규칙이 없는지도 확인하세요.