Civo 방화벽을 내 IP로 열고, 다시 닫습니다.
수동 절차, 그 뒤에 남는 유동 IP 함정, 그리고 마감 시각에 규칙을 닫아 주는 무료 메뉴 막대 경로.
지금 앉아 있는 자리에서 Civo 인스턴스나 클러스터 API에 닿아야 합니다. 답은 방화벽 규칙 하나입니다. 공인 IPv4를 찾고, 그 주소 하나만 CIDR /32로 적어 포트를 엽니다. Civo는 앞쪽 절반을 쉽게 만들어 두었고 뒤쪽 절반은 위험하게 남겨 두었습니다. 손으로 추가한 규칙은 누군가 지울 때까지 그대로 있기 때문입니다. 이 페이지는 수동 절차를 끝까지 보여 준 다음, 거의 아무도 처리하지 않는 부분을 다룹니다. 다시 닫는 일입니다.
같은 규칙을 메뉴 막대에서 여는 경우
-
01
관리할 방화벽을 앱에 알려 줍니다
첫 실행이면 메뉴 막대의 방패가 온보딩을 돌립니다. Civo API 키를 입력하면 macOS 키체인으로 들어가고, 리전을 고르고, 다룰 방화벽을 선택합니다. 선택한 방화벽마다 포트가 하나씩 붙으며 그 칸은 6443에서 시작합니다.
-
02
공인 IPv4를 찾게 둡니다
감지는
api.ipify.org를 먼저 부르고, 다음이 ifconfig.me/ip, 그다음이icanhazip.com이며, 유효한 공인 주소를 처음 돌려주는 제공자에서 멈춥니다. IPv6 응답이나 사설 주소는 규칙에 적히는 대신 메시지로 거절됩니다. Civo 방화벽 규칙에는 IPv4 CIDR이 필요하기 때문입니다. -
03
클릭 한 번이 규칙을 씁니다
앱은 선택한 포트에 인그레스 규칙을 만들고, CIDR은 감지된 주소에 /32를 붙인 값으로, 라벨은
civo-cloud-<hostname>-<firewall-name>으로 적습니다. Civo가 생성 응답에 규칙 ID를 정확히 돌려주므로, 앱은 나중에 어느 규칙이 자기 것이었는지 추측할 일이 없습니다. -
04
열어 둘 시간을 고릅니다
시간 제한 접근은 15분, 30분, 1시간, 2시간을 제공합니다. Unlimited도 있는데 이쪽은 규칙만 열고 닫는 일정을 아예 잡지 않으므로, 직접 닫을 생각일 때만 고르세요.
-
05
마감 시각은 디스크에 적힙니다
닫기 작업마다 방화벽 ID, 규칙 ID, 리전, 마감 시각을 들고 있고, 앱의 Application Support 디렉터리에 있는
firewall-closures.json에 원자적으로 기록됩니다. 앱을 종료해도 마감 시각은 남아 있어서, 다음 실행 때 기한이 지난 작업은 팝오버를 열지 않아도 닫힙니다. 정직한 한계는 이렇습니다. 규칙을 지우려면 앱이 떠 있고 Civo에 닿을 수 있어야 합니다. 종료하거나 잠들었다고 서버 쪽에 삭제가 예약되지는 않습니다. -
06
주소를 이름 붙여 저장합니다
현재 IP를 집이나 사무실 같은 이름으로 저장해 두면, 나중에 다시 감지하지 않고 그 프리셋으로 방화벽을 열 수 있습니다. 다른 곳에 앉아서 고정된 사무실 주소에 접근을 열어 주고 싶을 때 쓸모가 있습니다.
새로 만든 Civo 방화벽이 실제로 하는 일
Civo API 문서는 분명합니다. 규칙을 만들 때 허용이냐 차단이냐를 고르는 항목이 없습니다. 새 방화벽의 기본값이 전부 차단이라, 필요한 포트만 열면 되기 때문입니다. 그러니 직접 만든 방화벽은 닫힌 채로 시작하고 추가하는 규칙은 전부 허용 규칙입니다. 함정은 다른 쪽에 있습니다. 리전마다 이름이 말 그대로 Default (all open)인 방화벽이 따라오고, Civo 문서도 모든 포트가 열려 있으니 손보라고 적어 두었습니다. 그래서 사람들이 계속 묻는 질문의 정답은 이렇습니다. 직접 만든 방화벽은 기본 차단이고, 리전의 Default 방화벽은 아닙니다.
수동 절차, 처음부터 끝까지
먼저 공인 IPv4를 얻습니다. curl -s https://api.ipify.org. 다음으로 규칙을 추가합니다. Civo CLI라면 civo firewall rule create <firewall_id> --protocol=TCP --startport=6443 --endport=6443 --cidr=203.0.113.42/32 --direction=ingress --label='laptop'입니다. 세 번째가 다들 건너뛰는 부분인데, 돌아온 규칙 ID를 적어 두어야 나중에 지울 수 있습니다. 기본값을 조심하세요. --cidr을 빼면 CLI가 0.0.0.0/0을 적용해, 나에게가 아니라 인터넷 전체에 포트를 엽니다. 대시보드 경로도 모양은 같습니다. Actions, 그다음 Rules, 그다음 단일 포트나 범위, 프로토콜, 방향, CIDR.
규칙은 추가한 이유보다 오래 삽니다
Civo 방화벽 규칙에는 만료가 없습니다. 사람이나 API 호출이 지울 때까지 남습니다. 고정 주소를 쓰는 회선이라면 그저 지저분한 정도입니다. 가정용 회선이라면 실제 노출입니다. 대부분의 소비자용 ISP가 재접속이나 야간 리스 갱신 때 주소를 돌리기 때문입니다. 허용해 둔 /32는 남의 공유기에 넘어가고, 규칙은 이제 모르는 사람에게 6443 포트를 열어 주고 있으며, 정작 나는 접근이 막혀 두 번째 규칙을 쓰고 있습니다. 손으로 쓴 규칙은 하나하나가 작은 부채이고, 그 부채는 지우는 걸 기억해 낼 때만 갚아집니다.
앱이 내가 쓴 규칙을 절대 지우지 못하는 이유
소유권은 포트나 주소가 아니라 라벨이 정합니다. 앱은 civo-cloud-<hostname>-<firewall-name> 라벨이 붙은 규칙만 만들고, Kubernetes API 연결을 위해 연 규칙은 대신 k8s-api 접미사를 답니다. Bulk Close All은 관리 중인 방화벽마다 규칙 목록을 받아 와서, 이 기계의 그 프리픽스로 시작하는 라벨만 골라 지웁니다. 손으로 쓴 운영 규칙에는 그런 라벨이 없으니 애초에 후보가 아닙니다. 하나는 짚어 둘 만합니다. 상태 조회가 실패해도 메뉴 막대에는 닫힘이나 알 수 없음으로 표시되므로, 화면이 서버 쪽 닫힘을 증명하지는 않습니다. 중요한 상황이라면 Civo 대시보드를 확인하세요.
6443 포트가 계속 등장하는 이유
6443은 Kubernetes API 서버 포트입니다. Civo k3s 클러스터는 엔드포인트를 https://<master-ip>:6443으로 공개하고, kubectl과 kubeconfig과 모든 Kubernetes 클라이언트가 이야기하는 상대가 그것입니다. 클러스터 방화벽이 내 주소에서 6443을 허용하지 않으면 모든 명령이 타임아웃으로 끝납니다. Civo 방화벽 검색에서 이 숫자가 유독 많이 보이는 이유입니다. 앱에서는 6443이 온보딩의 기본 포트이고, 클러스터에 연결할 때 API 접근을 점검해 규칙이 없으면 대신 열어 줍니다. 다만 이 Kubernetes 경로는 자기 규칙을 메모리에서 추적하다가 연결이 끊기면 정리합니다. 시간 제한 메뉴 막대 큐의 영속성과 재시도 동작을 물려받지는 않습니다.
실제로 많이 나오는 질문
- Civo 방화벽을 내 IP에만 열려면 어떻게 하나요?
- curl
-shttps://api.ipify.org로 공인 IPv4를 얻은 다음, 대상 방화벽에 그 주소를 /32 CIDR로 적은 인그레스 규칙을 만듭니다. Civo CLI라면 civo firewall rule create<firewall_id>--protocol=TCP--startport=6443--endport=6443--cidr=203.0.113.42/32--direction=ingress입니다. API에는 허용이냐 차단이냐를 고르는 항목이 없습니다. 직접 만든 방화벽은 포트를 열기 전까지 전부 차단하기 때문입니다. 돌아온 규칙 ID는 나중에 지우려면 보관해 두세요. - Civo 방화벽 규칙에서 /32는 무슨 뜻인가요?
- CIDR 표기에서 슬래시 뒤의 숫자는 주소의 앞쪽 몇 비트를 고정할지를 뜻합니다. IPv4 주소는 32비트라서 /32는 전부 고정하고, 규칙은 정확히 주소 하나에만 걸립니다.
203.0.113.42/32는 그 호스트이고 그 외에는 아무것도 아닙니다. 비교하자면 /24는 256개 주소를 덮고,0.0.0.0/0은 인터넷 전체를 덮습니다. CIDR 없이 규칙을 만들면 Civo가 적용하는 값이 바로 그0.0.0.0/0입니다. - IP 주소가 바뀌면 어떻게 되나요?
- 규칙은 나를 따라오지 않습니다. 옛 주소를 계속 허용하므로 나는 접근을 잃고 두 번째 규칙을 추가하게 되고, ISP가 그 주소를 다음으로 넘겨준 사람이 내가 열어 둔 구멍을 물려받습니다. 가정용 회선에서는 이게 보통입니다. 주소가 재접속이나 야간 리스 갱신 때 도는 게 일반적이기 때문입니다. 해법은 더 나은 IP가 아니라 스스로 닫히는 규칙입니다. 정해진 시간 동안만 포트를 열고 마감 시각이 규칙을 지우게 하세요.
- CivoCloudManager가 기존 방화벽 규칙을 건드리나요?
- 아니요. 앱은 자기가 만든 규칙만 지우고, 그 식별은
civo-cloud-<hostname>-<firewall-name>라벨로 합니다. Kubernetes API 접근용에는 k8s-api 접미사가 붙습니다. Bulk Close All은 무엇을 지우기 전에 관리 중인 방화벽의 규칙 목록을 그 프리픽스로 거르므로, Civo 대시보드나 CLI나 Terraform에서 손으로 쓴 규칙은 맞는 라벨이 없어 지워지지 않습니다. - 앱을 종료해도 자동 닫힘 타이머가 살아 있나요?
- 마감 시각은 살아 있습니다. 작업마다 방화벽 ID, 규칙 ID, 리전, 닫을 시각이 Application Support 아래 JSON 파일에 원자적으로 기록되고, 기한이 지난 작업은 다음 실행 때 닫힙니다. 살아남지 못하는 쪽은 무인 닫힘입니다. 삭제는 내 Mac에서 나가는 API 호출이라, 앱이 떠 있고 Civo에 닿을 수 있어야 합니다. 마감 시각을 넘겨 종료하거나 잠들어 있었다면 닫는 일은 앱을 다시 열 때까지 미뤄집니다. 서버 쪽에 예약되는 것은 없습니다.
가이드
단계별 안내와 솔직한 비교.
- 01 Civo API 키 연결 Civo 대시보드에서 키를 만들고, 한 번 붙여 넣고, 그다음부터는 macOS 키체인이 들고 있습니다.
- 02 Lens·OpenLens·k9s 비교 클러스터를 가리지 않는 도구 셋, Civo만 아는 도구 하나. 그 차이가 무엇을 열어 둘지를 정합니다.
- 03 S3로 쓰는 Civo Object Storage 리전 엔드포인트, s3cmd와 rclone과 AWS CLI에 바로 넣는 설정, 그리고 네이티브 클라이언트가 다르게 하는 일.
- 04 Mac에서 쓰는 Civo DNS 도메인을 Civo 네임서버로 넘긴 다음, 존은 브라우저 탭이 아니라 네이티브 앱에 둡니다.
- 05 변경 이력 출시된 모든 릴리스를 최신순으로, 스토어 릴리스 노트가 담기에는 짧은 설명까지 붙여서.
심층 가이드
Civo 제품별로 따로 읽는 페이지.
CivoCloudManager가 다루는 Civo 영역마다 별도의 페이지가 있습니다. 구체적인 동작, 트레이드오프, 아키텍처 세부까지 담았습니다. 지금 하는 일에 가장 가까운 것을 고르세요.
- 01 Mac을 위한 Civo CLI 대안 GUI가 CLI보다 나은 지점, 그렇지 않은 지점, 그리고 둘을 함께 쓰는 법.
- 02 Mac을 위한 Civo Kubernetes GUI 실시간 클러스터 대시보드, 실시간 Pod 로그, kubectl 불필요.
- 03 Mac을 위한 Civo Object Storage 브라우저 네이티브 S3 호환 브라우저. 쓰지 않는 bucket은 중앙 vault로 Pause.
- 04 Mac 메뉴 막대에서 여는 Civo 방화벽 방화벽마다 클릭 한 번으로 열고 닫기, 자동 IP 감지, 자동 닫힘 타이머.
- 05 Mac을 위한 Civo 비용 대시보드 Civo charges API의 실제 청구 데이터. 기간 선택기와 월말 예상치.
방화벽 제어가 무료 티어입니다.
현재 IP에 대한 메뉴 막대 열기와 닫기, 이름 붙인 프리셋, 자동 닫힘 마감 시각은 7일 전체 기능 체험이 끝난 뒤에도 무료로 남습니다. 이 페이지의 내용을 실행하는 데 드는 비용은 없습니다.