05 · Secure Server Access
서버 접근을 보호하는 Secure Server Access
개발자나 관리자가 SSH/RDP로 서버에 직접 접속하는 대신, VPN을 거쳐서만 접근하도록 만드는 구조 — 실무에서 매우 중요한 시나리오입니다.
가장 흔한 실수 — 서버를 인터넷에 그대로 열어두는 것
많은 침해 사고가 화려한 취약점이 아니라, 인터넷에 그대로 노출된 SSH(22번 포트)나 RDP(3389번 포트)에서 시작됩니다. 03편(취약점)에서 다룬 "불필요한 네트워크 노출"의 가장 전형적인 사례이기도 합니다. 개발자나 관리자가 어디서든 서버를 관리할 수 있어야 한다는 실무적 필요는 분명하지만, 그 편의를 위해 관리 포트 자체를 전 세계에 열어두는 것은 공격자에게도 똑같은 편의를 제공하는 셈입니다.
VPN을 관문으로 삼는 구조
해법은 단순합니다. SSH/RDP 포트를 인터넷에서는 아예 닫아버리고, VPN을 통과한 사설 네트워크 안에서만 접근 가능하게 만드는 것입니다. 위 다이어그램처럼 개발자는 먼저 VPN으로 인증하고 연결한 뒤에야 비로소 사설 네트워크 안의 SSH/RDP 서버에 닿을 수 있습니다. 데이터베이스 서버나 각종 관리 콘솔처럼 민감한 관리 인터페이스도 같은 원칙을 적용합니다. 이렇게 하면 인증되지 않은 외부에서는 그 서버가 존재하는지조차 알 수 없는 상태가 됩니다.
서버 관리망 분리와 베스천 호스트
여기서 한 걸음 더 나아가면, 관리용 트래픽이 오가는 네트워크 구간 자체를 일반 업무망과 분리하는 서버 관리망 분리 개념으로 이어집니다(08편의 세그멘테이션 원칙과 맞닿아 있습니다). VPN과 자주 비교되는 대안으로 베스천 호스트(Bastion Host, 점프 서버)가 있습니다 — 모든 관리 접속이 단 하나의 경유 서버를 거치게 하는 방식입니다. VPN은 "네트워크 계층에서 접근 범위를 통째로 열어주는" 방식이고, 베스천 호스트는 "그 서버 한 대를 통해서만 다음 서버로 넘어가게 하는" 방식이라는 차이가 있습니다. 실무에서는 둘을 함께 써서, VPN으로 일단 사설망에 들어온 뒤 베스천 호스트를 거쳐야 실제 서버에 닿게 이중으로 좁히는 구성도 흔히 쓰입니다.