AWS

Security Group으로 방화벽 설정

RyanGomdoriPooh 2016. 8. 19. 15:56

Security Group이란?

AWS에서 제공하는 서비스입니다. 주로 EC2 Instance에 적용할 수 있는 방화벽 설정입니다.


서버 보안의 기본은 방화벽 설정에서 출발합니다. 예로, Linux 서버의 SSH 접속 포트인 22번만 열어서 다른 포트로 접속하지 못하게 막는 것은 기본이구요.


여기에 추가하여 접속가능한 IP 대역을 정해서 그 IP대역에 있지 않은 사람은 아예 접속요청조차 못하게 막아버리면 공격에 대한 위협이 상당 수 줄어 들게 됩니다.


예를 들면 DB에 접근할 수 있는 권한을 설정할 때, 그 권한 중에 하나로 IP 대역을 정하기도 합니다. 그래서 영화에 보면 스파이가 해당하는 서버가 있는 ID

C에 직접 침투하여 프로그램은 심거나 자료를 빼오는 장면을 말할 수 있습니다.


다음은 AWS의 방화벽 Security Group의 개념도 입니다.

방화벽의 기본적인 요소는 다음과 같습니다.


- Inbound : 외부 host에서 EC2 인스턴스로 어떠한 요청을 보내는 트래픽입니다. HTTP, HTTPS, SSH 등이 있습니다.


- Outbount : EC2 Instance에서 외부로 나가는 트래픽입니다. 파일을 다운로드 하거나 Inbound로 들어온 트래픽을 처리하여 응답하는 경우도 됩니다.


- Type : 프로토콜의 형태로 TCP, UDP, ICMP로 나뉩니다.


- Port, Port Range : 포트 번호입니다. TCP, UDP 프로토콜은 0~65535 사이의 포트 번호를 사용하게 됩니다. (ICMP는 포트 번호를 사용하지 않습니다.)

예를 들어, HTTP 80번, SSH 22번 과 같이 각 서버 어플리케이션들은 고유의 포트 번호를 사용합니다.


- Source/Destination : 연결할 수 있는 접속가능한 IP 대역을 설정하는 것입니다. Inbound를 설정할 때는 Source라고 하고 Outbound를 설정할 때에는 Destination이라고 합니다.

지정하는 방식은 1) 모든 IP를 허용하는 경우 2) 특정 IP하나만 허용하고 싶은 경우 3) IP 대역을 설정하여 대역 안이면 허용하는 경우

총 3가지로 나뉩니다.

표기 방식은 CIDR 표기법을 이용해 일정한 대역을 설정가능합니다.


* CIDR 표기법

: Classless Inster-Domain Routing의 약어로 IP 주소 할당 방법입니다. 왜 이 표기법이 나왔는가가 아주 중요합니다. IT host가 급격히 많아 지면서 IPv4의 할당할 수 있는 IP의 갯수는 현저하게 부족하게 되었습니다.

그래서 IPv4 주소를 더욱 효율적으로 사용하기 위해서 사용합니다.

10진수 xxx.xxx.xxx.xxx/yy 형식으로 표기를 하게 되는데 여기서 yy는 Subnet Mask를 2진수로 바꾸었을때 가장 왼쪽 bit인 MSB부터 1의 갯수입니다.

예를 들면

Subnet Mask 255.255.255.0 를 사용해봅니다. 255.255.255.0을 11111111.11111111.11111111.00000000로 2진수 표기법 형식으로 바꿀 수 있습니다. 

위 과정은 subnet Mask를 이용해서 xxx.xxx.xxx.xxx/24 라는 24짜리 Subnet Mask를 만들었습니다.

만약 192.168.0.0/24 라면 11000000.10101000.00000000.00000000 에서 검은색 볼드체가 고정값으로 해당되고, 나머지 뒷 8자리 2진수로 표현되는 모든 주소가 그 IP 대역이 됩니다.

즉, 192.168.0.0 ~ 192.168.0.255 가 됩니다.


- Rule : 지금까지 설명한 Inbound, Outbound, Type, Port, Source/Destination을 조합한 것을Rule(규칙)이라고 합니다. Rule을 조합하여 만들어서 서버의 접근을 통제할 수 있습니다.



이제 실제 Security Group을 보여드리겠습니다.

EC2 Dashboard => NETWORK & SECURITY => Security Groups 로 들어갑니다.




원하는 Security Group을 만드려면 "Create Security Group"을 눌러서 원하는 방식으로 "Add Rule"을 눌러서 추가를 합니다.

추가는 두가지가 있습니다. Inbound, Outbound가 있습니다.

Security group name : 본인이 구별하기 위한 이름

VPC : Virtual Private Cloud 으로 개인의 가상 설정한 망 안의 IP만 접속이 가능하게 해놓는 것입니다. VPC 설정을 해놓은 경우 가능하게 됩니다. 

Add Rule을 추가하여 Inbound를 설정했습니다. HTTPS의 SSL 방식의 보안 포트를 추가하는 과정입니다.



위의 예처럼 원하는 프로그래밍을 통한 접속을 하고 싶은 포트를 설정하여 방화벽을 설치해줄 수 있습니다. 


이상입니다~



* Reference

1. 아마존 웹 서비스를 다루는 기술 - 이재홍 - 이분의 책은 AWS의 바이블이라고 생각됩니다. 구매해서 보시는 것 추천.