메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
2013.07.07 17:55

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

조회 수 15142 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
110 mysql 문자열치환 햇빛소년 2012.10.11 23513
109 설치관련 mysql 컴파일 설치 후 해야 할 일... secret 햇빛소년 2014.02.23 4
108 MySQL에러[Warning] IP address '211.154.154.171' could not be resolved: no reverse address mapping. 햇빛소년 2011.05.09 51605
107 에러해결 named error -> dumping master file: tmp-6bFrQDtE5l: open: permission denied 햇빛소년 2015.05.06 1373
106 에러해결 named 에러 (/var/log/massages) 가 있을 때 해결 방법 햇빛소년 2013.06.12 34255
105 open(/var/dcc/map): Permission denied --- maillog에러 메세지 드디어 해결!! 햇빛소년 2012.06.09 32053
104 open(/var/dcc/map): Permission denied --- maillog에러 메세지 드디어 해결!! --제2편 햇빛소년 2012.06.09 31232
103 설치관련 openssl 소스설치 햇빛소년 2014.03.16 5170
102 passwd, groups, gpasswd 알아두면 좋을듯한 생소한 명령사용법. 햇빛소년 2012.06.19 27660
101 에러해결 pcre최신버전 소스설치 후 modsecurity-apache 컴파일시 에러 햇빛소년 2013.01.19 77263
100 에러해결 PEAR package PHP_Archive not installed: 햇빛소년 2014.03.07 6875
99 설치관련 pear.phpunit.de/PHPUnit 패키지를 설치 햇빛소년 2014.03.07 3933
98 설치관련 PHP - PEAR 확장 라이브러리 설치 햇빛소년 2014.03.07 4079
97 에러해결 PHP 7.2.1 configuration error 조치. 햇빛소년 2018.01.22 3356
96 설치관련 PHP CodeSniffer 코딩검사 secret 햇빛소년 2013.01.14 0
95 에러해결 PHP COMPILE - error: wrong mysql library version or lib not found. 햇빛소년 2014.03.15 4409
94 에러해결 php 소스컴파일시 - /usr/bin/ld: cannot find -lltdl 에러 날 때. 햇빛소년 2014.10.17 4094
93 php-5.4.10 make시 gd관련 에러... 햇빛소년 2013.01.06 20668
92 에러해결 php-5.4.16 컴파일시 checking for db4 major version... Header contains different version 에러 햇빛소년 2013.06.18 19574
91 설치관련 php-559컴파일시 에러---configure: error: utf8_mime2text() has new signature,.... 햇빛소년 2014.02.23 4193
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10