Bastion Host 운영
PLURA
Bastion Host란?
Bastion Host는 Public 네트워크에서 Private 네트워크에 대한 액세스를 제공하기 위한 목적을 가진 서버입니다.
일반적으로 **Amazon VPC (Virtual Private Cloud)**의 Public Subnet에 위치한 Amazon EC2 인스턴스에서 실행됩니다.
- Linux 인스턴스는 Public Subnet에 연결된 Bastion Host를 통해 Private Subnet에 있는 리소스에 접근할 수 있습니다.
- Bastion Host는 SSH 트래픽을 허용하며, Security Group을 통해 제어됩니다.
다음 다이어그램은 Bastion Host를 통한 연결을 설명합니다:
Bastion Host 운영
A. EC2 설정
1. 인스턴스
-
Bastion Host
- IP: Public IP 할당
- Subnet: Public Subnet1에 배치
-
WebServer Instance1
- IP: Public IP 없음
- Subnet: Private Subnet1에 배치
2. Security Group 설정
-
Bastion Host
- Type: SSH
- Source: My IP (Bastion Host에 접속할 HostPC의 공인 IP를 지정)
-
WebServer Instance1
- Type: SSH
- Source: Bastion Host의 Public Subnet에 할당된 IP 주소 지정
B. VPC 설정
1. VPC
- CIDR:
172.31.0.0/16
2. Subnet
- Private Subnet:
172.31.16.0/20
- Public Subnet:
172.31.0.0/20
3. Route Table
-
Private Route Table
- 로컬 네트워크 대역만 라우팅
-
Public Route Table
- 로컬 대역 외 트래픽은 인터넷 게이트웨이로 라우팅 (외부 통신 가능)
4. Network ACL 설정
-
Private Subnet ACL
- Bastion Host에 대해서만 SSH 접속 허용
-
Public Subnet ACL
- 모든 소스에서 SSH 요청 허용 (필요시 Security Group에서 세부 제어)
C. SSH 접속
-
Bastion Host로 접속
- Public IP 사용
-
pem
파일 업로드- Bastion Host에서 Private Subnet의 Instance로 접속하려면 .pem 파일이 필요
-
Private Subnet으로 SSH 접속
$ ssh -i "plura.pem" ec2-user@172.31.20.117
Bastion Host 운영 목적
Public 서버 한 대에서 하루 동안 약 11,000건의 로그인 실패 탐지 사례입니다.
Public 서버는 하루 수만~수십만 건의 계정 탈취 시도가 발생할 수 있습니다.
- 방화벽을 통해 관리하더라도 모든 IP를 통제하기 어려워 보안에 취약해질 수 있습니다.
- Bastion Host 운영 시, Private Instance의 액세스 로그를 한 곳에서 취합하여 관리가 용이합니다.
중요: Bastion Host는 Linux 인스턴스에 대한 유일한 SSH 트래픽 소스입니다.
PLURA는 공개키 로그인 성공 시, Private Instance로 액세스한 IP 주소 및 생성일을 필터링하여 탐지합니다.