메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
2013.07.07 17:55

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

조회 수 14881 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
90 에러해결 BIND 9: "Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones" 햇빛소년 2013.06.13 19741
89 Sendmail 스패머 IP 차단 쉘스크립트 v2 햇빛소년 2012.12.06 20108
88 php-5.4.10 make시 gd관련 에러... 햇빛소년 2013.01.06 20515
87 에러해결 squirrelmail에서 메일 삭제시 Error: file_dotlock_create... 에러에 대하여. 햇빛소년 2013.06.30 20665
86 센드메일(sendmail) RBL 이용하여 해외, 국내 스팸 차단하는 법. 햇빛소년 2012.12.06 21173
85 설치관련 Luajit 다운로드 및 설치 햇빛소년 2013.01.19 22842
84 mysql 문자열치환 햇빛소년 2012.10.11 23347
83 에러해결 CentOS 7 rc.local 자동실행 boot 햇빛소년 2014.10.26 23880
82 설치관련 dnssec-keygen 사용법 및 구축과 검증 햇빛소년 2013.06.07 24036
81 에러해결 ZendGuardLoader 설치 에러 햇빛소년 2013.01.10 24647
80 에러해결 특정 디렉토리에 있는 파일 또는 디렉토리의 퍼미션 변경 햇빛소년 2013.01.11 24938
79 설치관련 .htaccess 이용 스팸 IP 차단 햇빛소년 2013.01.17 25200
78 에러해결 Starting Dovecot Imap: Error: service(pop3-login): listen(*, 110) failed: Address already in use 햇빛소년 2013.06.29 25214
77 대용량 첨부파일시 100%후 첨부되지 않고 사라지는 현상 해결법 햇빛소년 2012.10.02 25383
76 에러해결 ZendGuardLoader.so: undefined symbol: compiler_globals 햇빛소년 2013.01.19 25863
75 커널 컴파일 후 모듈 추가하기... 햇빛소년 2012.07.06 26524
74 php.ini 환경설정에서 원격지의 파일을 열지 못하도록 되어 있습니다. -- 에러메세지 해결 햇빛소년 2012.10.03 26647
73 procmail: Lock failure on "spamassassin.lock" 햇빛소년 2012.06.16 27018
72 passwd, groups, gpasswd 알아두면 좋을듯한 생소한 명령사용법. 햇빛소년 2012.06.19 27485
71 rpm 파일 삭제시 에러 - specifies multiple packages 해결방법 햇빛소년 2012.06.20 27734
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10