제리의 배움 기록

[서비스배포] AWS에 서비스 배포하기 -<1> VPC 구성 본문

개발기록

[서비스배포] AWS에 서비스 배포하기 -<1> VPC 구성

제리92 2021. 11. 28. 22:35

목표 망 구성도

1. VPC 대역 생성

  • 192.168.170.0/24
  • 서브넷 마스크 24비트

2. 외부망, 내부망, 관리망 구성

외부망 : 외부와 직접적으로 통신함

  • 26비트 서브넷 마스크로 2개의 망 구성
    • subnet별 실제 물리적 서버 지역을 다르게 선택
    • 특정 지역의 IDC의 문제, 재해 등의 리스크에도 대비
  • 용도
    • DMZ 영역으로 사용자의 요청을 직접적으로 받아 처리하는 웹서버가 위치함
    • SSL 인증, 압축, 정적파일 제공 등의 역할
    • 실무에선 nginx와 같은 별도 웹서버만 두고 웹어플리케이션서버는(WAS) 내부망에 두어 분리하는 것이 보안상 좋지만,
    • 모의 구성이므로 외부망 동일 서버에 nginx와 WAS를 함께 사용
  • 라우팅 설정
    • 사설망 대역대(192.168.170.0/24)에 대한 라우팅
    • 외부 인터넷과 통신을 위한 라우팅 (0.0.0.0/0)
    • 인터넷게이트웨이(라우터) 자원을 별도로 생성하고 라우팅 게이트웨이로 설정해줌
  • 방화벽 보안 설정
    • 443 : 서비스 제공을 위해 모든 inbound ip에 대해 허용
    • 22 : 초기 서버 설정 이후, bastion 대역대에서만 접근 가능하도록 변경
  • DMZ 영역으로 사용자의 요청을 직접적으로 받아 처리하는 웹서버가 위치함
    • SSL 인증, 압축, 정적파일 제공 등의 역할
    • 실무에선 외부에서 접근가능한 외부망에 웹어플리케이션 서버(WAS)를 두지 않지만, 모의 구성이므로 외부망 동일 서버에

내부망 : 외부와 직접적으로 통신하지 않음

  • 27비트 서브넷 마스크로 1개의 망 구성
  • 방화벽 보안 설정
    • 3306 : 웹어플리케이션서버가 위치한 대역대에 대해 허용.
    • 22 : 초기 서버 설정 이후, bastion 대역대에서만 접근 가능하도록 변경
  • 라우팅 설정
    • 사설망 대역대 라우팅
    • 외부 인터넷과 직접적으로 통신할 수 없도록 라우팅 정보 넣지 않음
    • jdk, docker 등 설치를 위해선 초기에 라우팅 정보를 넣어 외부 인터넷과 통신되도록 해야함
    • 실무에선 이러한 초기 설치도 외부와 직접적으로 통신하는게 좋지 못하다 판단된다면 설치 파일을 별도로 다운받아 FTP와 같은 방식으로 넘겨서 직접 설치해야함

관리망

  • 27비트 서브넷 마스크로 1개의 망 구성
  • 외부망, 내부망 서버를 관리하기 위한 관리 서버들이 위치
  • 실 운영 장비에 대한 ssh 접속을 보다 안전하게 통제하기 위해 bastion 서버를 거쳐서 접속되도록 구성함
  • 방화벽 보안 설정
    • 22 : 특정 공인IP에서만 접근 가능하도록 설정
  • 라우팅 설정 (외부망과 동일)
    • 외부로부터 ssh 접속이 가능해야하고, 사설망 대역대 서버들에 접근할 수 있어야 하므로 내외부 모두 통신 가능해야함

과제를 수행하며 느낀점

현재 회사에서는 내부에 전산센터를 구축하여 사용하는 폐쇄된 망 구성이여서 내부 서버에 접속할때 회사에서만 가능한데(내부 인트라넷)
클라우드를 사용할 때에 어떤식으로 외부 서버에 접속을 하고 관리를 하는지, 보안성은 괜찮을지 궁금했었습니다.

과제를 수행하면서 클라우드에서는 bastion 망을 별도로 이용함으로써 접속하고 규제할 수 있다는 것을 알게 되었습니다.

bastion 망에서만 서버들에 직접 접근가능하도록 제약하고, bastion 망에 접근할 수 있는 것은 특정 공인 IP로 한정

하지만 특정 공인 IP에 대한 허용과 방화벽 설정으로는, IP Spoofing과 같은 공격으로 출발지 IP를 변조해버리면 제역할을 하지 못하게 됩니다.

AWS EC2 인스턴스를 생성할때 서버 접속을 위한 한쌍의 공개키를 생성하게 되는데요, private key를 이용해 ssh를 접속하도록 설정함으로써 서버 접속을 보다 강력히 통제하고 위와 같은 공격이 발생해도 서버 탈취를 방지할 수 있을 것 같습니다.

그리고 실제 망 환경을 구성할때는 비정상적인 접근에 대해 탐지하고 차단할 수 있는 보안 장비들을 도입하면 이런 보안 리스크를 더 낮출 수 있지 않을까 싶습니다.

[참고]
우아한 테크 캠프 Pro 3기 - [미션4]그럴듯한 서비스 만들기

Comments