데브허브 | DEVHUB | Securing a VPS with the "Belt and Braces" approach (ft Tailscale)Securing a VPS with the "Belt and Braces" approach (ft Tailscale)
- VPS 보안 강화의 필요성: 공개적으로 접근 가능한 서비스(SSH, 관리 대시보드, DB)는 보안 취약점이 될 수 있으며, '벨트 앤 브레이시스' 접근법(다중 보안 계층)이 중요합니다. 🛡️
- 초기 SSH 보안 시도 실패: 고정 IP로 SSH 접근을 제한했으나, 출장 시 접근 불가 및 홈 네트워크 장애 시 단일 실패 지점 발생 문제로 비실용적이었습니다. ✈️
- Tailscale 도입: WireGuard 기반의 안전한 메시 네트워크(테일넷)를 구축하여 장치 간 비공개 통신을 가능하게 하며, 공개 서비스 잠금에 이상적인 솔루션입니다. 🌐
- Tailscale 설치 및 설정: 무료 개인 플랜으로 계정을 생성하고, VPS와 로컬 머신에 Tailscale을 설치한 후 대시보드에서 연결을 확인합니다. 💻
- SSH 비공개화: VPS의 SSHD 설정을 Tailscale이 제공하는 비공개 IP에만 바인딩하도록 변경하여, 공용 인터넷에서의 SSH 접근을 차단합니다. (설정 적용을 위해 VPS 재시작 필요) 🤫
- 방화벽 이중 보안: SSHD 설정 외에도 UFW/iptables를 사용하여 Tailscale IP 범위에서만 SSH 접근을 허용하고 공용 접근을 거부하는 방화벽 규칙을 추가하여 보안을 강화합니다. 🔥
- Magic DNS로 사용성 개선: Tailscale의 Magic DNS 기능을 활용하여 장치 이름을 통해 SSH 접속이 가능하게 함으로써, 복잡한 비공개 IP 주소를 기억할 필요 없이 편리하게 관리할 수 있습니다. 🧙♂️
- Tailscale SSH 기능 활용: SSH 인증 및 권한 부여를 Tailscale에 위임하여 SSH 키 관리의 번거로움을 없애고, 루트 접근 시 추가 인증을 요구하는 등 보안을 강화합니다. 🔑
- CI/CD 파이프라인 통합: GitHub Actions용 Tailscale 솔루션을 사용하여 CI/CD 파이프라인이 테일넷을 통해 VPS에 안전하게 접근하도록 설정합니다. 이를 위해 OAuth 클라이언트와 ACL 태그 정의가 필요합니다. ⚙️