본문으로 건너뛰기

IP 지리 정보

IP 위치 서비스는 독립적으로 설정할 수 있는 두 데이터 원본으로 구성됩니다. 하나는 공인 IP 하나를 식별하고 다른 하나는 지역 조건을 CIDR로 변환합니다. 세션, 허용 목록, 요청·WAF 로그, 이벤트 센터, 스캐너 차단, SSH 보안 및 게이트웨이 접근 범위에 표시 정보나 규칙 데이터를 제공합니다.

위치 결과는 판단을 돕는 참고 정보일 뿐 정확한 위치 추적이 아니며, 보안이 중요한 엔드포인트의 유일한 인증 조건으로 사용해서도 안 됩니다.

두 가지 API

API용도
IP 조회 데이터베이스공인 IP 하나를 국가, 광역·기초 지역 및 통신사 등의 정보로 변환
CIDR 데이터베이스광역·기초 지역 목록을 제공하고 지역·통신사 조건을 규칙에 사용할 CIDR로 변환

두 API는 각각 공식 온라인 서비스 또는 사용자 지정 서비스를 선택할 수 있고 서로 다른 방식을 조합할 수도 있습니다. 예를 들어 IP 조회에는 공식 서비스를 사용하고 CIDR 조회에는 LAN에 자체 호스팅한 서비스를 사용할 수 있습니다.

공식 온라인 서비스

‘공식 온라인 서비스’를 선택하면 다음 주소를 사용합니다.

  • IP 조회: https://ipaddress.fnknock.cn/api/v1
  • CIDR 데이터베이스: https://cidr.fnknock.cn/api/v1

공식 서비스는 설정할 항목이 가장 적고 지역 데이터가 자동으로 관리됩니다. 다만 fn-knock 실행 환경에서 도메인을 해석하고 해당 HTTPS 서비스에 접속 가능한지 확인합니다. 오프라인 네트워크나 외부 접속이 제한된 환경에서는 사용자 지정 서비스를 사용합니다.

사용자 지정 서비스

페이지에서 권장하는 호환 구현은 다음과 같습니다.

서비스프로젝트기본 입력값
IP 조회 데이터베이스go-ipaddress-apihttp://127.0.0.1:30661
CIDR 데이터베이스go-cidr-apihttp://127.0.0.1:30662

시스템 설정 → 위치에서 ‘사용자 지정 서비스’를 선택하고 서비스 루트 주소를 입력합니다. 주소는 http:// 또는 https://로 시작하는 형식만 허용하며 저장할 때 마지막 슬래시는 제거됩니다.

https://example.test 같은 도메인 루트 주소를 입력하면 fn-knock가 /api/v1 API 경로를 자동으로 추가합니다. 주소에 https://example.test/custom/처럼 사용자 지정 경로가 이미 있으면 해당 경로 아래의 ip/lookup, provinces 등의 API를 직접 요청합니다.

Docker에서 127.0.0.1은 fn-knock 컨테이너 자체를 가리킵니다. 자체 호스팅 서비스가 다른 컨테이너나 호스트에 있다면 같은 Docker 네트워크의 서비스 이름, 컨테이너에서 접속할 수 있는 호스트 주소 또는 명시적으로 공개한 포트를 사용합니다.

테스트 및 저장

‘연결 테스트’는 현재 입력값을 사용하므로 먼저 저장할 필요가 없습니다.

  • IP 조회 테스트는 8.8.8.8을 조회하고 응답에 성공 상태와 조회 결과가 있는지 확인합니다.
  • CIDR 테스트는 광역 지역 목록을 가져오고 통신사 필터 지원 여부도 계속 확인합니다.

두 테스트가 모두 통과한 뒤 저장합니다. 테스트 성공은 API와 응답 형식을 사용할 수 있다는 뜻일 뿐 모든 주소와 지역 데이터가 완전하다는 보장은 아닙니다.

지역 선택에서 China Telecom, China Unicom 또는 China Mobile 통신사별 CIDR을 필터링할 수 있습니다. 자체 호스팅 CIDR 데이터베이스에서 통신사 필터를 사용하려면 0.1.3 이상이 필요합니다. 이전 버전에서는 연결 테스트 시 업그레이드 안내가 나오지만 일반 광역·기초 지역 조회는 계속 사용할 수 있습니다.

페이지에 데이터가 표시되는 과정

IP 위치 조회는 백그라운드 큐에서 비동기로 실행되고 캐시됩니다. 세션, 로그, 허용 목록 또는 이벤트 세부 정보를 처음 열면 먼저 ‘위치 확인 중’으로 표시된 뒤 위치 정보가 채워질 수 있습니다. 사설망과 루프백 주소는 공인 IP 위치 조회를 건너뜁니다.

기존 레코드의 위치는 생성할 때 기록된 데이터이거나 이후 캐시에서 채운 데이터일 수 있습니다. 따라서 데이터 원본을 바꿔도 모든 과거 레코드가 즉시 같은 정보로 새로 고쳐진다고 가정하면 안 됩니다.

검증 및 제한

저장한 뒤 다음 위치에서 같은 공인 IP를 표본 확인합니다.

  1. 요청 로그 또는 WAF 로그
  2. 세션 레코드, 허용 목록 또는 일반 차단 목록
  3. 이벤트 센터
  4. SSH 로그인 로그

서로 다른 위치에서도 같거나 비슷한 결과가 표시되는지 확인합니다. 실패하면 기본 URL, 프로토콜, DNS, 컨테이너 네트워크, TLS 인증서, 서비스 응답 형식 및 fn-knock 백엔드 로그를 확인합니다.

모든 요청이 CDN, 리버스 프록시, 사설망 또는 루프백 주소로 표시된다면 위치 데이터베이스를 조정하기 전에 실제 클라이언트 IP를 먼저 수정합니다.

위치 데이터베이스는 최신 정보 반영이 늦을 수 있고 통신사가 IP를 재사용할 수도 있습니다. 지역 규칙은 여행, 로밍 또는 기업 인터넷 출구 사용자를 잘못 차단할 수 있습니다. 보안이 중요한 접근의 유일한 조건으로 사용하지 말고 CIDR, 로그인 인증 및 로그 관찰과 함께 사용합니다.

QQ 커뮤니티: 1081609274