Spamcheck 안티 스팸 서비스

Tier: Free, Premium, Ultimate Offering: Self-managed
caution
Spamcheck는 모든 티어에서 사용할 수 있지만, GitLab Enterprise Edition (EE)을 사용하는 인스턴스에서만 지원됩니다. 라이센스 이유로 GitLab Community Edition (CE) 패키지에는 포함되지 않습니다. CE에서 EE로 마이그레이션할 수 있습니다.

Spamcheck
GitLab.com에서 증가하는 스팸을 방지하기 위해 GitLab에서 처음 개발한 안티 스팸 엔진이며,
이후 자가 관리 GitLab 인스턴스에서 사용할 수 있도록 공개되었습니다.

Spamcheck 활성화

Spamcheck는 패키지 기반 설치에만 사용할 수 있습니다:

  1. /etc/gitlab/gitlab.rb 파일을 편집하고 Spamcheck를 활성화합니다:

    spamcheck['enable'] = true  
    
  2. GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure  
    
  3. 새로운 서비스 spamcheckspam-classifier
    실행되고 있는지 확인합니다:

    sudo gitlab-ctl status  
    

Spamcheck 사용을 위한 GitLab 구성

  1. 왼쪽 사이드바에서 아래쪽에 있는 Admin을 선택합니다.
  2. Settings > Reporting을 선택합니다.
  3. Spam and Anti-bot Protection을 확장합니다.
  4. Spam Check 설정을 업데이트합니다:
    1. “Enable Spam Check via external API endpoint” 체크박스를 체크합니다.
    2. URL of the external Spam Check endpointgrpc://localhost:8001를 입력합니다.
    3. Spam Check API key는 비워둡니다.
  5. Save changes를 선택합니다.
note
단일 노드 인스턴스에서는 Spamcheck가 localhost에서 실행되며, 따라서 인증되지 않은 모드로 실행됩니다. 멀티 노드 인스턴스에서 GitLab이 한 서버에서 실행되고 Spamcheck가 별도의 서버에서 공개 엔드포인트를 통해 실행되는 경우, API 키와 함께 사용할 수 있는 리버스 프록시를 사용하여 일종의 인증을 적용하는 것이 권장됩니다. 한 가지 예로는 JWT 인증을 사용하고 API 키로 베어러 토큰을 지정하는 방법이 있습니다. Spamcheck에 대한 네이티브 인증이 진행 중입니다.

TLS를 통한 Spamcheck 실행

Spamcheck 서비스 자체는 GitLab과 직접적으로 TLS를 통해 통신할 수 없습니다.
하지만 Spamcheck는 TLS 종료를 수행하는 리버스 프록시 뒤에 배포될 수 있습니다.
이러한 시나리오에서는 GitLab이
Admin 영역 설정에서 외부 Spamcheck URL에 대해
grpc:// 대신 tls:// 스킴을 지정하여
Spamcheck와 TLS를 통해 통신하게 할 수 있습니다.