메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
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
번호 분류 제목 글쓴이 날짜 조회 수
130 Sendmail 스패머 IP 차단 쉘스크립트 v2 햇빛소년 2012.12.06 20107
129 sendmail + dovecot 설정 file 햇빛소년 2011.05.11 42412
128 SELinux/audit2allow 햇빛소년 2012.06.11 33239
127 에러해결 selinux 퍼미션 에러 audit2allow 로 쉽게 .... 햇빛소년 2014.02.28 3469
126 selinux 관련 명령모음. 햇빛소년 2012.06.07 36271
125 SELinux Lockdown Part One: SELinux Users 햇빛소년 2012.06.07 35101
124 에러해결 selinux troubleshooting 해결 명령 햇빛소년 2016.02.28 797
123 segmentation fault가 발생할 때 디버깅 방법 햇빛소년 2012.01.05 38171
122 에러해결 rsync 백업 설정이 확실하게 되었는데도 백업이 되지 않는 다면..... 햇빛소년 2013.06.30 15929
121 에러해결 rsync 를 이용한 원격 서버 백업하기. 햇빛소년 2013.07.01 15571
120 rpm 파일 삭제시 에러 - specifies multiple packages 해결방법 햇빛소년 2012.06.20 27734
119 설정 및 사용법 route 및 iptables를 이용한 리눅스 특정 IP 접속 차단하는 법 햇빛소년 2016.06.14 2480
118 rndc: connection to remote host closed 네임서버오류 햇빛소년 2011.04.10 55309
117 설치관련 rndc-confgen — rndc key generation tool 햇빛소년 2013.05.31 17372
116 CentOS 7 RHEL 7 / CentOS 7 : Disable Firewalld and use iptables 햇빛소년 2016.02.15 1082
115 설치관련 rewrite 도메인 포워딩 햇빛소년 2013.06.22 15155
114 설치관련 redis 2.8.19 설치하기 햇빛소년 2015.02.27 1584
113 Red Hat / CentOS IPv6 Network Configuration 햇빛소년 2012.05.30 28092
112 pyzor: check failed: internal error, python traceback seen in response 드디어 해결 햇빛소년 2012.06.20 28386
111 procmail: Lock failure on "spamassassin.lock" 햇빛소년 2012.06.16 27017
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10