아마존 라이트세일 인스턴스에서 네트워크 방화벽 포트 열어주기 (HTTPS, MySQL 등등)

0

이번 글에서는 AWS Lightsail (아마존 라이트세일) 인스턴스 레벨에서 방화벽을 설정하는 방법을 알아보겠습니다. HTTPS 뿐만 아니라 mySQL, 오라클 RDS등 포트를 열어줘야할 때라거나 여러가지 포트를 추가할 수 있습니다.

 

VPS 인스턴스를 서버로 사용할 경우 염두에 둬야할 게 한가지 있습니다.  HTTPS 프로토콜을 사용하려면 방화벽에서 해당포트(443번)를 열어줘야한다는 것인데요.

우선 bitnami 워드프레스 시작하기 연재작에서처럼 워드프레스 이미지를 바로 선택한경우는 HTTPS가 이미 열려있을 거라 이글 내용대로 조치 해줄 필요 없습니다. 

LEMP 스택 구성하기 시리즈 연재작의 경우 UFW 방화벽설정을 통해서 포트를 열어주었는데요.

 방화벽은 자신의 서버 설정에만 있는건 아닙니다.  AWS 에서도 자체적으로 방화벽을 제공하고, 아마존 라이트세일에서 처음 인스턴스를 생성할때 우분투 OS만 설치하는 걸로 선택했을 경우 인스턴스의 방화벽에 HTTPS가 열려있지 않더군요.  우선 라이트세일 홈페이지에서 이걸 열어줘야 HTTPS를 사용할 수 있습니다. 서버에 설정파일들을 모두 다 했는데도 HTTPS 접속이 안된다면 라이트세일에서 아래 내용을 점검해보시기 바랍니다.

컴퓨터의 방화벽과 보안?

방화벽(Firewall) 이란 건물에 화재시 구역을 차단시키기위한 셔터장치이지만 (인터넷등의)통신용 컴퓨터, 제품에서의 방화벽은 외부와의 통신을 제한하는 보안기능을 말합니다.

서버는 데이터가 목적별로 Port(포트)번호를 통한다고 볼 수 있는데요. 우리가 일반적으로 HTTP 프로토콜(http://)을 사용하는 웹서버는 80번 포트를 사용합니다. 이 포트를 통해서 여러분이 특정 사이트의 데이터(글,그림)등을 볼 수 있죠.

 

본래는 특정 서버와 데이터를 주고받으려면 포트번호를 뒤에 추가로 :포트번호 형태로 적어줘야합니다. 아래처럼 말이죠.

  • http://52.231.00.99:80
  • http://swiftcoding.org:80
  • http://localhost:80

그런데 http 프로토콜은 아마도 인터넷 태동부터 쓰여진 매우 오래동안 (아마도 가장)많이쓰는 거라  포트번호를 생략하고 가능하게 됩니다. 하나의 약속같은거죠 그래서 사이트에 접속할때 포트번호를 빼도 문제가 없게됩니다. 그러다 보안이 추가되고 HTTPS (443번 포트) 역시도 같은 이유로 생략가능하게 되었죠.

 

다른 예로는 서버제어를 위한 CLI를 통한 SSH 접속에는 22번 포트가 사용됩니다. 자신의 목적에 맞는 포트만 열어주고 쓰게되는데요. 이렇게 필요한 포트만 열고 쓰는건 보안때문이라고합니다. 열려있는 포트를 통해서 바이러스,해킹 공격이 들어올 수 있기 때문에 관리하지 않는 포트는 닫아두는 거란거죠.

“포트 막혀있다니깐요. 그럼 또 포트 풀죠 여러분. 80이랑 22번 포트 엽니다. 그럼 누가 옵니까? 중국 형들이 와요 스크립트를 들고. ‘저기다!’ 하고 중국 형들이 스크립트를 막 돌리죠.” 우분투 한국커뮤니티 한상곤.

아마존 라이트세일 인스턴스 레벨에서 방화벽 포트열기

라이트세일 관리화면에서 자신의 인스턴스를 선택하고 아래그림처럼 Networking을 클릭하고 Firewall(방화벽) 항목을 보면 HTTPS가 열려있지 않습니다. 추가하려면 + add another 클릭해주세요.

라이트세일 인스턴스 방화벽 설정화면

 

새롭게 선택된 선택상자의 custom을 클릭해서 아래그림처럼 HTTPS를 선택한다음  Save 를 클릭해줍니다.

라이트세일 인스턴스의 네트워킹 설정 중 방화벽에 HTTPS 추가

이렇게 하면 라이트세일 인스턴스 방화벽에서도 HTTPS를 열어준 것입니다.  HTTPS 뿐만 아니라 PostgreSQL, Oracle-RDS, DNS 포트, SSH 등도 목록에 있고, 커스텀으로는 포트번호를 직접 작성해서 열어줄 수도 있네요.

관련글

댓글은 익명이나 SNS, wordpress.com 로그인 지원). 마크다운 문법 사용가능(Shift+~ 키로 특정문구 혹은 위아래 ~~~으로감싸서 여러줄을 코드블락으로 작성)