728x90

가상 네트워크(Virtual Network) 배포 및 실습

들어가며

  • 애저(Azure)에서 가상 네트워크(VNet)을 만들어보고 실습해보자.

 

실습하기

가상 네트워크(VNet) 만들기

  • 검색창에 '가상 네트워크'를 검색하여 <가상 네트워크 서비스> 페이지에 진입한다.

'가상 네트워크'를 검색하여 서비스 페이지에 진입한다.

  • <가상 네트워크 만들기> 화면의 [기본 사항] 탭에서 다음 정보를 입력하거나 선택한다.
    • 리소스 그룹 : 선택
    • 가상 네트워크 이름 : VNet

 

  • [IP 주소] 페이지에서 다음과 같이 서브넷을 추가한다.
    • 서브넷 이름 :@default@
    • 서브넷 주소 범위 : @10.0.0.0/24@
서브넷을 만든 후의 모습

 

  • Azure Bastion 사용 유무를 선택한다. 그리고 다음의 정보를 입력한다.
    • 배스천 이름 : @bastion@
    • AzureBastionSubnet 주소공간: @10.0.1.0/25@
    • 공용 IP 주소 : [새로 만들기]를 클릭한 후, 이름 아래에 @bastionPip@을 입력한 후 [확인] 버튼 클릭

 

배스천 호스트(Bastion Host)

  • 방화벽 시스템이 가지는 기능 중 가장 중요한 기능을 제공한다.
    • 방화벽 시스템 관리자가 중점 관리하게 될 시스템
    • 방화벽 시스템의 중요 기능으로서 접근 제어응용 시스템, 게이트웨이로서 가상 서버(Proxy Server)의 설치, 인증, 로그 등을 담당한다.
    • 외부의 침입자가 노리는 시스템이 되므로, 일반 사용자의 계정을 만들지 않고 해킹의 대상이 될 어떠한 조건도 두지 않는 가장 완벽한 시스템으로서 운영되어야 한다.
  • WAS 나 DBMS 서버등은 외부에 노출하면 안 되므로 별도의 사설망에 위치시키고, IP도 공용 IP가 아닌 사설 IP를 할당해서 운영해야 한다.
  • 하지만 회사 내부의 개발자 PC 등 정해진 곳에서 사설망 내의 서버에 개발이나 관리를 위해 SSH 등으로 원격 접속이 필요하며, 네트워크를 분할할 경우 사설망 내부의 서버들은 공용 IP가 없으므로 외부에서 바로 접근 불가한 문제가 있다.
    • 배스천 호스트는 이런 이유로 공용 서브넷(Public Subnet)에 위치시키고, 운영 서버에 SSH로 원격 접근 권한은 배스천 호스트만 가능하도록 내부의 방화벽 및 보안 정책을 적용하면, 보안편의성 2가지 혜택을 모두 얻을 수 있다.
    • 물론 배스천 호스트는 내부망에 연결 가능한 중요한 서버이므로, 방화벽과 침입 탐지 등 여러 가지 보안 강화 대책을 적용하고 사용자의 접근 이력 로깅과 수행한 작업 등을 남겨 놓도록 설정하는 것이 좋다.
    • 특히 배스천 호스트에 접근할 개발자 PC의 IP만 명시적으로 접근을 허용하고, SSH 포트는 22번이 아닌 다른 포트를 사용하고, 로그인시에 Two Factor 인증(OTP + 공개키)으로 보안을 강화하는 것이 권장된다.

배스천 호스트의 구성

  • 원래 배스천(Bastion)중세 성곽의 가장 중요한 수비 부분을 의미한다.

Bastion ⓒWikipedia

 

참고 사이트
 

배스천 호스트

배스천 호스트는 방화벽 시스템이 가지는 기능 중 가장 중요한 기능을 제공하게 된다. 원래 배스천(bastion)은 중세 성곽의 가장 중요한 수비 부분을 의미하는데, 방화벽 시스템 관리자가 중점 관

terms.naver.com

 

베스천 호스트

 

www.lesstif.com

 

가상 머신(Virtual Machine) 만들기

  • 가상 네트워크에 @VM1@ 및 @VM2@ 라는 2개의 VM을 만든다.
    • [기본 사항] 탭
      • 리소스 그룹 : 선택
      • 가상 머신 이름 : @VM1@
      • 지역 : 가상 네트워크(VNet)와 동일한 지역
      • 가용성 옵션 : 인프라 중복이 필요하지 않음
      • 이미지 : Windows Server 2022 Datacenter - x64 Gen2
      • 크기 : 기본값 or 선택
      • 사용자 이름, 암호 및 암호 확인 : VM에 대한 관리자 사용자 이름 및 암호 입력
      • 공용 인바운드 포트 : RDP(3389)
    • [네트워킹] 탭
      • 가상 네트워크 : 이전에 생성한 VNet
      • 서브넷 : default
      • 공용 IP : 자동으로 생성된 IP를 그대로 사용
  • 위와 동일한 과정으로 @VM2@를 만들어준다.

 

리소스 그룹에 생성된 리소스 확인

  • 웹 브라우저에서 Azure Bastion으로 웹 프로토콜(HTTPS)로 연결되며, Azure Bastion가상 머신가상 네트워크 내에서 연결된다.
  • 네트워크 보안 그룹은 사용하지 않지만, 외부에서 가상 머신으로 연결하는 포트가 필요하다면 네트워크 보안 그룹이 필요하다.

 

VM에 연결하기

  • Azure 포털에서 가상 머신을 검색하고 선택한다.
  • 가상 머신 페이지에서 @VM1@을 선택한다.
  • @VM1@ 페이지에서 Azure Bastion을 설정해준다.
 
  • 그리고 RDP 파일을 다운로드하여 접속한다.

 

  • @VM2@ 또한 동일하게 Azure Bastion을 설정해주고 RDP 파일을 다운로드하여 접속한다.

VM1과 VM2의 RDP 파일을 실행한 모습

 

VM 간 통신하기

  • @VM1@의 데스크톱에서 PowerShell을 실행한다.
  • @ping VM2@ 명령을 입력한다. 하지만 연결에 실패한다 
💡@ping@은 ICMP(인터넷 제어 메시지 프로토콜)를 사용하기 때문에 실패한다. 기본적으로 ICMP Windows 방화벽으로 인하여 허용되지 않는다.
> ping VM2

Received = 0 (실패)

 

  • ICMP가 @VM1@의 Windows 방화벽을 통해 인바운드 되도록 허용해주기 위해 다음 명령을 입력한다.
> New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

 

  • @VM2@도 동일하게 연결하여 PowerShell에서 @ping VM1@를 입력한다.
    • 이번에는 @VM1@의 방화벽을 통해 ICMP를 허용했기 때문에 성공 회신이 표시된다.

Received = 4 (성공)

 

  • 반대로 @VM2@에서도 ICMP를 허용하도록 하고 @VM1@에서 @ping VM2@을 입력한다.
VM1에서 ping VM2 명령을 입력한 모습. Received =4 (성공)

 

 

728x90