
나는 spamassassin 설치(postfix, dovecot, amavis, clamav, spamassassin on debian)가 작동하는 메일 서버를 가지고 있습니다.
모든 것이 잘 작동하고 있습니다. Spamassassin이 스팸을 필터링하고 있는데 헤더가 표시됩니다.
X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: YES
X-Spam-Score: 8.025
X-Spam-Level: ********
X-Spam-Status: Yes, score=8.025 tagged_above=-9999 required=3
tests=[BAYES_50=0.8, DKIM_INVALID=0.1, DKIM_SIGNED=0.1,
HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001,
RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922,
RCVD_IN_BL_SPAMCOP_NET=1.347, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
URIBL_ABUSE_SURBL=1.25, URIBL_BLOCKED=0.001]
autolearn=no autolearn_force=no
나는 새로운 스팸과 햄이 들어오면 Spamassassin(현재는 수동으로)을 훈련시키고 있습니다:
Tue Dec 15 22:22:14 2020
Spam training for [email protected]
Learned tokens from 12 message(s) (159 message(s) examined)
Ham training for [email protected]
Learned tokens from 4 message(s) (49 message(s) examined)
Deleting spam for [email protected] older than 30 days
Syncing the SpamAssassin journal
bayes: synced databases from journal in 0 seconds: 2711 unique entries (2711 total entries)
Statistics for this run:
0.000 0 3 0 non-token data: bayes db version
0.000 0 5288 0 non-token data: nspam
0.000 0 855 0 non-token data: nham
0.000 0 124148 0 non-token data: ntokens
0.000 0 1602145027 0 non-token data: oldest atime
0.000 0 1608066788 0 non-token data: newest atime
0.000 0 1608067345 0 non-token data: last journal sync atime
0.000 0 1607672985 0 non-token data: last expiry atime
0.000 0 5529600 0 non-token data: last expire atime delta
0.000 0 50552 0 non-token data: last expire reduction count
Run finished Tue Dec 15 22:22:27 2020
모든 것이 작동하는 것 같습니다. 그러나 최근에는 항상 똑같아 보이는 일부 스팸이 여전히 받은 편지함으로 들어오는 것을 발견했습니다. 이는 동일한 유형의 스팸이며, 몇 주간의 훈련 후에도 여전히 통과됩니다. 베이지안 점수는 변하지 않습니다.
X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: NO
X-Spam-Score: 1.852
X-Spam-Level: *
X-Spam-Status: No, score=1.852 tagged_above=-9999 required=3
tests=[BAYES_00=-1.9, DIGEST_MULTIPLE=0.293, DKIMWL_WL_MED=-0.001,
DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249,
HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, PYZOR_CHECK=1.392,
RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
autolearn=no autolearn_force=no
문제를 찾을 수 없는 것 같고 지금까지 확인한 모든 것이 작동하는 것 같습니다. 최소 기본값인 스팸/햄 200개는 분명히 통과되었습니다. 그러니 그것은 문제가 되지 않습니다. 저는 다음 명령으로 Spamassassin을 훈련하고 있습니다:
/usr/bin/sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --sync >> /var/log/sa-learn.log 2>&1
무엇이 문제일까요? 더 이상 어디를 봐야할지 모르겠습니다.
도움을 주시면 감사하겠습니다.
답변1
결과스팸 암살자Bayes 훈련은 일반적으로 일부 파일로 구성된 데이터베이스에 저장됩니다.실행중인 사용자의 홈 디렉토리에 저장됩니다.. 다른 사용자로 호출하면 동일한 데이터 세트에 액세스/업데이트되지 않습니다.
(이전 댓글의 확장 버전)
권한 분리를 위해,스팸 암살자debian-spamd
일반적으로 또는 같은 별도의 사용자로 실행되므로 amavis
자동 학습 중에 해당 사용자의 데이터베이스가 업데이트됩니다. 데이터베이스를 수동으로 업데이트하려면 올바른 사용자를 지정해야 할 수도 있습니다. 그렇지 않으면 훈련 데이터를 관련 없는 다른 데이터베이스에 저장하게 됩니다.
어떻게 말하나요?훈련 데이터 파일의 인스턴스가 두 개(백업 제외)인 경우 다음을 호출했습니다.스팸 암살자두 명의 다른 사용자(메일 서버에서 한 명, 셸에서 한 명):
# find / -name bayes_toks
/var/lib/amavis/.spamassassin/bayes_toks
/root/.spamassassin/bayes_toks
데이터베이스가 충분히 시드되자마자 두 파일 모두 최근 수정 타임스탬프를 가질 수 있습니다.스팸 암살자충분히 식별 가능한 메일을 선택하세요.자동열차이는 수동 조치 없이 수신된 메일에서 토큰을 학습하는 것입니다(이 동작은 구성할 수 있으며 일반적으로 활성화하기를 원합니다).
어떻게 고치는 지?동일한 메일을 올바른 데이터베이스에 공급 - sa-learn
메일 서버에서 호출하는 동안 사용하는 사용자/homedir로 호출하여(확인하다이 경우 폴더 이름이 사용자 이름과 일치하지 않을 수 있습니다!):
sudo -H -u amavis sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --sync >> /var/log/sa-learn.log 2>&1
나는 추천하지 않는다병합내부 파일 형식이 약간 혼란스러울 수 있기 때문에 의도하지 않게 데이터세트를 분할한 경우(비록~할 수 있다다음을 사용하여 덤프됩니다 --backup
.파괴적으로)을 사용하여 덮어쓰는 --restore
반면, 동일한 스팸 데이터에 대한 재교육은 훨씬 간단하며 sa-learn
부정적인 영향 없이 동일한 메일을 계속해서 공급하도록 설계되었습니다.