Weekly I Learned (5월 4주차)

YEON·2022년 5월 26일
0

Weekly I Learned (2022)

목록 보기
6/15
그 주의 화요일, 금요일을 지정 날짜로 업데이트 합니다

1. 네트워크의 Proxy

프록시(Proxy)란?
두 PC가 통신을 할 때 직접 하지 않고 중간에서 중계 역할을 하는 것을 ‘프록시 서버’ 라고 한다. 프록시 서버는 서버가 어디에 위치하느냐에 따라 포워드 프록시백워드 프록시로 나뉜다. 프록시 서버는 중계 서버 역할로써 보안 목적이나 캐싱 등의 기능을 제공한다.

  • 포워드 프록시(Forward Proxy)
    클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐서 요청하는데, 이때 포워드 프록시는 서버에게 클라이언트가 누구인지 감춰주는 역할을 한다.
    이러한 특징 때문에 기업 사내망에서 주로 사용된다.
    (일반적으로 프록시라고 말하면 포워드 프록시를 말한다.)

  • 리버스 프록시(Reverse Proxy)
    리버스 프록시는 애플리케이션 서버의 앞에 위치하여 클라이언트로부터의 요청을 받아서(필요하다면 주위에서 처리한 후) 적절한 웹 서버로 요청을 전송한다. 웹 서버는 요청을 받아서 평소처럼 처리를 하지만, 응답을 클라이언트로 보내지 않고 Reverse Proxy로 반환한다. Reverse Proxy는 서버로부터 응답을 전달받아 그 응답을 클라이언트로 전송하는 역할을 한다.
    이 경우, 클라이언트는 애플리케이션 서버를 직접 호출하는 것이 아니라 프록시 서버를 통해 호출하기 때문에 리버스 프록시는 애플리케이션 서버를 감추는 역할을 하게 된다.
    리버스 프록시의 예시로는 NginX, Apache Web Server 가 있다.




2. SSL(TLS)

HTTPSSSL(TLS) 전송 기술을 사용하여 HTTP 와 달리 보안에 더 강화적이다.
그리고 이때 이 기술을 구현하기 위해 웹 서버에 SSL/TLS 인증서를 설치한다.

SSL인증서란?
서버정보와 서버의 공개키, 인증서를 발행한 인증국 CA 인증서가 서명되어 있는 파일이다.

SSL인증서 발행과 설정의 흐름은 다음과 같다.

  1. 웹 서버에서 공개키과 비밀키를 작성
  2. 공개키를 CA에 송신해서 인증서의 발행을 신청 및 전자서명된 인증서 수령
  3. 수령한 인증서를 웹서버에 설치

SSL 주요 특징

  • SSL 인증서를 통해 클라이언트와 서버 간의 통신을 보증한다.
  • 암호화된 데이터를 주고 받는다. 주로 대칭키(공개키) 방식, 비대칭키(비밀키) 암호화방식이 사용된다.
  • SSL 통신과정은 handshake라는 과정을 거친다. (handshake -> 데이터전송 -> 세션종료)



3. 내부망 인터넷 게이트웨이 / Nat Gateway

내부망 인터넷 게이트웨이가 열려있다는 피드백을 받았다.
인터넷 게이트웨이는 VPC의 인스턴스와 인터넷 간에 통신할 수 있게 해주는데, 내부망 인터넷 게이트웨이가 열려있다면 개인 정보를 다루는 DB 서버 등을 외부에서 접근해올 수 있는 문제가 생긴다.
이때 NAT를 구성 해보라는 피드백을 주셨고 이에 관하여 해결을 진행하였다.

Subnet은 현재 Public 과 Private 으로 구분하여 구성하였다. 이때, Public subnet은 Internet Gateway 를 이용하여 외부와 통신이 가능하도록 설정하였다. (라우팅 테이블에서 인터넷 게이트 웨이를 연결시켜주었다)
하지만, Private Subnet 의 경우는 외부와의 통신이 단절된 환경이어야 하므로 인터넷 게이트웨이를 곧장 연결시켜주어서는 안된다. 그렇다고 만약 아무 것도 연결을 안시킨다면 외부와의 통신이 아예 단절되어 보안은 높아져도 불편함이 생기게 된다. (ex. Private Subnet에 위치한 instance가 다른 AWS 서비스에 연결해야 하는 경우)

때문에, AWS에서 VPC 환경에 NAT 서버를 손쉽게 배포하고 관리해주는 서비스인 NAT Gateway를 통하여 해결할 수 있다.
Nat Gateway를 Public subnet 에 두고 생성한 후, Private subnet 은 인터넷 게이트웨이 대신 NAT 게이트 웨이로 라우팅을 설정해준다. Public subnet 에 있는 인스턴스들은 인터넷 게이트웨이와 연결되어있기 때문에 Private subnet 의 인스턴스들도 인터넷 사용이 가능하다. (외부에서 Private subnet 으로 접근하기 위해서는 NAT Gateway에서 포트포워딩을 통해서 이루어진다)

NAT 게이트웨이란? (feat. 망 구성하기 피드백)
NAT 게이트웨이는 NAT(네트워크 주소 변환) 서비스이다.
Private subnet 의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만, 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있다.






[참조]
https://sujinhope.github.io/2021/06/13/Network-%ED%94%84%EB%A1%9D%EC%8B%9C(Proxy)%EB%9E%80,-Forward-Proxy%EC%99%80-Reverse-Proxy.html
https://bluese05.tistory.com/48
https://brunch.co.kr/@sangjinkang/38
https://mangkyu.tistory.com/98
프로젝트 공방 1기 - 배포하기

profile
- 👩🏻‍💻

0개의 댓글