特定の送信者/サーバーでのみスキャンするようにamavisd-newを構成するにはどうすればよいですか?


10

特定のクライアント(IP、CIDR、またはホスト名)または送信者の電子メールドメインのスパムのみをスキャンするようにamavisd-newを構成する方法を教えてください。

私は受信者のメールアドレスでそれを行うことが可能であることを知っていますが、送信者のメールアドレスに対してそれを行う方法についてはできません。ポリシーバンクを使用して、受信者のIPアドレスでそれを行うことも可能です。しかし、私のアプローチは、受信者から独立し、送信者にのみ中継することです。

私が達成したいのは、Yahoo、Google、Hotmail、その他の大きな送信者からのメールのみをスキャンすることです。したがって、監視すべきでない送信者よりも監視すべき送信者を設定する方が簡単です。

MTA側で達成する方が簡単であることはわかっていましたが、MTA側で既に解決策を講じているため、これは問題の一部ではありません。amavisd-newでやりたいです。また、送信者をホワイトリストに登録する方法を知ることは役に立ちません。これは、メールがすべてのスキャンを通過することになりますが、否定的なスコアが高くなることを意味します。大手企業から送信されない限り、メールはまったくスキャンされるべきではありません。

それでは、amavisd-newのどのパラメーターが、特定の送信者のスキャンを有効にし、これらのパラメーターのみを有効にするのに適切なパラメーターですか?


これらの例を見ましたか?もしそうなら、彼らの何が問題になっていますか?
the-wabbit

@ syneticon-dj私はそれらを知っています。これは私がすでに持っている解決策です(上記の4番目の段落)。しかし、それらはキューフィルターの後です。キューフィルターの前として実行するためにamavisが必要ですが、これは機能しません。そして、これは特定の送信者をバイパスすることです。特定の送信者のみをスキャンし、残りはバイパスするようにしたい。
mailq

キューの前に動作しない理由がわかりません。また、ロジックを逆にして特定の送信者のみをスキャンし、それ以外はスキャンしないようにすることは、ポリシーバンクの構成設定を逆にするだけです。デフォルトの構成としてbypass _ * _ checks_maps変数を設定し、yahoo.comポリシーバンクのマップが空であることを確認してください。
the-wabbit 2012年

SpamAssassinを呼び出さないためにホワイトリストが機能しないのはなぜですか?amavisd.conf-sampleから:「メッセージのすべての受信者が送信者をホワイトリストまたはブラックリストに登録する場合、スパムスキャン(SpamAssassinを呼び出す)がバイパスされ、時間を節約できます。」@whitelist_sender_mapsを使用すると、「すべての」受信者が影響を受けますか?
sebokopter 2012

回答:


1

Amavisdホワイトリスト、特定のドメインを除くすべて

あなたが必要とするものは、正規表現の見回り(ここ)を持つwhitelist_sender_map(ここです

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行以上で破ると、すべてがホワイトリストに登録されます。

(可能な場合、このセクションを赤で表示します)

簡単に言えば、ホワイトリストは、一度に1行/ルールの順次チェックです。

次の間違った例を見てみましょう

#これはコピーしないでください
@whitelist_sender_maps =(new_RE(
    qr'@(?!(gmail\.com$|hotmail\.com$))'i、
    qr'@(?!(aol\.com$|msn\.com$))'i
));
#これはコピーしないでください
  1. 1行目がTRUEを返し、チェックが停止するため、msn.comからのすべてが通過します。
  2. 1行目が失敗した後、amavisdは2行目に移動してTRUEを返すため、gamil.comからのすべてが通過します。
  3. リストにないドメインはどうですか?彼らは通過します。これがルールの意図です!

すべての送信者をホワイトリストに登録することになります!!

Perlテストプログラム

#!/ 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.