bastion Host로 private network접속하기

Jinny·2020년 11월 8일
0

시작하기전에 먼저 배스쳔호스트(Bastion Host)란 무엇일까?

내부와 외부 네트워크 사이에있는 게이트웨이역할을 하는 호스트로 외부에서 바로 내부에 접근하는 것을 막기위해 사용한다.

실습을 하기전에 aws에서 VPC를 이렇게 구성해봤다.

그림은 이래도 사실 테스트하는건 왼쪽 위의 두 서브넷 사이의 EC2이다. (그 두개에 대해서만 설명하겠음)

10.40.0.0/16 주소를 가지는 VPC안에 두개의 가용영역으로 나누었다.
각 가용영역에는 3개의 서브넷을 가지게 하였다.
(지금 생각해보니 프라이빗 서브넷이 각 두개씩인것 같다.)

나는 10.40.10.0/24 서브넷안에 EC2를 Bastion HOST로 만들어서 10.40.30.0/24안에 있는 EC2에 접속해보려고 한다.

10.40.10.0/24에 있는 EC2를 EC2, 10.40.30.0/24에 있는 EC2를 NAT-EC2라고 하자


1. EC2를 Bastion host로 만들기

1. 외부와 통신할 수 있는 인터넷 게이트웨이를 해당 서브넷에 연결한다.
2. 보안그룹 인바운드 규칙은 '내 IP'로 설정하고 (내 IP에서만 접속할 수 있다.) VPC 대역은 All Traffic OPEN을 해준다. (보안그룹은 모든 EC2에 적용)
3. EC2의 퍼블릭 아이피 자동할당을 체크 해제하고, EIP를 하나 생성해서 연결해준다.
4. NAT gateway를 3번에서 만든 EIP와 연결하고 서브넷으로 10.40.30.10/24연결 (NAT는 프라이빗서브넷에서 외부와 통신하고 싶을때 사용하는 게이트웨이로, 퍼블릭 네트워크에 있어야 함!)

2. EC2로 접속하기

jiyun@beulaendiui-MacBookPro Downloads % chmod 400 <YOUR_KEY.pem>
jiyun@beulaendiui-MacBookPro Downloads % ssh -i "<YOUR_KEY.pem>" ec2-user@54.250.99.24

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-40-10-21 ~]$ 

3. EC2 bastion host를 통해 NAT-EC2 접속

# local에 있는 key를 public ec2로 옮기기
# 54.250.99.24는 위에서 할당받은 EIP
# local에 있는 키를 ec2로 옮김(ec2에서 nat-ec2접속할꺼니까, 걔도 키가 필요해)
jiyun@beulaendiui-MacBookPro Downloads % scp -i <YOUR_KEY.pem> ./<YOUR_KEY.pem> ec2-user@54.250.99.24:/home/ec2-user
<YOUR_KEY.pem>

# public ec2에 접속해서 키있는지 확인
jiyun@beulaendiui-MacBookPro Downloads % ssh -i "<YOUR_KEY.pem>" ec2-user@54.250.99.24
Last login: Fri Oct 30 07:50:46 2020 from 112.217.214.154

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-40-10-21 ~]$ ls
<YOUR_KEY.pem>
[ec2-user@ip-10-40-10-21 ~]$ ls -l
합계 4
-r-------- 1 ec2-user ec2-user 1700 10월 30 08:26 <YOUR_KEY.pem>

# 이제 이 키로 NAT EC2에 접속 (IP주소 10.40.30.21로 만든 NAT-02로 접속함)
[ec2-user@ip-10-40-10-21 ~]$ ssh -i <YOUR_KEY.pem> ec2-user@10.40.30.21

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
25 package(s) needed for security, out of 39 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-40-30-21 ~]$ 

# 성공!! ㅠㅠ


그럼 진짜 로컬에서는 바로 접속이 안되는지 확인해 보자

  1. 로컬에서 접속 (접속 실패! 😥)
  2. EC2에서 접속 (접속 성공!😊)
profile
Devops, AWS에 관심있어요.

0개의 댓글