메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
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 cdcc 문서 햇빛소년 2012.05.30 32919
49 - FQDN - 올바른 Hostname 설정하기. 햇빛소년 2012.06.02 33044
48 SELinux/audit2allow 햇빛소년 2012.06.11 33397
47 에러해결 named 에러 (/var/log/massages) 가 있을 때 해결 방법 햇빛소년 2013.06.12 34243
46 SELinux Lockdown Part One: SELinux Users 햇빛소년 2012.06.07 35255
45 보안 관련하여 한번쯤 읽어 볼 거리.... 햇빛소년 2012.07.12 35344
44 selinux 관련 명령모음. 햇빛소년 2012.06.07 36461
43 공기정화 식물을 키워라! 햇빛소년 2011.05.19 36956
42 리눅스의 데몬 설명 햇빛소년 2012.06.15 38221
41 윈도우에서 내 컴퓨터 ip주소 확인하기 햇빛소년 2011.06.20 38261
40 segmentation fault가 발생할 때 디버깅 방법 햇빛소년 2012.01.05 38398
39 유동아이피를 고정아이피로 만들기 햇빛소년 2011.06.20 38530
38 참고로 보기 위한 좋은 글 -- q메일 및 스팸서버 구축에 관한 글 [펌] 햇빛소년 2012.06.19 39666
37 내년부터 시험없이 국가기술자격 딴다 햇빛소년 2011.05.19 40705
36 chattr, lsattr 햇빛소년 2011.10.05 41781
35 sendmail + dovecot 설정 file 햇빛소년 2011.05.11 42592
34 설치관련 HTML태그+++JavaScript +객체 +정리 [펌] file 햇빛소년 2014.04.14 42736
33 DCC관련 명령어 모음 햇빛소년 2012.06.02 44083
32 서버설치후 해야할 일 file 햇빛소년 2011.05.12 44276
31 요긴하게 사용되는 리눅스 명령 모음. 햇빛소년 2011.04.07 44307
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10