메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
2013.07.07 17:55

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

조회 수 15134 추천 수 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 설치관련 MySQL 데이타베이스 (DB) euckr => utf8 로 변환하여 이전 작업 하기 햇빛소년 2014.03.10 4123
49 설치관련 PHP53Compatibility - PHP_CodeSniffer를 기반으로 한 PHP5.3 으로 버전업시 발생되는 문제점 체크 햇빛소년 2014.03.11 4444
48 에러해결 PHP COMPILE - error: wrong mysql library version or lib not found. 햇빛소년 2014.03.15 4404
47 에러해결 error: wrong mysql library version or lib not found. 햇빛소년 2014.03.16 16863
46 설치관련 openssl 소스설치 햇빛소년 2014.03.16 5161
45 에러해결 sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 햇빛소년 2014.03.22 5133
44 설치관련 HTML태그+++JavaScript +객체 +정리 [펌] file 햇빛소년 2014.04.14 42736
43 설치관련 html 문자 및 문단과련 기본테그 file 햇빛소년 2014.04.14 5341
42 설치관련 당신이 대통령이어선 안 되는 이유 -- 청와대에 올라 온 글 [펌] secret 햇빛소년 2014.04.28 1
41 에러해결 abrt 에러 메세지 /var/log/messages 햇빛소년 2014.05.16 8869
40 설치관련 html코딩 dtd선언 - <!DOCTYPE HTML PUBLIC 햇빛소년 2014.07.21 5003
39 설치관련 경영학과의 눈물… 예고된 취업 바늘구멍 햇빛소년 2014.10.12 4306
38 설치관련 처음 설치 해 보는 mariadb 소스설치 햇빛소년 2014.10.16 5932
37 에러해결 php 소스컴파일시 - /usr/bin/ld: cannot find -lltdl 에러 날 때. 햇빛소년 2014.10.17 4083
36 설치관련 centos 7 : iconv 컴파일 설치시 에러 해결 햇빛소년 2014.10.18 8532
35 에러해결 centos 7 : modsecurity 컴파일 설치시 iconv 찾지 못하는 에러... 햇빛소년 2014.10.18 4256
34 에러해결 php5:::configure: error: Cannot find libmysqlclient_r under /usr/local/mysql 햇빛소년 2014.10.24 7795
33 에러해결 httpd 서비스는 chkconfig 를 지원하지 않습니다. 햇빛소년 2014.10.25 4965
32 에러해결 CentOS 7 rc.local 자동실행 boot 햇빛소년 2014.10.26 24195
31 에러해결 CentOS-7 Network 설정에 관하여.... 햇빛소년 2014.10.27 7986
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10