Maru@maru

Dev Hub

Coolify 운영 환경 보안 강화 가이드: 초기 설치 직후 꼭 닫아야 할 포트와 설정

셀프 호스팅 플랫폼 Coolify를 VPS에 설치하면 복잡한 쿠버네티스나 클라우드 콘솔 없이도 Vercel 같은 배포 환경을 직접 구축할 수 있습니다. 스크립트 한 줄로 간단하게 설치되지만 기본 설치 직후의 인스턴스는 외부 공격자가 스캐너로 탐지하기 쉬운 상태입니다.

Coolify v4를 프로덕션 환경에 투입하기 전 반드시 거쳐야 하는 보안 강화 절차와 주의사항을 정리했습니다.

도메인 연결 후 8000, 6001, 6002 포트 외부 노출 차단

처음 설치를 마치면 대시보드 접근을 위해 몇 가지 포트가 호스트 IP에 직접 열립니다.

8000번 포트는 초기 웹 대시보드 접속에 쓰이고, 6001번 포트는 실시간 이벤트 통신, 6002번 포트는 브라우저 웹 터미널 프록시에 쓰입니다. 80번과 443번은 Coolify 내부의 역방향 프록시인 Traefik이 외부 웹 트래픽과 SSL 인증서 발급을 처리하는 용도입니다.

커스텀 도메인을 연결하고 Traefik을 통해 HTTPS로 대시보드 접속을 마쳤다면 8000, 6001, 6002 포트를 외부에 열어둘 이유가 없습니다. 도메인 연동 이후에는 대시보드와 웹소켓 트래픽 모두 443번 포트로 전달되기 때문입니다.

클라우드 보안 그룹이나 방화벽에서 즉시 세 포트의 인바운드 접근을 차단해야 합니다. 다만 SSH 포트와 80, 443 포트 규칙은 건드리지 않아야 서버 접근 차단을 방지할 수 있습니다.

도커 네트워크 우회 방지를 위한 로컬호스트 바인딩

리눅스 호스트에서 UFW 방화벽만 믿고 포트를 닫았다가 낭패를 보는 경우가 흔합니다. 도커 데몬이 iptables 체인을 직접 수정하면서 UFW 규칙을 우회해 컨테이너 포트를 외부에 다시 열어버리는 현상 때문입니다.

가장 확실한 해결책은 클라우드 가상 사설망 수준의 보안 그룹을 설정하거나, Coolify 컨테이너의 포트 바인딩 자체를 로컬 루프백 주소로 제한하는 것입니다.

Coolify v4 소스 디렉터리에 오버라이드 설정 파일을 추가하면 업그레이드 스크립트를 실행해도 설정이 덮어쓰이지 않고 유지됩니다.

/data/coolify/source/docker-compose.override.yml 파일을 열고 포트 매핑을 로컬호스트로 한정합니다.

yaml

파일을 저장한 뒤 업그레이드 스크립트를 재실행하면 도커 데몬이 컨테이너 포트를 외부 공인 IP가 아닌 로컬호스트에만 바인딩하므로 임의 스캔을 원천 차단합니다.

핵심 환경 변수 파일 백업과 권한 제어

Coolify 제어부의 핵심 정보는 /data/coolify/source/.env 파일에 기록됩니다. 데이터베이스 암호화 키와 마스터 설정이 이 단일 파일에 포함되어 있으므로 파일 권한을 엄격하게 제한해야 합니다.

루트 사용자만 해당 파일에 접근할 수 있도록 권한을 점검하고, 형상 관리 도구에 원본 파일이 실수로 커밋되지 않도록 오프라인 백업을 별도로 분리해 두는 작업이 안전합니다.

대시보드 내부 설정에서는 관리자 계정의 2단계 인증을 활성화하고 불필요한 공개 회원가입 옵션을 꺼두어야 합니다. Coolify 관리자 권한은 호스트의 루트 권한과 동등한 영향력을 가지므로 배포 권한이 없는 일반 작업자에게는 읽기 전용 역할을 부여하는 것이 권장됩니다.

Loading comments…