메뉴 건너뛰기

리눅스 관련 모음

본문시작

설치관련
2013.07.07 17:55

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

조회 수 15139 추천 수 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 에러해결 CentOS7 firewall 사용시 spamd: could not create INET socket on 127.0.0.1:783: 햇빛소년 2014.11.04 4051
49 에러해결 [win8] 호스트된 네트워크를 시작할 수 없습니다. 햇빛소년 2014.10.30 3995
48 설치관련 Lua 설치 햇빛소년 2014.03.01 3951
47 설치관련 pear.phpunit.de/PHPUnit 패키지를 설치 햇빛소년 2014.03.07 3932
46 설치관련 리눅스 콘솔에서 SSH 원격 서버 접속하기 햇빛소년 2014.02.23 3825
45 설치관련 페도라 epel-release 업데이트 햇빛소년 2014.03.04 3822
44 에러해결 네임서버(NameServer) 설정 및 점검 사이트 햇빛소년 2014.11.01 3755
43 에러해결 selinux 퍼미션 에러 audit2allow 로 쉽게 .... 햇빛소년 2014.02.28 3747
42 에러해결 httpd: undefined symbol: apr_procattr_perms_set_register 에러 해결 햇빛소년 2018.12.04 3699
41 에러해결 mysql root 및 사용자 계정 password(비밀번호) 변경 및 에러 대처. 햇빛소년 2015.08.11 3584
40 에러해결 phpmyadmin 상위버전 설치시 "PHP 5.5+ is required" 에러 대처 방법 햇빛소년 2015.12.14 3518
39 설치관련 유동IP(DDNS)+공유기+apache서버1+apache서버2+proxy로 도메인 포워딩. secret 햇빛소년 2014.10.28 3480
38 에러해결 utf8_mime2text() has new signature, 햇빛소년 2014.03.01 3363
37 에러해결 PHP 7.2.1 configuration error 조치. 햇빛소년 2018.01.22 3349
36 설정 및 사용법 route 및 iptables를 이용한 리눅스 특정 IP 접속 차단하는 법 햇빛소년 2016.06.14 2733
35 CentOS 7 mariadb 소스설치시 Curses library not found. Please install appropriate package, 햇빛소년 2016.02.16 2439
34 설치관련 리눅스 메인보드 정보확인 명령어 햇빛소년 2016.02.28 2403
33 설정 및 사용법 mqueue 설정 및 사용법 햇빛소년 2016.05.26 2044
32 에러해결 푸시 앱 연동과 카카오톡 링크 에러 해결을 마무리 하면서.. 햇빛소년 2015.09.18 1948
31 설치관련 redis 2.8.19 설치하기 햇빛소년 2015.02.27 1857
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10