메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
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 Install amavisd-new, SpamAssassin 햇빛소년 2011.04.09 62648
129 Iptables 간략 사용하기 햇빛소년 2011.05.12 65475
128 iptables 삭제명령 햇빛소년 2012.05.15 71453
127 에러해결 IPV4 주소 오류 식별되지 않은 네트워크 인식 문제 햇빛소년 2015.03.08 1057
126 설정 및 사용법 IPv6 비활성화 방법 햇빛소년 2023.04.01 327
125 에러해결 LGU+ 결제 Mserver 설치관련 에러 사항..... secret 햇빛소년 2013.07.18 0
124 에러해결 libmysqlclient.so.16()(64bit) is needed by... 낮은 버전을 요구 할 때.. 햇빛소년 2014.02.23 4119
123 Linux Disable Core Dumps file 햇빛소년 2011.05.02 46497
122 설치관련 Lua 설치 햇빛소년 2014.03.01 3694
121 설치관련 Luajit 다운로드 및 설치 햇빛소년 2013.01.19 22843
120 Mail Server 구축(postfix, dovecot, amavisd-new, spamassassin, clamav) file 햇빛소년 2011.05.02 96540
119 CentOS 7 mariadb 소스설치시 Curses library not found. Please install appropriate package, 햇빛소년 2016.02.16 2200
118 에러해결 mc(미드나잇 커맨드) 종료시 처음 PWD로 바뀌는 문제 해결 햇빛소년 2013.06.09 17544
117 에러해결 modcurity 에러메세지 secret 햇빛소년 2013.01.17 0
116 ModSecurity-Apache 설치, Lua, readline 햇빛소년 2013.01.07 51532
115 설정 및 사용법 mqueue 설정 및 사용법 햇빛소년 2016.05.26 1799
114 MYSQL / 필드내 특정 문자열 치환하는 mysql 명령문 햇빛소년 2011.03.26 50687
113 에러해결 mysql root 및 사용자 계정 password(비밀번호) 변경 및 에러 대처. 햇빛소년 2015.08.11 3239
112 설치관련 mysql 계정사용자 추가하기. secret 햇빛소년 2015.01.11 1216
111 설치관련 MySQL 데이타베이스 (DB) euckr => utf8 로 변환하여 이전 작업 하기 햇빛소년 2014.03.10 3845
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10