기술 · 출처 기반 답변
그레이리스팅(Greylisting)이란? 스팸 방지 방식
그레이리스팅은 수신 메일 서버가 알 수 없는 발신자의 이메일을 4xx 일시적 실패 코드로 잠시 거부하는 스팸 방지 기법입니다. 서버는 정상적인 메일 서버라면 일정 시간이 지난 뒤 전송을 재시도하지만, 많은 스팸 봇은 재시도하지 않는다는 점을 이용해 저품질 트래픽을 효과적으로 걸러냅니다.
처리 과정
서버가 알 수 없는 IP 또는 발신자로부터 메시지를 받으면 451 또는 450 SMTP 응답 코드를 반환합니다. 이는 발신 서버에 전송이 일시적으로 실패했음을 알립니다. 규격을 준수하는 SMTP 서버는 메시지를 큐에 넣고 보통 5분에서 30분 사이의 특정 간격이 지난 뒤 다시 보내려 시도합니다. 두 번째 시도가 도착하면 수신 서버는 메시지를 수락하고 일정 기간 발신자를 허용 목록에 추가합니다.
발신자에게 중요한 이유
정상적인 발신자에게 그레이리스팅은 새 수신자에게 처음 보내는 메일에서 눈에 띄는 지연을 일으킵니다. 발송 인프라에 견고한 재시도 큐가 필요합니다. 발신자가 잘못 설정된 릴레이나 일시적 실패를 처리하지 못하는 스크립트를 사용하면 이메일이 목적지에 끝내 도달하지 못합니다. SendHQ 무료 도구로 DNS 레코드를 올바르게 관리하면 이러한 검사 과정에서 발신자가 정상으로 인식되는 데 도움이 됩니다.
운영상 고려 사항
그레이리스팅은 재시도가 가능한 전문 메일 전송 에이전트를 사용하는 정교한 스팸 운영에는 효과가 떨어집니다. 또한 비밀번호 재설정이나 2단계 인증 코드처럼 시간에 민감한 트랜잭션 이메일에도 방해가 될 수 있으며, 15분 지연이면 내용이 쓸모없어집니다. 관리자는 스팸 감소 효과와 최종 사용자에게 생기는 지연 사이에서 균형을 잡아야 합니다.
구체적인 예시
example.com의 발신자가 user@target.com으로 메일을 보냅니다. 대상 서버는 example.com을 처음 보고 451 Requested action aborted: local error in processing을 반환합니다. example.com 서버는 메일을 큐에 넣고 10분 뒤 재시도합니다. 대상 서버는 재시도를 인식해 메일을 수락하고 이후 30일 동안 example.com을 허용 목록에 추가합니다.
블랙리스트와의 비교
알려진 악성 행위를 근거로 특정 IP나 도메인을 영구 차단하는 블랙리스트와 달리, 그레이리스팅은 챌린지-응답 방식의 시스템입니다. 악성 발신자의 데이터베이스에 의존하지 않고, RFC를 준수하는 표준 메일 서버와 단순한 스팸 스크립트 사이의 행동 차이에 의존합니다.
팀에서 자주 묻는 질문
그레이리스팅은 이메일을 영구적으로 차단하나요?
아니요. 일시적 실패 코드를 반환할 뿐입니다. 정상적인 서버는 재시도해 결국 메시지를 전달합니다.
그레이리스팅은 이메일을 얼마나 지연시키나요?
수신 서버 설정과 발신자의 재시도 간격에 따라 보통 5분에서 몇 시간까지 지연됩니다.
그레이리스팅을 우회할 수 있나요?
네. 알려진 발신자 관계를 맺거나, 수신 서버가 발신 IP 주소를 허용 목록에 추가하면 됩니다.
1차 출처
- RFC 5321: 단순 메일 전송 프로토콜(SMTP) — RFC Editor
- M3AAWG 모범 사례(Best Common Practices) — M3AAWG