스패머의 <random>.domain 도메인 등록 시도 차단

최근 @services.cn과 같은 이메일 주소로 등록을 시도하는 공격이 급증하면서, 전달 불가능한 메일들이 MTA 큐를 가득 채우고 있습니다.

제 이해로는 와일드카드를 사용하여 도메인을 차단하는 방법이 없다고 알고 있습니다 (Use of an asterisk in blocked email domains prevents registration from any email address - #7 by selase 참조).

이러한 공격을 방지할 다른 방법이 있을까요?

Discourse는 차단된 이메일 도메인 목록에서 와일드카드를 지원하지 않으므로, @services.cn과 같은 전체 도메인 패턴을 직접 차단하는 것은 불가능합니다. 그러나 이러한 스팸 가입 공격을 줄이거나 방지하기 위해 다음과 같은 조치를 취할 수 있습니다:

  1. “가입 IP당 최대 신규 계정 수” 감소
    이 설정을 1 또는 다른 낮은 값으로 낮추어 동일한 IP 주소에서 생성할 수 있는 신규 계정 수를 제한합니다. 이는 단일 IP에서 대량으로 계정을 생성하는 것을 방지하는 데 도움이 되며, 공격이 진행 중인 동안 매우 효과적입니다.
  2. 가입 시 hCaptcha 활성화
    Discourse hCaptcha 플러그인을 활성화하여 가입 양식에 CAPTCHA 챌린지를 추가합니다. 이는 봇 및 자동화 가입에 대한 장벽을 높여주며, 모든 호스팅 플랜에서 사용할 수 있습니다.
  3. 알려진 악성 도메인 수동 차단
    와일드카드는 지원되지 않지만, 문제 있는 도메인을 “차단된 이메일 도메인” 목록에 명시적으로 추가할 수 있습니다.
  4. 신규 사용자 승인 요구
    일시적으로 “사용자 승인 필수” 설정을 활성화합니다. 이는 모든 신규 가입을 수동 승인을 위한 모더레이션 대기열에 배치합니다.

산드로, 문제를 해결할 수 있었나요?

결국 postfix 레벨에서 해당 주소를 차단하게 되었습니다.

정말 현명한 선택이네요! 어떤 와일드카드가 효과가 있었나요?

이것이 왜 작동하지 않았는지 궁금합니다. 와일드카드 지원을 위해 논리를 펼칠 수도 있겠지만, 잘못 설정하면 사이트가 누구도 사용할 수 없게 될 수 있으므로 그 위험성을 잘 알고 있습니다!

메일로 답변을 보냈는데 여기에는 내 답장이 보이지 않아요. 지금 찾아볼 시간이 없고, 웹 UI에서는 사전에 포맷된 텍스트를 직접 입력할 수조차 없거든요 (정말 싫어요!) 그래서 추측을 해보셔야 할 것 같습니다 :slight_smile:

preformatted text를 입력할 수 없다고 하는 거야?

strk는 와일드카드가 /.*@service\..*\.cn/였다고 말했다.

메타에 오신 것을 환영합니다, @lnicola! :sunflower:

@strk 님, Discourse에서 사전 포맷된 텍스트가 작동하는 방식을 잘 모르고 계실 수 있습니다. 여러 가지 방법이 있으며, 방법을 익히면 꽤 강력하게 활용할 수 있습니다. 참고: Posting code or preformatted text

@tobiaseigen 다만 작은 버그가 하나 있습니다. 해당 정규식을 텍스트로 복사해서 Discourse에 붙여넣으면 /.@service...cn/로 깨집니다 (역슬래시가 사라집니다).

여기서는 좀 주제에서 벗어난 이야기로 흐르는 것 같습니다! :rofl:

보시는 것은 버그가 아니라 의도된 마크다운 동작입니다. 텍스트를 두 개의 별표(*)로 감싸면 텍스트가 기울임으로 표시됩니다. @가 포함되어 있으므로 잘못된 @사용자 이름으로 표시됩니다. 정규식을 백틱으로 감싸면 미리 형식 지정된 텍스트로 표시됩니다:

사용자 이름이 포함된 기울임: /.@service...cn/
미리 형식 지정된 텍스트: /.*@service\..*\.cn/

내 환경에서는 작동하지 않습니다:

  1. /.*@service\..*\.cn/를 일반 텍스트 편집기에 붙여넣었다가 다시 복사합니다.
  2. Discourse에서 백틱()을 열고 붙여넣으면 /.@service*..*.cn/`가 됩니다.
  3. 백틱 안에 일반 텍스트로 붙여넣기(Ctrl-Shift-V)를 해도 여전히 /.@service...cn/가 됩니다.
  4. HTML로 복사하면(위 댓글 참조), 붙여넣기가 정상적으로 작동합니다.

네, 맞아요. 리치텍스트 편집기를 사용하면 말씀하신 현상을 재현할 수 있습니다. 먼저 마크다운 편집기로 전환해 보시면 정상적으로 동작합니다. 이 문제에 대해 어떤 조치가 가능한지는 잘 모르겠습니다.