C.W.K.
Stream
Lesson 10 of 14 · published

Jump Host / Bastion

~15 min · bastion, jump-host, proxyjump, audit-point

Level 0Pinger
0 XP0/101 lessons0/12 achievements
0/150 XP to next level150 XP to go0% complete

Hardened gateway 하나, 많은 internal 머신

Bastion host(jump host) 가 인터넷에 노출된 유일한 단일, 무거운 hardened 머신. 다른 모든 머신이 사설 IP 가짐; bastion SSH 후에야 도달. 공격 surface 가 N 에서 1 로 — 모든 머신을 public 인터넷 표준으로 hardening 대신 bastion hardening.

ProxyJump 와 짝

Track 3 가 ProxyJump — bastion 패턴의 SSH 클라이언트 쪽 — 다뤘어. 풀 그림 — bastion 이 public IP 가짐, 나머지 X. Bastion 이 keys-only, fail2ban, port-changed, key-only access (per-key ProxyJump 제한) 으로 설정된 sshd. Internal 머신이 bastion IP 에서만 SSH 받음.

Code

ASCII 아키텍처·plaintext
Internet ─→ [bastion (only public IP)] ─→ Internal machines (private IPs)
                       │
                       ├─ keys only, no passwords
                       ├─ non-default port
                       ├─ fail2ban aggressive
                       ├─ minimal software
                       └─ logged + monitored
클라이언트 쪽 ~/.ssh/config·ssh-config
# The bastion
Host bastion
    HostName bastion.example.com
    Port 2222
    User you_username
    IdentityFile ~/.ssh/id_ed25519

# Internal machines, only reachable through bastion
Host office server music
    User you_username
    ProxyJump bastion

Host office
    HostName 10.0.0.10
Host server
    HostName 10.0.0.11
Host music
    HostName 10.0.0.12
Bastion hardening 체크리스트·bash
# All on the bastion:
#   PasswordAuthentication no
#   KbdInteractiveAuthentication no
#   PubkeyAuthentication yes
#   PermitRootLogin no
#   AllowUsers you_username        # only specific accounts
#   MaxAuthTries 3
#   ClientAliveInterval 300
#   Port 2222 (or whatever)
#   X11Forwarding no
#   PermitEmptyPasswords no

# fail2ban with aggressive thresholds
# Firewall: ufw allow 2222/tcp from <known sources only>
# Audit logging: ship to a central log host or off-box S3
# Minimal packages: nothing on the bastion that doesn't need to be there

External links

Exercise

환경에 결정 — bastion 필요해, 아니면 Tailscale 이 같은 문제 해결? 대부분 개인 fleet 엔 Tailscale 이김 — 노출 포트 X, 정체성 기반 access, 디폴트 암호화. Tailscale 못 쓰는 compliance 환경엔 위 체크리스트 사용 bastion hardening 문서화. 디폴트 아닌 의도적 선택.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.