728x90
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)은 중세 성곽의 가장 중요한 수비 부분을 의미한다.
참고 사이트
가상 머신(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 파일을 다운로드하여 접속한다.
VM 간 통신하기
- @VM1@의 데스크톱에서 PowerShell을 실행한다.
- @ping VM2@ 명령을 입력한다. 하지만 연결에 실패한다
💡@ping@은 ICMP(인터넷 제어 메시지 프로토콜)를 사용하기 때문에 실패한다. 기본적으로 ICMP는 Windows 방화벽으로 인하여 허용되지 않는다.
> ping VM2
- ICMP가 @VM1@의 Windows 방화벽을 통해 인바운드 되도록 허용해주기 위해 다음 명령을 입력한다.
> New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
- @VM2@도 동일하게 연결하여 PowerShell에서 @ping VM1@를 입력한다.
- 이번에는 @VM1@의 방화벽을 통해 ICMP를 허용했기 때문에 성공 회신이 표시된다.
- 반대로 @VM2@에서도 ICMP를 허용하도록 하고 @VM1@에서 @ping VM2@을 입력한다.
728x90
728x90
'DevOps > Azure' 카테고리의 다른 글
[Azure] 단일 데이터베이스 만들기 (0) | 2023.05.23 |
---|---|
[Azure] WebApp 생성 및 Flask 배포하기 (0) | 2023.05.23 |
[Azure] 워드프레스(WordPress) 사이트 만들기 (7) | 2023.05.21 |
[Azure] 가상 네트워크(Virtual Network) 생성 후, 네트워크 보안 그룹(NSG)을 통한 네트워크 트래픽 필터링 (NIC 연결) (1) | 2023.05.19 |
[Azure] 비주얼 스튜디오 코드(VS Code)와 애저(Azure) 연동하기 (0) | 2023.05.19 |
[Azure] 애저(Azure) 테넌트(Tenant) ID 찾는 방법 (0) | 2023.05.18 |
[Azure] 스토리지 계정(Storage Account) Blob Service/File Service/Queue Service 연동 및 실습 (0) | 2023.05.15 |
[Azure] Microsoft Azure 공부 내용 정리 📝 (0) | 2023.05.09 |