참고 : 개정된 포스트를 추가했습니다. https://leestana01.tistory.com/19
개발/배포 서버 분리가 필요한 경우가 많다.
그러나 개발 서버를 외부에 노출하면 취약점이 많다.
하지만 그럴듯한 정보는 인터넷에 없다.
이상적인 방법
과거 대학교 3학년에 이와 유사한 고민을 하였다.
이에, 다음과 같은 설계 목표를 세우고 인프라 환경을 구축했다.
매우 이상적이고, 실제 운용가능한 현실적인 인프라 설계이다.
| 설계 목표 - 인가되지 않은 사이트의 접근을 일체 금지한다. - 내부 리소스의 모든 접근은 VPN을 이용해 접근해야한다. 이 때, 모든 리소스와 HTTPS 통신이 가능해야하며, 사전 등록된 인증서 외 별도의 인증서를 요구하지 않는다. - 해커 침입 시, 모든 송수신 패킷을 확인하고 탈취된 정보 확인이 가능해야한다. |
그 결과 설계한 구조는 다음과 같다.
실제로 해당 환경을 구축하고, 대학생 때 개인사업 프로젝트에서 운용했다.
따라하는 것은 추천하지 않는다.
Squid 관련 세팅이 인터넷에 별로 없고, AI도 제대로된 방법을 알려주지 못한다. 꽤나 부딪히며 구축했다.

정답일까? (소규모 프로젝트 / 초기 스타트업)
개발에 정답은 전혀 없다는 철학을 갖고 있다.
특정 기업 환경에서는 개발/배포 서버 접근을 굳이 분리 안하고 외부로 노출하는 것이 가장 최선일 수도 있다.
어떤 기업에서는 위 조치도 너무 부족할 수 있다.
다만, 일반적인 상황에서는 개발/배포 서버를 분리하는 것이 보안상 안전할 것이다.
그러나, 위의 설계는 너무 과하다.
위와 같이 서두를 꺼낸 이유는 다음과 같다.
위 인프라를 운영한 경험자로서, 인프라 전문 인력이 존재하지 않는 이상 관리가 너무 힘들다.
- 내부 인증서를 지속적으로 관리 및 갱신해야한다. 발급한 인증서는 각 개발 환경에 최신화시켜야한다.
- 패킷을 지속적으로 검사하며 리소스 소모가 심하다. 또한 트래픽 저하가 심하다.
- SPOF가 너무 많다. 실제로 다양한 이유로 개발 인프라가 전부 마비되었다.
설계 목표를 현실적으로 재설정할 필요가 있다.
설계 목표를 다시 확인해보자.
다음의 목표가 정말 스타트업 또는 소규모 프로젝트에서 요구할 사항일까?
| 설계 목표 - 인가되지 않은 사이트의 접근을 일체 금지한다. - 내부 리소스의 모든 접근은 VPN을 이용해 접근해야한다. 이 때, 모든 리소스와 HTTPS 통신이 가능해야하며, 사전 등록된 인증서 외 별도의 인증서를 요구하지 않는다. - 해커 침입 시, 모든 송수신 패킷을 확인하고 탈취된 정보 확인이 가능해야한다. |
현실성을 고려할 때, 설계 목표를 다음과 같이 설정할 수 있다.
| [설계 목표 수정] - 이전 : 인가되지 않은 ( - 이후 : 인가되지 않은 "외부인"의 "우리" 사이트 접근을 일체 금지한다. - 유지 : 내부 리소스의 모든 접근은 VPN을 이용해 접근해야한다. - 삭제 : - 삭제 : |
| 최종 설계목표 - 인가되지 않은 외부인의 개발 리소스 접근을 일체 금지한다. - 내부 리소스의 모든 접근은 VPN을 이용해 접근해야한다. |
위를 만족시키는 방법은 매우 단순하다.
- wireguard 등의 VPN을 도입한다.
- https는 cert-manager를 통해 인증서 자동 발급을 수행한다.
참고 : 내부 망 인증은 HTTP-01 방식은 어려울 것이므로, DNS-01을 사용하면 된다.
내부망 주소의 DNS 정보가 외부로 노출되는 것은 어쩔 수 없이 감소해야하는 부분이다.
그러나 직접 쿼리를 날려 확인한 결과
네이버, 구름(goorm) 같은 이름있는 기업들도 그렇게까진 안막더라.
너무 보안에 호들갑 떨면서 DNS까지 과하게 막았던 것 같다.

세상 편한 방식으로 효율성 있는 보안 환경 구축하시길
'인프라 > 자유' 카테고리의 다른 글
| 내부망 구성하기 (개정판) (0) | 2026.03.23 |
|---|---|
| JCasC에서 Jenkins 계정 관리 방법 (0) | 2026.03.14 |
| NFS를 통해 다중 노드 스토리지 공유하기 (0) | 2026.03.12 |
| PVC 설정 없이 Wireguard VPN 세팅하기 (0) | 2026.03.09 |
| Path MTU Discovery(PMTUD)가 뭘까? (0) | 2026.03.09 |