Orion-Belt를 만나보세요, Go ZeroTrust Bastion
Source: Dev.to

개요
인프라 세계에서는 우리는 오랫동안 **“보안 세금”**을 받아들여 왔습니다.
서버에 접근 가능하게 하려면 다음 중 하나를 해야 합니다:
- 방화벽에 구멍을 열기,
- 복잡한 VPN을 유지하기, 혹은
- 엔터프라이즈 PAM(Privileged Access Management) 도구에 수천 달러를 지불하기.
저는 엔터프라이즈의 부피감 없이 Zero Trust 원칙을 따르는 가볍고 개발자 중심의 도구에 큰 공백이 있다고 느꼈습니다. 그래서 Orion‑Belt를 만들었습니다.
Orion‑Belt 작동 예시
보는 것이 믿음이다. 아래는 osh(Orion‑Belt SSH 클라이언트)가 인바운드 포트가 전혀 열려 있지 않은 머신에 연결하는 모습을 빠르게 보여줍니다. 게이트웨이는 인증 및 기록을 처리합니다.
전통적인 접근 방식의 “보안 세금”
대부분의 팀은 원격 서버 접근을 세 가지 방법 중 하나로 처리하며, 모두 함정이 있습니다:
| 접근 방식 | 단점 |
|---|---|
| Static SSH Keys | 노트북이 도난당하거나 직원이 퇴사할 때까지는 좋지만, “누가 무엇을 했는지” 감사하기가 거의 불가능합니다. |
| Jump Box (Bastion) | 단일 장애 지점 – 침해될 경우 전체 네트워크가 노출됩니다. |
| VPNs | “평면” 네트워크 접근을 제공합니다; 사용자가 VPN에 연결되면 종종 모든 것을 볼 수 있어 최소 권한 원칙을 위반합니다. |
나는 현대적인 SaaS(예: Teleport 또는 Boundary)와 같은 느낌이면서도 셀프‑호스팅, 오픈‑소스, 그리고 매우 간단한 솔루션을 원했습니다.
기능 비교: 왜 Orion‑Belt?
| 기능 | Orion‑Belt (오픈 소스) | 전통적인 SSH / VPN | 엔터프라이즈 게이트웨이 |
|---|---|---|---|
| 인바운드 방화벽 규칙 | ❌ 아니오 (리버스 터널) | ✅ 예 (포트 22 / VPN) | ❌ 아니오 (에이전트 / 터널) |
| 세션 녹화 | ✅ 예 (내장) | ❌ 아니오 (설정 어려움) | ✅ 예 (내장) |
| 접근 제어 | ReBAC (세분화) | 거친 | RBAC / ABAC |
| 임시 접근 | ✅ 예 (JIT 승인) | ❌ 아니오 | ✅ 예 |
| 프로토콜 지원 | SSH, SCP | SSH, SCP (VPN이 더 많이 지원) | SSH, Kubernetes, Databases, HTTP |
| 비용 | 무료 (셀프‑호스팅) | 무료 | $$$ 높음 |
| 아키텍처 | 경량 Go 바이너리 | 표준 유틸리티 | 복잡한 마이크로‑서비스 |
작동 원리 (내부 구조)
Orion‑Belt는 Reverse SSH Tunnel 아키텍처를 사용합니다. 여러분이 사설 네트워크 안으로 들어가는 대신, 여러분의 서버가 외부로 나가서 Orion‑Belt 게이트웨이에 연결합니다.
- The Agent – 대상 VM에서 실행되는 작은 Go 바이너리로, Orion‑Belt 서버에 대한 outbound 연결을 생성합니다.
- The Gateway – “두뇌”。 인증, ReBAC, 세션 기록을 처리합니다.
- The Client (
osh/ocp) – 표준 SSH/SCP와 같은 느낌의 CLI 도구이지만, 먼저 게이트웨이 API를 통해 권한을 확인합니다.
연결이 서버에서 게이트웨이로 outbound이기 때문에 Port 22를 닫아 둘 수 있어, 자동화된 봇 스캔 및 0‑day SSH 취약점으로부터 인프라를 효과적으로 숨길 수 있습니다.
현대 팀을 위한 주요 기능
ReBAC (관계 기반 접근 제어)
Orion‑Belt는 사용자와 리소스 간의 관계를 확인하여 팀이 성장함에 따라 확장 가능한 세밀한 권한을 제공합니다.
세션 DVR 스타일 재생
규정 준수 체계(SOC 2, HIPAA 등)는 종종 전체 감사 로그를 요구합니다. Orion‑Belt는 게이트웨이 수준에서 모든 키 입력을 기록하여 나중에 전체 세션을 재생할 수 있게 합니다.
JIT (Just‑In‑Time) 일시적 접근
osh --request-access prod-db-01 --duration 1h --reason "Investigating latency"
관리자는 알림을 받고 요청을 승인하면 접근 권한이 자동으로 만료됩니다. “고아” 키가 남지 않습니다.
아키텍처 다이어그램
Client (osh/ocp)
│
▼
Orion‑Belt Gateway Server (ReBAC + Session Recording)
│
▼ (Reverse SSH Tunnel)
Agent (on your locked‑down servers)
빠른 시작
1. 소스에서 빌드
git clone https://github.com/zrougamed/orion-belt.git
cd orion-belt && make build
2. 서버 시작
서버는 중앙 허브 역할을 하며 세션 및 권한을 저장하기 위해 PostgreSQL을 사용합니다.
3. 에이전트 배포
방화벽 뒤에 있는 모든 서버에 에이전트 바이너리를 배치하십시오. 게이트웨이에 연결되면 해당 서버는 osh를 통해 접근할 수 있게 됩니다.
피드백이 필요합니다!
Orion‑Belt는 현재 Alpha 단계이며—기능적이고 안정적이지만, 로드맵을 shaping할 초기 채택자를 찾고 있습니다.
- 이 아키텍처가 현재 워크플로에 맞나요?
- 어떤 알림 플러그인을 보고 싶으신가요 (Slack, Discord, Email)?
레포를 확인하고, 개념이 마음에 들면 ⭐를 남겨 주세요, 그리고 댓글로 논의해 주세요!
GitHub:
GitHub – Orion‑Belt
최종 생각
인프라 접근은 “easy”와 “secure” 사이의 선택일 필요가 없습니다. Go의 성능과 Zero‑Trust 아키텍처를 결합함으로써 Orion‑Belt는 고급 보안을 모두에게 제공한다.

