Developing

패스트캠퍼스 캐시백 챌린지 12일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 12일차

DEV_BLOG 2022. 4. 29. 20:07

 

 

 

 

 

 

 

 

수강 인증샷

 

NACL 설정과 Stateless,Stateful에 관한 이론에 관한 클립을 복습하고 새로운 클립을 수강하는식으로 Challenge를 수행하였다. 다른 개발블로그들을 참고하다보면 Stateless이나 Stateful에 관한 설명이 100% 와닿지는 않았는데 본강좌를 통해 이제 잘 깨달을 수 있었던 것 같다.

Security group과 NACL이 각각의 상태는 어디에 해당되고 차이점이 존재하는지 이론적으로 알 수 있었고 NACL에서 인바운드/아웃바운드 규칙 설정하는 법을 알 수 있었다. 다음 포스팅은 EC2와 NACL 관련된 실습에 관한 포스팅을 하게 될 것이다.

 

 

Inbound,Outbound 예시

  • Client가 Server로 통신을 하는 경우를 가정하자.

- Request

source 175.34.136.133 1025 (Outbound) - 임시포트(1024~65535)
destination 13.120.100.100 80 (Inbound)

Client(175.34.136.133) ————————— > Server(13.120.100.100)

 

 

 

- Response

source 13.120.100.100 80
destination 175.34.136.133 1025

Client(175.34.136.133) <————————— Server(13.120.100.100)

 

⇒ client가 server한테 request를 쏠떄는 80번으로 쏘고, response를 받을때 1025 포트로 달라는 것을 의미한다.

 

 

Stateful

 

- Request

source 175.34.136.133 1025
destination 13.120.100.100 80

Client(175.34.136.133) ————————— > Security Group[ Inbound: 80 , Outbound: None]

 

 

- Response

source 13.120.100.100 80
destination 175.34.136.133 1025

Client(175.34.136.133) <————————— Security Group[ Inbound: 80 , Outbound: None]

 

 

⇒ Inbound로 80번포트로 들어오는 것을 허용하고, 나머지 포트는 허용하지 않는다.

⇒Outbound는 어떠한 포트도 밖으로 나가는 것을 허용하지 않는다.

⇒ 원래는 쏴줄 수 없지만, stateful하다는 것은 ‘기억하다’라는 의미가 강하다.

⇒ 원래는 outbound로 허용하지 않지만, 이 트래픽같은 경우 허용해준 80포트가 1025 포트로 쏴주는 것이기에 response 주는 것을 허용시켜준다.

⇒ 따라서 Security Group의 Inbound, Outbount Rule은 절대적이지 않다는 것을 알 수 있다.

 

 

Stateless

- Request

source 175.34.136.133 1025
destination 13.120.100.100 80

Client(175.34.136.133) ————————— > NACL[ Inbound: 80 , Outbound: None]

 

⇒ 이 경우도 마찬가지로 Inbound로 80번포트로 들어오는 것을 허용하고, 나머지 포트는 허용하지 않는다.

⇒ Outbound는 어떠한 포트도 밖으로 나가는 것을 허용하지 않는다.

 

- Response

source 13.120.100.100 80
destination 175.34.136.133 1025

Client(175.34.136.133) X—————————  NACL[ Inbound: 80 , Outbound: None]

 

⇒Stateful과는 다르게 rule을 절대적으로 따른다. 트래픽이 어디에서 들어오던간에 Response는 보내주지 않는다.

 

 

⇒최종적으로 정리하면

Security Group: Stateful

NACL : Stateless

 

 

 

AWS NACL 설정

 

이미 기본으로 VPC에 대해 NACL이 설정되어있는 것이 있음을 확인할 수 있다.

라우팅 설정할때처럼 private_NACL로 이름바꿔 설정해주고, public NACL을 설정해주려고 한다.

 

 

네트워크 ACL 생성을 클릭해 NACL 생성페이지에 진입하고, 생성을 해준다.

 

 

 

이제 서브넷에 연결을 해주어야하는데, 작업⇒서브넷 연결 편집으로 진입해야한다.

 

public NACL을 public subnet에 연결시킨다.

 

연결 대상을 확인하면 public NACL은 public subnet으로, private NACL은 private subnet으로 연결되었음을 확인할 수 있다.

 

 

이제 public NACL에 대해 인바운드 규칙 편집을 해주면 된다.

 

 

 

예를 들어 22, 80, 443 port에 대해서 모든 IP 주소에 대해 Inbound를 허용한다고 가정하자.

 

 

 

인바운드 규칙을 확인해보면 걸어준 규칙 번호 순서대로 Inbound 규칙의 우선순위가 설정되는 것을 확인할 수 있다.

 

 

예를 들어서 위와 같은 경우에 22포트에 대해 100번 규칙이 먼저 적용되어 허용이 되고, 101번 규칙에서 22번 포트를 비허용하는 것은 무시가 된다고 간주할 수 있다.(이미 위에서 허용해주어 들어올 것이다.)

따라서 순서가 인바운드 규칙에서 중요하다는 것을 알 수 있다.

 

 

Outbound에 대해서도 해줄 수 있는데, 포트범위를 1024-65535로 설정한 것의 의미는 response를 해주는 port의 경우는 임시포트로 주어지고, 그 임시포트가 1024-65535이다. 따라서 outobund로는 무조건 1024-65535로 나가는 것이기에 허용을 해주어야 트래픽을 진행할 수 있다.

 

https://bit.ly/3L3avNW 

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.