본문 바로가기
서버 및 보안

Greylisting (email)

by 다움위키 2023. 12. 24.

그레이리스팅(Greylisting)은 스팸에 대항하여 전자-우편 사용자를 보호하는 방법입니다. 그레이리스팅을 사용하는 메일 전송 에이전트 (MTA)는 인식되지 않는 발신자의 임의의 전자우편을 "일시적으로 거부"할 것입니다. 만약 메일이 합법적이면, 발송하는 서버가 지연 후에 다시 시도할 것이고, 만약 충분한 시간이 경과하면, 전자 메일이 수락될 것입니다.

Installation

데비안 저장소에서 패키지를 설치할 수 있습니다:

  • sudo apt install postgrey

Configuration

설정에서 지연시간을 변경할 수 있습니다.

  • sudo nano /etc/default/postgrey

POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=60"

이제 Postfix 설정을 변경합니다.

  • sudo vi /etc/postfix/main.cf
smtpd_recipient_restrictions = permit_sasl_authenticated,
           permit_mynetworks,
           reject_unauth_destination,
           check_policy_service inet:127.0.0.1:10023

서비스를 재시작합니다.

  • sudo systemctl restart postgrey postfix

How it works

그레이리스팅을 사용하는 서버는 단순 메일 전달 프로토콜 (SMTP)에 정의된 대로 4xx 응답 코드 ("나중에 다시 요청하세요")를 전송함으로써 알 수 없거나 의심스러운 출처의 이메일을 일시적으로 거부합니다. 완전한 기능을 갖춘 SMTP 구현은 그러한 경우에 메시지 전송을 재시도하기 위해 대기열을 유지해야 하고, 따라서 합법적인 메일이 지연될 수 있지만, 여전히 통과해야 합니다.

일시적인 거부는 SMTP 대화의 여러 단계에서 실행될 수 있으며, 구현에서 들어오는 메시지에 대한 데이터를 더 많거나 적게 저장하는 것을 허용합니다. 타협은 원본 메시지와 재시도를 보다 정확하게 일치시키기 위한 더 많은 작업과 대역폭입니다. 내용이 수신된 후 메시지를 거부하는 것은 서버에게 헤더의 선택과/또는 메시지 본문의 해시를 저장하는 것을 허용합니다.

좋은 발신자를 화이트리스트에 추가하는 것 외에도, 그레이리스터는 예외를 제공할 수 있습니다. 그레이리스팅은 일반적으로 일치하는 인증서를 사용하여 완전히 검증된 TLS 연결로 덮어 쓰일 수 있습니다. 대규모 발신자는 종종 이메일을 보낼 수 있는 기계의 저장소를 가지고 있기 때문에, 같은 최상위 24비트 (/24)를 가지는 IP 주소는 동등한 것으로 취급되거나, 경우에 따라 SPF 레코드가 보내는 저장소를 결정하기 위해 사용됩니다. 유사하게, 일부 전자 메일 시스템은 고유한 메시지-별 반환 경로, 예를 들어, 메일링 목록에 대해 가변 봉투 반환 경로 (VERP), 전달된 전자 메일에 대해 발신자 재작성 체계, 후방 산란 보호를 위한 반송 주소 태그 검증, 등을 사용합니다. 만약 보낸 사람 주소와 정확히 일치가 요구되면, 그러한 시스템에서 보내는 모든 각 전자 메일이 지연될 것입니다. 일부 그레이리스팅 시스템은 오직 발신자 도메인과 발신자 주소의 지역적-부분의 시작을 사용함으로써 VERP의 가변 부분을 제거함으로써 이러한 지연을 피하려고 시도합니다.

Why it works

그레이리스팅은 정규 메일 전송 에이전트에 대해 정상인 것처럼 메일 배달을 대기열에 넣고 다시 시도하지 않는 스팸 발송자에 의해 사용된 대량 이메일 도구에 효과적입니다.

배달을 지연하는 것은 역시 실시간 블랙홀 목록과 유사한 목록에 스팸 소스를 식별하고 플래그를 지정할 수 있는 시간도 제공됩니다. 따라서, 이들 후속 시도는 그레이리스팅 지연 이전보다 다른 메커니즘에 의해 스팸으로 탐지될 가능성이 더 높습니다.

Advantages

사용자 관점에서 주요 이점은 그레이리스팅이 추가 사용자 구성을 요구하지 않다는 것입니다. 만약 그레이리스팅을 활용하는 서버가 적절하게 구성되면, 최종 사용자는 보내는 이메일 서버가 이전 메시지와 동일한 화이트리스트 그룹에 속하는 것으로 식별되는 한 주어진 보낸 사람에서 첫 번째 메시지에 대한 지연만 알 수 있습니다. 만약 같은 발신인에서 보낸 메일이 계속해서 그레이리스트에 등록되면, 메일 시스템 관리자에게 지연된 메일에 대한 자세한 헤더를 문의하는 것이 좋습니다.

메일 관리자의 관점에서 볼 때, 이점은 두 가지입니다. 그레이리스팅은 지역적 화이트리스트를 가끔씩 수정하여 시작하고 실행하는 데 최소한의 구성만 필요합니다. 두 번째 이점은 일시적인 451 오류 (실제 오류 코드는 구현에 따라 다름)를 갖는 이메일을 거부하는 것이 시스템 리소스에서 매우 저렴하다는 것입니다. 대부분의 스팸 필터링 도구는 CPU와 메모리를 매우 많이 사용합니다. 스팸이 필터링 과정에 도달하기 전에 차단함으로써 훨씬 적은 수의 시스템 리소스가 사용됩니다.

Disadvantages

Delayed delivery issues

그레이리스팅의 가장 큰 단점은 인식할 수 없는 서버에 대해, 사용자가 기대하는 이메일의 거의 즉각적인 본성을 파괴한다는 것입니다. 인식할 수 없는 서버로부터의 메일은 전형적으로 약 15분 지연되고, 잘못 구성된 전송 시스템에 대해 최대 며칠까지 지연될 수 있습니다. 즉각적인 이메일 전달에 익숙해진 사용자에게 이것을 설명하면 그레이리스팅을 사용하는 메일 서버가 올바르게 작동하고 있다는 확신이 들지 않을 것입니다.

이것은 이것은 계정을 만들고 사용하기 전에 이메일 주소를 확인해야 하는 웹사이트에서 – 또는 그레이리스팅 메일 서버의 사용자가 비밀번호 재설정 확인 이메일을 사용하는 웹사이트에서 자격 증명 재설정을 시도할 때 특히 문제가 될 수 있습니다. 만약 사이트의 전송 MTA가 잘못 구성되어 있으면, 그레이리스팅으로 인해 초기 이메일 링크가 지연될 수 있습니다. 극단적인 경우에서, 그레이리스터에 의해 부과된 전달 지연은 이메일로 전달된 비밀번호 재설정 토큰의 만료 시간을 초과할 수 있습니다. 이들 경우에서, 재설정 토큰이 포함된 이메일이 만료되기 전에 사용할 수 있도록 웹사이트의 메일 서버를 화이트리스트에 추가하기 위해 수동 개입이 필요할 수 있습니다.

메일 서버가 그레이리스트에 있으면, 초기 지연과 재전송 사이의 기간은 가변적입니다; 그레이리스팅 서버는 지연의 제어 또는 가시성을 가지지 않습니다. SMTP는 재시도 간격이 최소 30분이어야 하고, 포기 시간은 최소 4–5일이 되어야 한다고 말합니다; 그러나 실제 값은 메일 서버 소프트웨어에 따라 크게 다릅니다.

최신 그레이리스팅 응용 프로그램 (예를 들어, 유닉스-계열 운영 시스템에 대해 Postgrey)은 보낸 사람의 스팸성 평판에 관계없이 일시적인 오류에서 복구할 수 있음을 증명하는 보낸 사람을 자동으로 화이트리스트에 추가합니다.

구현은 역시 일반적으로 일부 메일 서버를 수동으로 화이트리스트에 추가하는 기능도 포함됩니다.

그레이리스팅의 2007년 분석에서는 메일 지연으로 인해 완전히 바람직하지 않으며 그레이리스팅이 널리 퍼지면 정크메일러가 시스템을 조정하여 이를 우회할 수 있기 때문에 신뢰할 수 없다고 고려합니다. 그 결론은 그레이리스팅의 목적이 사용자에게 도달하는 스팸을 줄이는 것이 아니라 서버의 스팸 필터링 소프트웨어가 분석하는 데 필요한 스팸의 양을 줄이고 리소스를 집중적으로 사용하고 서버의 비용을 절약하는 것입니다. 결론: "[그레이리스팅]은 매우, 매우 성가십니다. 스팸보다 훨씬 더 성가십니다."

Other problems

현재 SMTP 사양 (RFC 5321)은 "SMTP 클라이언트가 해당 메시지 전달에 대한 책임을 유지합니다" (섹션 4.2.5)와 "즉시 전송될 수 없는 메일은 대기열에 넣어야 하고 보낸 사람이 주기적으로 재시도해야 합니다" (섹션 4.5.4.1)라고 명시되어 있습니다. 대부분의 MTA는 따라서 메시지를 대기열에 넣고 재시도하지만 소수의 MTA는 그렇지 않습니다. 이것들은 전형적으로 화이트리스트 또는 예외 목록에 의해 처리됩니다.

역시, 재시도가 원래 시도와 다른 IP 주소에서 오면, 정상적인 메일이 배달되지 않을 수 있습니다. 메일의 출처가 서버 팜이거나 다른 종류의 릴레이 서비스를 통해 나갈 때, 원본이 아닌 다른 서버가 다음 시도를 할 가능성이 높습니다. 네트워크 내결함성을 위해, 그것들의 IP는 완전히 관련 없는 주소 블록에 속할 수 있고, 이에 따라 주소의 가장 중요한 부분을 식별하는 간단한 기술을 무시합니다. IP 주소가 다를 것이기 때문에, 받는 사람의 서버는 일련의 시도가 관련되어 있음을 인식하지 못하고, 차례로 그것들의 각각을 거부합니다. 이것은 서버 수가 충분히 크면 메시지가 대기열에서 사라질 때까지 계속될 수 있습니다. 이 문제는 서버 팜과 같은 예외를 사전에 식별하여 부분적으로 우회할 수 있습니다. 마찬가지로, 멀티홈 호스트와 DHCP를 사용하는 호스트에 대해 예외를 구성해야 합니다. 극단적인 경우에서, 발신자는 각 아웃바운드 SMTP 연결에 대해 (합법적으로) 다른 IPv6 주소를 사용할 수 있습니다.

그레이리스팅의 대상이 되는 발신자 서버는 수신 도메인에 둘 이상의 MX 레코드가 있으면, 다른 수신 메일 서버로 배달을 다시 시도할 수도 있습니다. 모든 그러한 호스트가 같은 그레이리스팅 정책을 구현하지 않고 같은 데이터베이스를 공유하면, 이것은 문제를 야기할 수 있습니다.

External links