Bastion Server 를 통한 접근통제

YEON·2022년 6월 16일
0

인프라 미션

목록 보기
7/7

이전, 망 구성하기 포스팅 에서 Bastion Server 에 관해 간략하게 정리를 해두었다.
추가적으로 조금 더 자세히 정리하고자 포스팅을 새로 진행하게 되었다!


Bastion 서버란?

Bastion : 수호자, 보루, 요새

Bastion 이란, 성 외곽을 보호하기 위해 돌출된 부분으로 적으로부터 효과적으로 방어하기 위한 수단이다.
Bastion Server 를 설정하여 이를 우리의 아키텍쳐에도 적용해볼 수 있다.


우리가 터미널에 접속하기 위해 사용하는 22번 포트를 생각해보자. 22번 포트의 경우 보안이 뚫린다면 서비스에 심각한 문제를 일으킬 수 있다.
그렇다고, 모든 서버에 동일 수준의 보안을 설정하면 Auto-Scaling 등 확장성을 고려한 구성과 배치되고 관리 포인트가 늘어나며 보안 설정을 일정 부분을 포기할 수 도 있다.

하지만 만약 Bastion Server가 있다면,
악성 루트킷, 랜섬웨어 등으로 피해를 보더라도 Bastion Server만 재구성하면 되므로 서비스에 영향을 최소화할 수 있다.
또한 만약 서비스가 DDos 공격을 받아 대역폭을 모두 차지하고 있다면 서비스용 서버에는 접속하기 어렵기 때문에 Bastion 서버를 통해 별도의 경로를 확보할 수 있다. (서비스 정상 트래픽과 관리자용 트래픽을 구분할 수 있다는 이점)

따라서, 22번 Port 접속을 Bastion 서버에 오픈하고 그 서버에 보안을 집중하는 것이 효율적이다.


Q. 모든 얘들이 그냥 공인 ip를 지니고 있으면 내부,외부에서 모두 호출이 가능하니 편리하지 않을까?
A. 공인 IP의 갯수엔 한계가 있고, 외부에서 불리길 꺼려하는 친구들도 있기 때문에 (보안상 취약) 사설 IP(학급 번호)가 필요한 것입니다 (VPC가 필요한 이유와 동일)


Q. 그러면 공인 ip가 없는 친구를, 혹은 보안상 안전하게 호출하기 위해서는 어떻게 하면 좋을까?
A. Bastion 서버 (문지기, 요새 역할) 를 통해 접근할 수 있다.
proxy 의 의미와 비슷하다고 볼 수 있다.





Bastion 서버 생성

  • Bastion Server로 사용할 별도의 EC2를 생성한다.
  • Bastion Server에서 서비스용 서버에 ssh 연결을 설정한다.
  • Bastion Server는 자신의 공인 IP에서만 22번 포트로 접근이 가능하도록 Security Group을 설정한다.
  • 서비스용 서버에 22번 포트로의 접근은 Bastion 서버에서만 가능하도록 Security Group을 설정한다.
  • Bastion 서버에서 다른 서버에 접근이 용이하도록 별칭을 설정한다.
## Bastion Server에서 공개키를 생성
bastion $ ssh-keygen -t rsa
bastion $ cat ~/.ssh/id_rsa.pub

## 접속하려는 서비스용 서버에 키를 추가
$ vi ~/.ssh/authorized_keys

## Bastion Server에서 접속
bastion $ ssh ubuntu@[서비스용 서버 IP]

## Bastion Server 별칭 생성
bastion $ vi /etc/hosts
[서비스용IP]    [별칭]

## 별칭을 통한 접속
bastion $ ssh [별칭]


망 구성

Bastion 서버를 구성과 관련한 전체적인 망 구성은 이전 → 포스팅에 더욱 자세하게 정리되어있다.
전체적인 망 구성과 언제 Bastion 서버를 구성하는지 다음 포스팅을 참조하자!









[참조]
https://seondongpyo.github.io/infra%20workshop/infra-workshop-week1-step1/
https://err-bzz.oopy.io/f5616e26-79ca-4167-b2eb-140de69b9b54
https://edu.nextstep.camp/s/13RXWHcB/ls/Ejyg54oh

profile
- 👩🏻‍💻

0개의 댓글