amavis: 일부 Clam 데이터베이스를 사용할 때 [virus_name_to_spam_score]가 비어 있습니다.

amavis: 일부 Clam 데이터베이스를 사용할 때 [virus_name_to_spam_score]가 비어 있습니다.

virus_name_to_spam_score에 이상한 동작이 있습니다. 저는 2개의 커스텀 Clamav DB를 사용하고 있습니다. 다음은 SaneSecurity를 ​​사용할 때의 로그입니다. 모든 것이 정상임을 확인할 수 있습니다.

Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) run_av (ClamAV-clamd) result: /var/lib/amavis/tmp/amavis-20170612T105753-04428-qozS1fmk/parts/p004: Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL FOUND\n
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) run_av (ClamAV-clamd): /var/lib/amavis/tmp/amavis-20170612T105753-04428-qozS1fmk/parts INFECTED: Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) lookup_re("Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL") matches key "(?^:^Sanesecurity\\.TestSig_)", result=undef
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) lookup [virus_name_to_spam_score] => undef, "Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL" does not match
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) virus_scan: (Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL), detected by 1 scanners: ClamAV-clamd
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) lookup_re("Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL") matches key "(?^:.*)", result="1"
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) lookup [viruses_that_fake_sender] => true,  "Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL" matches, result="1", matching_key="(?^:.*)"
Jun 12 10:57:53 prd-mail-1 amavis[4428]: (04428-01) Virus Sanesecurity.TestSig_Type4_Hdr.2.UNOFFICIAL matches (?^:.*), sender addr ignored

이제 SecurityInfo.com을 사용하면 첫 번째 실행에서 바이러스가 감지되었지만 virus_name_to_spam_score가 비어 있는 것을 볼 수 있습니다. 내가 하고 싶은 것은 @virus_name_to_spam_score_maps를 사용하여 이 목록의 이메일을 스팸으로 설정하는 것입니다. 그러나 검사가 비어 있으므로 보내지 않은 메시지는 반환되고 항상 바이러스로 표시됩니다. 로그는 다음과 같습니다.

Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) prolong_timer run_av_3: timer 288, was 288, deadline in 479.8 s
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) run_av (ClamAV-clamd) result: /var/lib/amavis/tmp/amavis-20170612T092354-18890-TNOnpS50/parts/p013: SecuriteInfo.com.Spam-4703.UNOFFICIAL FOUND\n/var/lib/amavis/tmp/amavis-20170612T092354-18890-TNOnpS50/parts/p009: SecuriteInfo.com.Spam-4703.UNOFFICIAL FOUND\n
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) run_av (ClamAV-clamd): /var/lib/amavis/tmp/amavis-20170612T092354-18890-TNOnpS50/parts INFECTED:
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) lookup_re(""), no matches
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) lookup [virus_name_to_spam_score] => undef, "" does not match
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) virus_scan: (), detected by 1 scanners: ClamAV-clamd
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) lookup_re("") matches key "(?^:.*)", result="1"
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) lookup [viruses_that_fake_sender] => true,  "" matches, result="1", matching_key="(?^:.*)"
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) Virus  matches (?^:.*), sender addr ignored
Jun 12 09:25:32 prd-mail-1 amavis[18890]: (18890-02) lookup_sql_field(virus_lover) rec=0, "[email protected]" result: undef

무엇이 이런 일을 일으킬 수 있는지 아시나요?

답변1

나는 답을 찾았습니다. 제가 사용하고 있는 clamav 스캐너가 정확한 값을 반환하지 않는 것 같아서 바꿔야겠습니다.@av_scanners존재하다/etc/amavis/conf.d/50-user다음에:

@av_scanners = (
    #### http://www.clamav.net/
    ['ClamAV-clamd',
    \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
    qr/\bOK$/m, qr/\bFOUND$/m,
    qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
);

그리고 아마비스를 다시 시작하세요

관련 정보