1. 용어 및 개념 정리
[1] Bastion Server ??
Bastion 용어는 성 외곽을 보호하기 위해 돌출된 부분을 말하며, 적으로부터 효과적으로 방어하기 위한 수단이다. Network 에서 Bastion 는 Public, Private Network 에 대한 엑세스를 제공하기 위한 보안 엑세스를 제공하는 주체를 말한다. 쉽게 말하면 관리자가 server terminal 에 접근하기 위한 진입점이다.
Bastion Server 를 별도로 구성하는 이유는 서버 터미널 접근에 대한 대응, 서비스 영향 최소화, 서비스 정상 트래픽 구분, 서비스 영향 최소화 3가지 이다. Basiton Server 는 아래와 같은 문제에 대해 대응할 수 있다.
- 높은 트래픽이나 디도스 공격으로 인한 대역폭 점유로 인해 관리자가 서버 터미널에 접근할 수 없는 문제
- 악성 루트킷, 랜섬웨어 등으로 인해 서비스하는 서버에 영향을 미치는 이슈
- 서비스 트래픽과 관리자 트래픽 구분하지 못하는 문제
AWS 에서 Bastion Host 를 구성하는 방법으로는 EC2 instance 를 통한 방법과 Session Management 가 있다. 이번 내용은 EC2 를 이용해 bastion server 구성한 내용이다.
2. 서버 구성하기
- bastion server 구성
- management ec2 생성
- management subnet 생성
- management routing table 생성
- bastion security group 생성
- public security group, private security group SSH 접근 권한 재설정
- bastion EC2 instance 생성
- bastion 서버 설정
- session timeout 환경 변수 적용
- logger 사용하여 감사로그 남기기
- management ec2 생성
[1] management ec2 생성
(1) management subnet 구성
(2) management routing table 생성
(3) bastion security group 생성
- destination : 0.0.0.0/0 target : internet-gateway 추가
- public security group, private security group : inbound rule SSH 접근 권한 management-security-group 으로 설정
(4) bastion EC2 instance 생성
- OS : Ubuntu 설정
- 아키텍처 : x86 선택
- 인스턴스 유형 : t2.micro
- 키 페어 : pem 을 통한 생성
- network 설정 (아래 그림 참고)
- VPC 설정
- management subnet 설정
- security group 설정 (위 그림 참고)
- SSH : 내 public ip 설정
[2] bastion 서버 설정
(1) session timeout 환경 변수 적용
$ sudo vi ~/.profile
## 1. history 명령 결과에 시간값 추가
HISTTIMEFORMAT="%F %T -- "
export HISTTIMEFORMAT
## 2. 세션 타임아웃 설정 (초 단위)
export TMOUT=600
$ source ~/.profile
$ env
(2) logger 사용하여 감사로그 남기기
$ sudo vi ~/.bashrc
tty=`tty | awk -F"/dev/" '{print $2}'`
IP=`w | grep "$tty" | awk '{print $3}'`
export PROMPT_COMMAND='logger -p local0.debug "[USER]$(whoami) [IP]$IP [PID]$$ [PWD]`pwd` [COMMAND] $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" )"'
$ source ~/.bashrc
$ sudo vi /etc/rsyslog.d/50-default.conf
local0.* /var/log/command.log
$ sudo service rsyslog restart
$ tail -f /var/log/command.log
Reference
- https://www.inflearn.com/course/%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B3%B5%EB%B0%A9-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0
- https://docs.aws.amazon.com/ko_kr/mwaa/latest/userguide/tutorials-private-network-bastion.html#private-network-lb-create-sgsource
- https://aws.amazon.com/ko/solutions/implementations/linux-bastion/
'인프라 공방 > 지하철 노선' 카테고리의 다른 글
[인프라공방] 지하철 노선도 - 4. 화면 응답 개선하기 (0) | 2024.02.29 |
---|---|
[인프라공방] 지하철 노선도 - 3. 3-tier 구성하기 (1) | 2024.02.27 |
[인프라공방] 지하철 노선도 - 1. 망 구성하기 (1) | 2024.02.23 |