클라우드/AWS

[AWS] BastionHost로 SSH터널링 : private subnet내의 EC2에 접속하기 / mobaXterm

개발자국S2 2023. 3. 14. 18:25

0. 아키텍쳐

 

Private Subnet에 있는 EC2에 접근하기 위한 방법으로는 VPN과 Bastion host를 사용하는 방법이 있는데, Bastion host를 사용하는것이 비용적으로 저렴하다. 내가 만들려고하는 Private EC2는 VPN접근이 필요없는 편이기도 해서 이렇게 테스트를 해봤다. 

 

*내가 실제로 사용할 WebServer의 EC2외로 Bastion host로 사용하기 위한 인스턴스가 따로 존재해야한다. 

Bastion 은 중세시대 성 외곽을 보호하는 돌출된 부분을 가리킨다. 즉, 뭔가를 방어한다는 뜻인데 Bastion은 private subnet내의 인스턴스를 접근하기 위한 도구로 보면된다. 배스쳔 호스트는 Public IP를 가진 게이트웨이이자 방화벽이라고 보면된다. 이 인스턴스에 인가되지 않은 ip는 내부로 접속할 수 없다. 

 

1. VPC 생성

  • bastion-test-vpc

생성한 리소스 : VPC등

이름태그 : bastion-test

IPv4 CIDR : 10.0.0.0/16

가용영역 수 : 1

퍼블릭서브넷 수 : 1

프라이빗 서브넷 수 : 1

 

완성된 Resource map


2. 보안그룹 2개 생성

콘솔 VPC메뉴 왼쪽에 > 보안 > 보안그룹 

  • 보안그룹 이름 : BT-bastion-sg
  • 설명(기입 안하면 안넘어감) : BT-bastion-sg
  • VPC : 위에서 생성한 VPC 선택
  • 인바운드 규칙 : 
    • 유형 : SSH
    • 소스 : Anywhere-IPv4
    • (사실 내 IP로 해야하는데 배스쳔호스트 작동 맛보기를 위한거라 좀 더 쉬운 버전으로 테스트해봤다)

  • 보안그룹 이름 : BT-private-sg
  • 설명(기입 안하면 안넘어감) : BT-private-sg
  • VPC : 위에서 생성한 VPC 선택
  • 인바운드 규칙 : 
    • 유형 : SSH
    • 소스 : 위 BT-bastion-sg의 보안그룹ID 기입


 

3. 인스턴스 2개 생성

  • 이름 : B-bastion (배스쳔서버)
  • AMI : Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type (기본)
  • 인스턴스 유형 : t2.micro
  • 키페어 - 없으면 생성  
    • 키페어 없으면 SSH 접속 안됨!! pem으로 생성하고 필요한 경우 putty-gen을 통해 ppk형으로 바꾸길
  • 네트워크 설정 : 
    • 위에서 만든 vpc 선택
    • 서브넷은 그 아래 public으로 선택
    • 퍼블릭 IP 자동 할당 활성화
    • 방화벽 : 기존 보안그룹 선택 - 위에서 만든 보안그룹 중 public에 해당하는 BT-bastion-sg 선택

  • 스토리지: 기본 설정

  • 이름 : B-private (웹서버)
  • AMI : Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type (기본)
  • 인스턴스 유형 : t2.micro
  • 키페어 - 없으면 생성  
    • 키페어 없으면 SSH 접속 안됨!! pem으로 생성하고 필요한 경우 putty-gen을 통해 ppk형으로 바꾸길
  • 네트워크 설정 : 
    • 위에서 만든 vpc 선택
    • 서브넷은 그 아래 private으로 선택
    • 퍼블릭 IP 자동 할당 비활성화
    • 방화벽 : 기존 보안그룹 선택 - 위에서 만든 보안그룹 중 private에 해당하는 BT-bastion-sg 선택

 

  • 스토리지: 기본 설정

 

이렇게 생성하면 B-bastion에게는 퍼블릭 IPv4주소가 주어지는 걸 확인할 수 있다. 

우리가 궁극적으로 접속하고 싶은건 B-private 인스턴스기 때문에 B-bastion의 IPv4는 하나의 접속을 위한 도구다. 

 


4. 접속

준비물 : mobaXterm

 

접속성공 ! 

 

 

접속한 웹서버에서 아파치 설정하는 건 다음 포스트로! 

 

 

 


 

 

참고 ) 

 

https://crystal-studyroom.tistory.com/2

 

Bastion host on AWS

Bastion host는 내부 네트워크와 외부 네트워크 사이의 게이트웨이라고 볼 수 있습니다. 내부 네트워크에 직접 접속하는 것을 방지하기 위해 내부 네트워크의 앞단에 위치하여 보안을 조금 더 강화

crystal-studyroom.tistory.com

 

https://neocan.tistory.com/363

 

AWS 네트워크 #06 - bastion host를 통한 private ec2 접속

지난 이야기 AWS 네트워크 #01 - VPC AWS 네트워크 #02 - Subnet AWS 네트워크 #03 - ROUTE TABLE, NAT GATEWAY AWS 네트워크 #04 - Security Group AWS 네트워크 #05 - EC2 생성 (Batstion host, private ec2) bastion host 접속 및 ssh 터

neocan.tistory.com

 

반응형