메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
2013.07.07 17:55

The ClamAV Plugin --> clamav.cf , clamav.pm

조회 수 15139 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

국산 통나무 수공예 남원제기, 남원목기

자료가 도움이 되셨다면
혼수용품제수용품 필요시
남원제기 공식 홈페이지 http://남원제기.kr
남원목기 공식 홈페이지 http://otchil.kr
에서 구매 해 주세요
정성껏 모시겠습니다.
 

/etc/mail/spamassassin/넣어주면 된다.

The ClamAV Plugin

This plugin submits the entire email to a locally running Clam AntiVirus server for virus detection. If a virus is found, it returns a positive return code to indicate spam and sets the header "X-Spam-Virus: Yes ($virusname)".

Code

clamav.cf:

loadplugin ClamAV clamav.pm
full CLAMAV eval:check_clamav()
describe CLAMAV Clam AntiVirus detected a virus
score CLAMAV 10
add_header all Virus _CLAMAVRESULT_

clamav.pm:

package ClamAV;
use strict;

# version 2.0, 2010-01-07
#   - use SA public interface set_tag() and add_header, instead of
#     pushing a header field directly into $conf->{headers_spam}

# our $CLAMD_SOCK = 3310;               # for TCP-based usage
our $CLAMD_SOCK = "/var/run/clamd.basic/clamd.sock";   # change me

use Mail::SpamAssassin;
use Mail::SpamAssassin::Plugin;
use Mail::SpamAssassin::Logger;
use File::Scan::ClamAV;
our @ISA = qw(Mail::SpamAssassin::Plugin);

sub new {
  my ($class, $mailsa) = @_;
  $class = ref($class) || $class;
  my $self = $class->SUPER::new($mailsa);
  bless($self, $class);
  $self->register_eval_rule("check_clamav");
  return $self;
}

sub check_clamav {
  my($self, $pms, $fulltext) = @_;
  dbg("ClamAV: invoking File::Scan::ClamAV, port/socket: %s", $CLAMD_SOCK);
  my $clamav = new File::Scan::ClamAV(port => $CLAMD_SOCK);
  my($code, $virus) = $clamav->streamscan(${$fulltext});
  my $isspam = 0;
  my $header = "";
  if (!$code) {
    my $errstr = $clamav->errstr();
    $header = "Error ($errstr)";
  } elsif ($code eq 'OK') {
    $header = "No";
  } elsif ($code eq 'FOUND') {
    $header = "Yes ($virus)";
    $isspam = 1;
    # include the virus name in SpamAssassin's report
    $pms->test_log($virus);
  } else {
    $header = "Error (Unknown return code from ClamAV: $code)";
  }
  dbg("ClamAV: result - $header");
  $pms->set_tag('CLAMAVRESULT', $header);
  # add a metadatum so that rules can match against the result too
  $pms->{msg}->put_metadata('X-Spam-Virus',$header);
  return $isspam;
}

1;

How To Use It

First of all, you need to install ClamAV and ensure that scanning a mail with clamscan works.

Second, you need to install the File::Scan::ClamAV perl module.

Finally, save the two files above into the /etc/mail/spamassassin/ directory. You can adjust the default score of 10 in clamav.cf if you like. You should edit the clamav.pm file and change the setting for '$CLAMD_SOCK' to match where your ClamAV installation has put its named pipe.

Restart the spamd daemon if you're using that, and you should be all set.

If you'd like to sort virus emails to a separate folder, create a rule looking for the "X-Spam-Virus: Yes" header.

To get a different score based on virus type, see ClamAVMultipleScores.

   

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
50 에러해결 error: wrong mysql library version or lib not found. 햇빛소년 2014.03.16 16865
49 에러해결 error on line at column Input is not proper UTF-8, indicate encoding ! 햇빛소년 2013.12.26 4932
48 에러해결 eaccelerator.c:66:23: error: php_logos.h: 그런 파일이나 디렉터리가 없습니다. 햇빛소년 2014.02.28 9898
47 에러해결 dovecot 설치 후 squirrelmail 가동하면 /.imap/INBOX, group=12(mail)) failed: Operation not permitted 햇빛소년 2013.06.30 19554
46 설치관련 dnssec-keygen 사용법 및 구축과 검증 햇빛소년 2013.06.07 24309
45 DCC로 안티스팸 기능 확장하기 햇빛소년 2011.03.18 51491
44 DCC관련 명령어 모음 햇빛소년 2012.06.02 44090
43 설치관련 DCC+razor2+pyzor how to ---[ spamassassin -D <test 2>debug ] file 햇빛소년 2012.05.31 31889
42 crontab 설정 햇빛소년 2011.05.12 45259
41 cpanm 햇빛소년 2011.04.04 47808
40 cpan 으로 설치힌 perl 모듈의 검색과 삭제... 햇빛소년 2012.05.10 30218
39 convert: error while loading shared libraries: libMagick.so.10: cannot open file 햇빛소년 2012.02.20 30055
38 에러해결 configure: error: Unable to find libgd.(a|so) >= 2.1.0 anywhere under 햇빛소년 2014.03.02 4832
37 에러해결 configure: error: snmp.h not found. Check your SNMP installation. 햇빛소년 2015.12.01 1184
36 설치관련 clamav.cf --> Clamav Multiple Score 햇빛소년 2013.07.07 18420
35 ClamAV 0.97.4 버전으로 새로 컴파일 하여 업데이트 한후 에러발생 해결... 햇빛소년 2012.04.29 28871
34 chmod 파일 퍼미션의 다양한 조건들.... 햇빛소년 2012.05.16 28699
33 chattr, lsattr 햇빛소년 2011.10.05 41783
32 에러해결 CentOS7 firewall 사용시 spamd: could not create INET socket on 127.0.0.1:783: 햇빛소년 2014.11.04 4051
31 에러해결 CentOS-7 Network 설정에 관하여.... 햇빛소년 2014.10.27 7992
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10