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/
'๐ education & lecture > ์ธํ๋ผ ๊ณต๋ฐฉ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ธํ๋ผ๊ณต๋ฐฉ] ์ปจํผ๋ฐ์ค ์ ์ฒญ - 1. github action ์ ํตํ ๋น๋ ์ค์ (1) | 2024.03.05 |
|---|---|
| [์ธํ๋ผ๊ณต๋ฐฉ] ์งํ์ฒ ๋ ธ์ ๋ - 4. ํ๋ฉด ์๋ต ๊ฐ์ ํ๊ธฐ (0) | 2024.02.29 |
| [์ธํ๋ผ๊ณต๋ฐฉ] HTTP Cache (0) | 2024.02.28 |
| [์ธํ๋ผ๊ณต๋ฐฉ] ์งํ์ฒ ๋ ธ์ ๋ - 3. 3-tier ๊ตฌ์ฑํ๊ธฐ (0) | 2024.02.27 |
| [์ธํ๋ผ๊ณต๋ฐฉ] ์งํ์ฒ ๋ ธ์ ๋ - 1. ๋ง ๊ตฌ์ฑํ๊ธฐ (1) | 2024.02.23 |
