아마존 웹 서비스를 다루는 기술 5장 Security Group으로 방화벽 설정하기
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Security Group으로 방화벽 설정하기
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
Security Group은 EC2 인스턴스에 적용할 수 있는 방화벽 설정입니다. 서버 보안의 기본은 방화벽 설정에서 출발합니다. 예로, Linux 서버의 SSH 접속 포트인 22번만 여는 것은 기본이고, 여기에 접속 가능한 IP 대역까지 설정하면 공격 위협이 상당수 줄어듭니다.
그림 5-1 EC2 인스턴스와 방화벽 개념도
방화벽 설정의 기본요소는 다음과 같습니다.
- Inbound: 외부에서 EC2 인스턴스로 들어오는 트래픽입니다. 대표적인 것들로는 HTTP, HTTPS, SSH, RDP 등이 있습니다.
- Outbound: EC2 인스턴스에서 외부로 나가는 트래픽입니다. EC2 인스턴스 안에서 인터넷을 사용할 경우 Outbound라 할 수 있습니다. 대표적으로 파일을 다운로드하거나, 외부 SSH로 접속하는 것 등이 있습니다.
- Type: 프토토콜 형태입니다. 프로토콜은 크게 TCP, UDP, ICMP로 나눌 수 있습니다.
- Port, Port Range: 포트 번호입니다. TCP, UDP 프로토콜은 0~65535 사이의 포트 번호를 사용하게 됩니다(ICMP는 포트 번호를 사용하지 않습니다). 우리가 익히 알고 있는 HTTP는 80번 SSH는 22번처럼 각 서버 애플리케이션들은 고유의 포트 번호를 사용하고 있습니다.
- Source/Destination: 연결 혹은 접속 가능한 IP 대역을 뜻합니다. Inbound 일 경우 Source, Outbound일 경우 Destination이라 부릅니다. IP 주소 하나만 지정할 수도 있고 CIDR 표기 방법을 이용하여 일정한 대역을 설정할 수 있습니다.
- Rule: 지금까지 설명한 Inbound, Outbound, Type, Port, Source/Destination을 조합한 것을 Rule(규칙)이라고 합니다.
그림 5-2처럼 AWS 콘솔의 EC2 페이지에서 왼쪽 NETWORK & SECURITY → Security Groups를 클릭하면 현재 생성된 Security Group 목록이 표시됩니다. Group Name이 default인 것은 기본적으로 제공되는 Security Group이며 Inbound는 동일한 Security Group인 default에만 허용되어 있고, Outbound는 모든 접속이 허용되어 있습니다. launch-wizard-1은 EC2 인스턴스(Example Server)를 만들 때 함께 만들어진 것입니다.
Launch-wizard-1에 Inbound 탭을 보면 SSH, TCP, 22, 0.0.0.0/0으로 설정된 규칙을 볼 수 있습니다. 이것은 모든 IP에서 EC2 인스턴스로 SSH 접속을 허용하겠다는 규칙입니다. 이 규칙이 있었기 때문에 우리가 PuTTY 또는 ssh 명령으로 접속을 할 수 있었습니다.
이번에는 launch-wizard-1에 HTTP Inbound 접속을 허용하는 규칙을 넣어보겠습니다. Inbound 탭에 Edit 버튼을 클릭합니다.
그림 5-2 Security Group 목록
Inbound 규칙을 설정하는 창이 표시됩니다. 아래 Add Rule 버튼을 클릭합니다.
그림 5-3 Security Group Inbound 규칙 설정
그림 5-4처럼 규칙을 설정하는 부분이 한 줄 더 추가되었습니다.
- Type: HTTP를 선택하면 자동으로 Protocol은 TCP, Port Range는 80으로 설정됩니다.
- Source: 기본값 그대로 Anywhere를 사용합니다(HTTP 접속은 보통 모든 IP 주소에서 접속할 수 있도록 허용합니다) Custom IP를 선택하면 CIDR 표기법을 사용하여 IP 주소 대역을 설정할 수 있습니다. My IP를 선택하면 현재 사용하고 있는 컴퓨터 혹은 공유기의 공인 IP를 자동으로 알아내서 설정해줍니다.
설정이 완료되었으면 Save 버튼을 클릭합니다.
그림 5-4 Security Group Inbound 새 규칙 추가
launch-wizard-1의 Inbound 목록을 보면 HTTP 규칙이 추가된 것을 확인할 수 있습니다.
그림 5-5 Security Group launch-wizard-1의 Inbound 규칙 목록