Share via


네트워크 보안 규칙 진단

네트워크 보안 그룹을 사용하여 Azure 리소스로의 인바운드 및 아웃바운드 네트워크 트래픽을 필터링하고 제어할 수 있습니다. Azure Virtual Network Manager를 사용하여 Azure 리소스에 관리 보안 규칙을 적용하여 네트워크 트래픽을 제어할 수도 있습니다.

이 문서에서는 Azure Network Watcher NSG 진단을 사용하여 Azure 트래픽에 적용되는 보안 규칙을 확인하고 문제를 해결하는 방법을 알아봅니다. NSG 진단은 적용된 보안 규칙에 따라 트래픽이 허용되거나 거부되는지 확인합니다.

이 문서의 예제에서는 잘못 구성된 네트워크 보안 그룹이 Azure Bastion을 사용하여 가상 머신에 연결하는 것을 방지하는 방법을 보여 줍니다.

필수 조건

가상 네트워크 및 Bastion 호스트 만들기

이 섹션에서는 두 개의 서브넷과 Azure Bastion 호스트가 있는 가상 네트워크를 만듭니다. 첫 번째 서브넷은 가상 머신에 사용되고 두 번째 서브넷은 Bastion 호스트에 사용됩니다. 또한 네트워크 보안 그룹을 만들고 첫 번째 서브넷에 적용합니다.

  1. 포털 상단에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

    스크린샷은 Azure Portal에서 가상 네트워크를 검색하는 방법을 보여줍니다.

  2. + 만들기를 선택합니다. 가상 네트워크 만들기기본 탭에서 다음 값을 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 Azure 구독을 선택합니다.
    리소스 그룹 새로 만들기를 선택합니다.
    이름myResourceGroup을 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    가상 네트워크 이름 myVNet을 입력합니다.
    지역 (미국) 미국 동부를 선택합니다.
  3. 보안 탭을 선택하거나 페이지 하단에 있는 다음 단추를 선택합니다.

  4. Azure Bastion에서 Azure Bastion 사용을 선택하고 기본값을 적용합니다.

    설정
    Azure Bastion 호스트 이름 myVNet-Bastion.
    Azure Bastion 공용 IP 주소 (신규) myVNet-bastion-publicIpAddress.
  5. IP 주소 탭을 선택하거나 페이지 하단에 있는 다음 단추를 선택합니다.

  6. 기본 IP 주소 공간 10.0.0.0/16을 적용하고 연필 아이콘을 선택하여 기본 서브넷을 편집합니다. 서브넷 편집 페이지에서 다음 값을 입력합니다.

    설정
    서브넷 세부 정보
    이름 mySubnet을 입력합니다.
    보안
    네트워크 보안 그룹 새로 만들기를 선택합니다.
    이름mySubnet-nsg를 입력합니다.
    확인을 선택합니다.
  7. 검토 + 만들기를 선택합니다.

  8. 설정을 검토한 다음, 만들기를 선택합니다.

Important

시간별 가격 책정은 아웃바운드 데이터 사용량에 관계없이 Bastion 호스트가 배포된 순간부터 시작됩니다. 자세한 내용은 가격 책정을 참조하세요. 사용이 완료되면 이 리소스를 삭제하는 것이 좋습니다.

가상 머신 만들기

이 섹션에서는 가상 머신과 네트워크 인터페이스에 적용된 네트워크 보안 그룹을 만듭니다.

  1. 포털 상단의 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. 만들기를 선택한 다음, Azure 가상 머신을 선택합니다.

  3. 가상 머신 만들기기본 탭에서 다음 값을 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 Azure 구독을 선택합니다.
    리소스 그룹 myResourceGroup을 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 myVM을 입력합니다.
    지역 (미국) 미국 동부를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 표준을 선택합니다.
    이미지 Windows Server 2022 Datacenter: Azure Edition - x64 Gen2를 선택합니다.
    크기 크기를 선택하거나 기본 설정을 그대로 둡니다.
    관리자 계정
    사용자 이름 사용자 이름을 입력합니다.
    암호 암호를 입력합니다.
    암호 확인 암호를 다시 입력합니다.
  4. 네트워킹 탭을 선택하거나 다음: 디스크, 다음: 네트워킹을 차례로 선택합니다.

  5. [네트워킹] 탭에서 다음 값을 선택합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 myVNet을 선택합니다.
    서브넷 기본값을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 기본을 선택합니다.
    공용 인바운드 포트 없음을 선택합니다.
  6. 검토 + 만들기를 선택합니다.

  7. 설정을 검토한 다음, 만들기를 선택합니다.

네트워크 보안 그룹에 보안 규칙 추가

이 섹션에서는 myVM의 네트워크 인터페이스와 연결된 네트워크 보안 그룹에 보안 규칙을 추가합니다. 규칙은 가상 네트워크의 인바운드 트래픽을 거부합니다.

  1. 포털 맨 위에 있는 검색 상자에 네트워크 보안 그룹을 입력합니다. 검색 결과에서 네트워크 보안 그룹을 선택합니다.

  2. 네트워크 보안 그룹 목록에서 myVM-nsg를 선택합니다.

  3. 설정 아래에서 인바운드 보안 규칙을 선택합니다.

  4. + 추가를 선택합니다. 네트워킹 탭에서 다음 값을 입력하거나 선택합니다.

    설정
    원본 서비스 태그를 선택합니다.
    원본 서비스 태그 VirtualNetwork를 선택합니다.
    원본 포트 범위 *를 입력합니다.
    대상 모두를 선택합니다.
    서비스 사용자 지정을 선택합니다.
    대상 포트 범위 *를 입력합니다.
    프로토콜 모두를 선택합니다.
    작업 거부를 선택합니다.
    우선 순위 1000을 입력합니다.
    이름 DenyVnetInBound를 입력합니다.
  5. 추가를 선택합니다.

    스크린샷은 Azure Portal의 네트워크 보안 그룹에 인바운드 보안 규칙을 추가하는 방법을 보여줍니다.

참고 항목

VirtualNetwork 서비스 태그는 가상 네트워크의 주소 공간, 연결된 모든 온-프레미스 주소 공간, 피어링된 가상 네트워크, 가상 네트워크 게이트웨이에 연결된 가상 네트워크, 호스트의 IP 주소 및 사용자 정의 경로에 사용되는주소 접두사를 나타냅니다. 자세한 내용은 서비스 태그를 참조하세요.

가상 머신 트래픽에 적용되는 보안 규칙 확인

NSG 진단을 사용하여 Bastion 서브넷에서 가상 머신으로 시작된 트래픽에 적용되는 보안 규칙을 확인합니다.

  1. 포털 상단의 검색 상자에서 Network Watcher를 검색하여 선택합니다.

  2. 네트워크 진단 도구에서 NSG 진단을 선택합니다.

  3. NSG 진단 페이지에서 다음 값을 입력하거나 선택합니다.

    설정
    대상 리소스
    대상 리소스 종류 가상 머신을 선택합니다.
    가상 머신 myVM 가상 머신을 선택합니다.
    트래픽 세부 정보
    프로토콜 TCP를 선택합니다. 다른 사용 가능한 옵션은 Any, UDPICMP입니다.
    Direction 인바운드를 선택합니다. 사용 가능한 다른 옵션은 아웃바운드입니다.
    소스 형식 IPv4 주소/CIDR을 선택합니다. 사용 가능한 다른 옵션은 서비스 태그입니다.
    IPv4 주소/CIDR Bastion 서브넷의 IP 주소 범위인 10.0.1.0/26을 입력합니다. 허용되는 값은 단일 IP 주소, 여러 IP 주소, 단일 IP 접두사, 여러 IP 접두사입니다.
    대상 IP 주소 myVM의 IP 주소인 10.0.0.4 기본값을 그대로 둡니다.
    대상 포트 *를 입력하여 모든 포트를 포함합니다.

    Azure Portal에서 가상 머신에 대한 인바운드 연결을 테스트하기 위해 NSG 진단에 필요한 값을 보여주는 스크린샷.

  4. NSG 진단 실행을 선택하여 테스트를 실행합니다. NSG 진단이 모든 보안 규칙 확인을 완료하면 결과가 표시됩니다.

    거부된 가상 머신에 대한 인바운드 연결의 결과를 보여주는 스크린샷.

    결과는 Bastion 서브넷의 인바운드 연결에 대해 평가된 세 가지 보안 규칙이 있음을 보여 줍니다.

    • GlobalRules: 이 보안 관리자 규칙은 Azure Virtual Network 관리를 사용하여 가상 네트워크 수준에서 적용됩니다. 규칙은 Bastion 서브넷에서 가상 머신으로의 인바운드 TCP 트래픽을 허용합니다.
    • mySubnet-nsg: 이 네트워크 보안 그룹은 서브넷 수준(가상 머신의 서브넷)에 적용됩니다. 규칙은 Bastion 서브넷에서 가상 머신으로의 인바운드 TCP 트래픽을 허용합니다.
    • myVM-nsg: 이 네트워크 보안 그룹은 NIC(네트워크 인터페이스) 수준에서 적용됩니다. 규칙은 Bastion 서브넷에서 가상 머신으로의 인바운드 TCP 트래픽을 거부합니다.
  5. myVM-nsg세부 정보 보기를 선택하여 이 네트워크 보안 그룹에 있는 보안 규칙과 트래픽을 거부하는 규칙에 대한 세부 정보를 확인합니다.

    가상 머신에 대한 트래픽을 거부한 네트워크 보안 그룹의 세부 정보를 보여주는 스크린샷.

    myVM-nsg 네트워크 보안 그룹에서 보안 규칙 DenyVnetInBoundVirtualNetwork 서비스 태그의 주소 공간에서 가상 머신으로 들어오는 트래픽을 거부합니다. Bastion 호스트는 VirtualNetwork 서비스 태그에 포함된 주소 범위 10.0.1.0/26의 IP 주소를 사용하여 가상 머신에 연결합니다. 따라서 Bastion 호스트의 연결은 DenyVnetInBound 보안 규칙에 의해 거부됩니다.

Bastion 서브넷의 트래픽을 허용하는 보안 규칙 추가

Azure Bastion을 사용하여 myVM에 연결하려면 네트워크 보안 그룹에서 Bastion 서브넷의 트래픽을 허용해야 합니다. 10.0.1.0/26의 트래픽을 허용하려면 DenyVnetInBound 규칙보다 우선 순위가 높은(낮은 우선 순위 번호) 보안 규칙을 추가하거나 DenyVnetInBound 규칙을 편집하여 Bastion 서브넷의 트래픽을 허용합니다.

가상 머신에 대한 트래픽을 거부하는 보안 규칙에 대한 세부 정보를 보여 주는 Network Watcher 페이지에서 네트워크 보안 그룹에 보안 규칙을 추가할 수 있습니다.

  1. Network Watcher 내에서 보안 규칙을 추가하려면 + 보안 규칙 추가를 선택한 후, 다음 값을 입력하거나 선택합니다.

    설정
    원본 IP 주소를 선택합니다.
    원본 IP 주소/CIDR 범위 Bastion 서브넷의 IP 주소 범위인 10.0.1.0/26을 입력합니다.
    원본 포트 범위 *를 입력합니다.
    대상 모두를 선택합니다.
    서비스 사용자 지정을 선택합니다.
    대상 포트 범위 *를 입력합니다.
    프로토콜 모두를 선택합니다.
    작업 수락을 선택합니다.
    우선 순위 DenyVnetInBound 규칙에 사용되는 1000보다 높은 우선 순위인 900을 입력합니다.
    이름 AllowBastionConnections를 입력합니다.

    Bastion 서브넷에서 가상 머신으로의 트래픽을 허용하기 위해 네트워크 보안 그룹에 새 보안 규칙을 추가하는 방법을 보여주는 스크린샷.

  2. 다시 확인을 선택하여 진단 세션을 다시 실행합니다. 이제 진단 세션에 Bastion 서브넷의 트래픽이 허용됨이 표시됩니다.

    Bastion 서브넷에서 가상 머신으로의 트래픽을 허용하는 보안 규칙을 추가한 후 네트워크 보안 그룹의 세부 정보를 보여주는 스크린샷.

    보안 규칙 AllowBastionConnections10.0.1.0/26의 모든 IP 주소에서 가상 머신으로의 트래픽을 허용합니다. Bastion 호스트는 10.0.1.0/26의 IP 주소를 사용하므로 가상 머신에 대한 연결은 AllowBastionConnections 보안 규칙에 따라 허용됩니다.

리소스 정리

더 이상 필요하지 않은 경우 리소스 그룹 및 해당 그룹에 포함된 모든 리소스를 삭제합니다.

  1. 포털 맨 위에 있는 검색 상자에 myResourceGroup을 입력합니다. 검색 결과에서 myResourceGroup을 선택합니다.

  2. 리소스 그룹 삭제를 선택합니다.

  3. 리소스 그룹 삭제myResourceGroup을 입력한 다음, 삭제를 선택합니다.

  4. 삭제를 선택하여 리소스 그룹 및 리소스 그룹의 모든 리소스의 삭제를 확인합니다.

다음 단계