AWS Cloud

3. VPC 생성

JNU 2023. 9. 7. 11:47
반응형

AWS Cloud 환경에서 모의해킹을 실행하기 위한 인프라를 구축하기 위해 밑의 그림과 같이 환경을 구축하려고 한다.

현재, 그림에서 VPC 내부에 Public subnet과 Private subnet이 구분되어 구축된 것을 볼 수 있는데

이번 시간에는 Public subnet을 생성하고 내부에 EC2를 구축한 후, IGW를 통해 외부 Internet에서 EC2로 

접근할 수 있는 네트워크 환경을 구성해본다.

AWS Cloud 모의해킹 구성도

 

 

1. VPC 생성

VPC는 Virtual Private Cloud의 약자로 AWS가 제공하는 AWS 계정 전용 가상 네트워크다. VPC를 생성하면 

VPC 내부에 subnet, routing table, InternetGateway 등과 같은 서비스를 사용할 수 있게 된다. 

처음 VPC를 사용하게 되면 AWS에서 제공하는 default VPC가 존재한다. 

AWS default VPC

 

모의해킹 환경을 구성할 때는 10.0.0.0/16에 해당하는 VPC 환경을 구축해야 하기 때문에 새롭게 VPC를 생성한다.

생성 순서는 다음과 같다.

 

 

1. VPC 이름 설정

VPC 이름 설정

 

 

2. IPv4 CIDR 설정

VPC network range 설정

 

(CIDR= Classless Inter-Domain Routing): class 구분 없이 할당하는 domain 간 routing 기법

10.0.0.0 대역은 실제로 class A 대역이므로, 10.0.0.0/8로 설정되는 것이 맞지만,

현재 10.0.0.0/16 으로 설정할 수 있도록 /16 대역까지 class subnet 범위를 확장시킨 것을 볼 수 있다.

VPC 생성완료

 

여기까지 완료되면 AWS 서비스 안에 VPC를 생성한 형태가 완성된 것이다.

VPC 생성 완료

 

 

 

2. Subnet 생성

AWS에서 Subnet이란 VPC 내부에서 network를 작은 단위로 나눈 network를 말한다. 

Subnet은 VPC 내부에서도 Subnet을 분할할 수 있으며, VPC마다 서로 다른 subnet을 구성할 수 있다.

따라서, Subnet을 나누어 Subnet A의 경우 공개하고, Subnet B의 경우 비공개하는 식으로 Subnet별로 

역할을 다르게 부여할 수도 있다.

Subnet 생성 순서는 다음과 같다.

 

 

1. VPC 선택

Subnet은 VPC 내부에서 설정할 수 있다. 따라서, 어떤 VPC 내부에 Subnet을 생성할지 선택한다.

앞서 생성한 Cloud_VPC를 subnet과 연결하도록 한다.

VPC 선택

 

2. Subnet 설정

설정할 Subnet 이름과 IPv4 CIDR을 설정한다. 이 때, IPv4 CIDR은 선택한 VPC 내부에 속한 network로 설정해야 한다.

Subnet 설정
Subnet 생성 완료

 

 

Public Subnet 생성완료

 

 

3. Internet Gateway (IGW)

Internet Gateway는 AWS에서 인터넷 연결을 담당한다. 

예를 들어, EC2 instance에  웹 사이트를 설치했을 때

웹 사이트에 접속하는 사람은 그 페이지에 접속하기 위해 요청을 보낸다.

하지만, EC2 instance는 사설 IP (private IP) 주소밖에 설정할 수 없기 때문에

요청된 EC2 instance의 연결정보를 가지고 있는 Internet Gateway가 공인 IP (public IP) 주소로 변환하여

해당 EC2 instance에 요청을 보낸다.

즉, IGW는 외부에서 EC2 instance로 접속할 때, public IP와 private IP를 서로 binding하여 연결한다.

IGW는 다음과 같이 생성한다.

 

 

1. IGW 이름 설정

이름설정

 

2. VPC와 연결

IGW는 VPC와 직접 연결하여 사용한다.

VPC 연결

 

IGW와 연결할 VPC 설정

 

IGW의 상태가 Attached가 되었다면 정상적으로 VPC와 연동이 된 것이다.

IGW와 VPC 정상 연동 완료

 

 

 

 

4. Routing table

network 간 데이터를 주고받으려면 라우팅을 사용해야 한다. 라우팅이란 경로를 설정하여 데이터를 보내는 것으로,

Src IP와 dst IP를 기준으로 데이터가 가야할 방향을 지정하는 이정표 역할을 수행한다고 볼 수 있다.

AWS에서는 VPC, 인터넷 및 VPN 연결 내 Subnet 간 패킷이 전달되는 방법을 지정하는 이정표가 바로 Routing table이다.

Routing table 생성 방법은 다음과 같다.

 

 

1. Routing table 이름 설정

이름 설정

 

2. VPC 선택

연결할 VPC 설정

 

3. Routing table 경로 설정

추후에 EC2 instance 웹 사이트를 외부 사용자가 인터넷을 통해서 사용한다고 가정했을 때,

VPC와 연결된 Routing table에서 EC2 instance가 내부로 들어오는 요청에 대해 응답하기 위해 

VPC 차원에서 routing을 설정 한다.

Routing table 경로 설정

Routing table까지 설정 완료한 후, 앞서 생성했던 Cloud_VPC로 돌아가 Resource map을 확인한다.

해당 map을 보면 밑의 그림과 같이 AWS에 생성한 network를 구조화하여 확인할 수 있다.

 

VPC Resource map

 

4. Subnet과 Routing table 연동

VPC Resource map을 확인한 결과 Public_RT와 routing table이 연동되지 않은 것을 확인했다.

이를 연동하기 위해 Public_Subnet에서 routing table 연결 편집을 한다.

 

Subnet과 Routing table 연동

 

Subnet에 Routing table까지 연동하면 밑의 그림과 같은 구조가 완성되는 것을 볼 수 있다.

Routing table 연결 완료

 

 

5. EC2 연결

마지막으로 웹 서비스를 제공할 EC2 instacne를 생성하고, 내부에 apache2 웹 서버를 설치한다.

이후, public IP로 접속하여 웹 사이트에 접근 여부를 확인하고 public network 구축을 완료한다.

EC2 instacne 생성 과정은 이전 포스팅을 참고하고 이전 포스팅과 다른 차이점만 확인하자면,

 

 

1. public IP를 활성화

public IP를 활성화해야만, 외부사용자가 public IP를 통해서 웹 사이트를 접근할 수 있기 때문이다.

Public IP, VPC,  Subnet 설정

 

2. Security Group에 80/tcp port open 

EC2 instance가 웹 서비스를 제공하기 위해서 80/tcp port를 사용하므로 해당 port를 열어준다.

Security group 설정

 

EC2 instance를 생성하면 SSH로 접속한 후, apache2를 생성하고 활성화 시킨다.

EC2 instance의 AMI는 ubuntu로 apache2가 활성화되면 다음과 같이 active로 표기되는 것을 확인할 수 있다.

 

apache2 활성화

이제, local에서 public IP로 EC2 instance로 접속했을 떄 apache2 메인 페이지가 응답하는지 확인한다.

 

접속 성공!

 

Public instacne 구축 완료

반응형