특정 발신자 / 서버에서만 검색하도록 amavisd-new를 구성하는 방법은 무엇입니까?


10

특정 클라이언트 (IP, CIDR 또는 호스트 이름) 또는 발신자의 전자 메일 도메인에서 스팸 만 검색하도록 amavisd-new를 구성하는 방법을 알고 싶습니다.

받는 사람의 메일 주소로는 할 수 있지만 보낸 사람의 메일 주소로 보내는 방법은 알 수 없습니다. 정책 은행과 함께 수신자의 IP 주소에서이를 수행 할 수도 있습니다. 그러나 내 접근 방식은 수신자와 독립적이며 발신자에게만 릴레이되어야합니다.

내가 달성하고자하는 것은 Yahoo, Google, Hotmail 및 기타 큰 발신자에게서 온 메일 만 스캔하는 것입니다. 따라서 어떤 발신자를 관찰하지 않아야하는 발신자보다 구성하는 것이 더 쉽습니다.

MTA 측에서 달성하기가 더 쉽다는 것을 알고 있었지만 이미 MTA 측에서 해결책을 찾기 때문에 문제의 일부가 아닙니다. 나는 amavisd-new에하고 싶다. 보낸 사람을 화이트리스트에 올리는 방법을 아는 것은 도움이되지 않습니다. 이는 여전히 메일이 모든 검색을 통과하지만 높은 음의 점수를 얻는다는 것을 의미하기 때문입니다. 큰 플레이어가 보내지 않는 한 메일을 전혀 스캔하지 않아야합니다.

그렇다면 amavisd-new의 어떤 매개 변수가 특정 발신자에 대해서만 검색 할 수있는 올바른 매개 변수입니까?


이 예제들을 보셨습니까 ? 그렇다면 무엇이 잘못 되었습니까?
the-wabbit

@ syneticon-dj 나는 그들을 알고있다. 이것이 내가 이미 가지고있는 해결책입니다 (위의 네 번째 단락). 그러나 그들은 대기열 필터 이후이며 이전 대기열 필터로 실행하려면 amavis가 필요하지만 작동하지 않습니다. 그리고 이것은 특정 발신자를 우회하는 것입니다. 특정 발신자 만 스캔하고 나머지는 우회하는 것이 반대입니다.
mailq

큐잉 전에 왜 작동하지 않는지 알 수 없습니다. 특정 발신자 만 검색하고 다른 항목은 검색하지 않는 논리를 바꾸는 것은 정책 은행의 구성 설정을 되 돌리는 것입니다. bypass _ * _ checks_maps 변수를 기본 구성으로 설정하고 yahoo.com 정책 은행에 대해 맵이 비어 있는지 확인하십시오.
the-wabbit

SpamAssassin을 호출하지 않은 경우 화이트리스트가 작동하지 않는 이유는 무엇입니까? amavisd.conf-sample에서 : "메시지의 모든 수신자가 발신자를 화이트리스트 또는 블랙리스트에 올리면 스팸 검색 (SpamAssassin 호출)을 우회하여 시간을 절약 할 수 있습니다." @whitelist_sender_maps를 사용할 때 "모든"수신자가 영향을 받아야합니까?
sebokopter

답변:


1

특정 도메인을 제외한 모든 목록을 Amavisd 허용

당신이 필요로하는 것은 regex lookaround ( here ) 가있는 whitelist_sender_map ( here )입니다

Domain.X를 제외한 모든 허용

@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i
));

X의 도메인 및 하위 도메인을 제외한 모든 도메인을 허용

@whitelist_sender_maps = (new_RE (
    qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))'i
));

수정

예를 들어 msn.com을 화이트리스트 예외에 추가

@whitelist_sender_maps = (new_RE (
    qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $ | msn \ .com $))'i
));

여러 가지 규칙에 규칙을 위반하지 마십시오. 귀하가 원하는 것은 아닙니다.

2 줄 이상으로 규칙을 어기면 화이트리스트가 모두 !!

(가능한 경우이 섹션을 빨간색으로 표시합니다)

간단히 말해서 화이트리스트는 한 번에 한 줄 / 규칙의 순차적 점검입니다.

다음 잘못된 예를 보자

# 복사하지 마십시오
@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$))'i,
    qr'@(?!(aol\.com$|msn\.com$))'i
));
# 복사하지 마십시오
  1. 첫 번째 줄은 TRUE를 반환 하고 검사가 중지 되므로 msn.com의 모든 항목이 전달 됩니다.
  2. gamil.com의 모든 것은 통과합니다. 첫 번째 라인이 실패한 후 amavisd가 두 번째 라인으로 이동하면 TRUE 가 반환 됩니다.
  3. 목록에없는 도메인은 어떻습니까? 그들은 통과 할 것이다. 이것이 규칙의 의도입니다!

모든 발신자를 화이트리스트에 올립니다!

펄 테스트 프로그램

#! / usr / bin / perl

엄격한 사용;

# 도메인 및 하위 도메인 거부
#my $ REGinfo = '== 도메인 거부 및 하위 도메인 =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))'i;

# 정확한 도메인 만
내 $ REGinfo = '== 정확한 도메인 만 ==';
내 $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;

인쇄 $ REGinfo. "\ n";
인쇄 '$ REG ='. $ REG. "\ n \ n";

내 @strTest = (
    'test@hotmail.com',
    'test@gmail.com',
    'test@aol.com',
    'test@msn.com',
    'test@yahoo.com',
    'test@yahoo.aol.com',
    'aol.com@somethingelse.com'
);

내 $ i (0 .. $ # strTest) {
    if ($ strTest [$ i] = ~ $ REG) {
        print ( "패스 $ strTest [$ i] \ n");
    }
    다른 {
        print ( "실패 $ strTest [$ i] \ n");
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.