메뉴 건너뛰기

리눅스 관련 모음

본문시작

조회 수 74186 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

국산 통나무 수공예 남원제기, 남원목기

자료가 도움이 되셨다면
혼수용품제수용품 필요시
남원제기 공식 홈페이지 http://남원제기.kr
남원목기 공식 홈페이지 http://otchil.kr
에서 구매 해 주세요
정성껏 모시겠습니다.
 

기존에 SpamAssassin과 ClamAV를 연동하는 방법은 많이 있어왔지만 사실상 연동이라기 보다는 Sendmail에서 둘다 따로 호출하거나 Procmail 스크립트를 사용하는 방법등이었습니다.

다음은 ClamAV를 아예 SpamAssassin으로 합쳐 바이러스 발견시 SpamAssassin의 점수계산에 포함되도록 하는 방법입니다.

무선 ClamAV를 설치하고 시작해 보도록 하겠습니다. [이곳]에서 ClamAV 소스를 다운받아 설치합니다. 패키지 모음은 [이곳]에 있습니다.

ClamAV를 설치하기 전에 우선 사용자 계정을 추가합니다.

# groupadd clamav 
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" -d /var/lib/clamav clamav

다운받은 소스를 설치합니다.
# ./configure --sysconfdir=/etc/clamav 
# make 
# make install

추가로 필요한 디렉토리를 생성합니다.
# mkdir /var/lib/clamav 
# mkdir /var/log/clamav 
# mkdir /var/run/clamav 
# chown clamav.clamav /var/lib/clamav 
# chown clamav.clamav /var/log/clamav 
# chown clamav.clamav /var/run/clamav

/etc/clamav/clamd.conf 파일에 다음의 내용을 수정합니다.
LogFile /var/log/clamav/clamd.log 
LogFileMaxSize 2M 
LogTime yes 
PidFile /var/run/clamav/clamd.pid 
TemporaryDirectory /tmp 
LocalSocket /var/lib/clamav/clamd.sock 
FixStaleSocket yes 
ScanMail yes

다음으로는 /etc/clamav/freshclam.conf 파일을 수정합니다.
UpdateLogFile /var/log/clamav/freshclam.log 
PidFile /var/run/clamav/freshclam.pid 
DatabaseOwner clamav 
DNSDatabaseInfo current.cvd.clamav.net 
DatabaseMirror db.kr.clamav.net 
DatabaseMirror database.clamav.net

다음의 스크립트 파일을 /etc/rc.d/init.d 안에 추가합니다.

이제 스크립트를 실행해 봅시다.
# /etc/rc.d/init.d/freshclam start 
# /etc/rc.d/init.d/clamd start

/etc/cron.daily/freshclam이 생성되었다면 freshclam은 따로 데몬으로 돌리실 필요는 없습니다.
SpamAssassin이 설치된 설정 디렉토리 /etc/mail/spamassassin 안에 다음의 파일을 추가합니다.

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;


이후에 File::Scan::ClamAV 를 설치하여야 합니다.

# cpan File::Scan::ClamAV


이제 SpamAssassin에서 메일을 처리할때 ClamAV를 호출하여 바이러스 검사까지 하게 되며 바이러스가 존재할시 스코어 10점을 부여하고 X-Spam-Virus: Yes 헤더를 붙이게 됩니다.

세세한 점수를 확인하고 싶다면 [이곳]에서 확인해 보시면 됩니다.

SpamAssassin을 데몬형태로 사용하고 계신다면 재시작 해주시면 됩니다. 그외의 경우에는 바로 적용됩니다.

참고 : http://wiki.apache.org/spamassassin/ClamAVPlugin

 

 

+++++++++++++++++++++++++++++++++

로그확인은 /var/log/maillog 에서
로그쌓이는걸 원하지않는경우 /etc/init.d/spamd 에서 SPAMDOPTIONS 부분에 -s null 을추가해주자
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
190 에러해결 Apache-2.4.X 에서 mod_evasive-1.10.1 설치시 나오는 에러 해결... secret 햇빛소년 2013.01.11 0
189 에러해결 PHP5.3 가동후 에러 메세지 secret 햇빛소년 2013.01.13 0
188 설치관련 PHP CodeSniffer 코딩검사 secret 햇빛소년 2013.01.14 0
187 에러해결 modcurity 에러메세지 secret 햇빛소년 2013.01.17 0
186 에러해결 apache2.x.x 컴파일 에러 해결 - /usr/local/lib/liblua.a: could not read symbols: Bad value secret 햇빛소년 2013.01.19 0
185 설치관련 /etc/init.d/proftpd 실행 스크립트 secret 햇빛소년 2013.06.19 0
184 설치관련 [Linux Password 정책변경] linux 비밀번호 md5에서 SHA-512로 변경하기 secret 햇빛소년 2013.06.30 0
183 에러해결 LGU+ 결제 Mserver 설치관련 에러 사항..... secret 햇빛소년 2013.07.18 0
182 설치관련 메일계정 관련 명령어... secret 햇빛소년 2013.08.19 0
181 에러해결 'post-create' on '/var/spool/abrt/................................... secret 햇빛소년 2013.08.28 0
180 에러해결 XE 데이터 이전시 "댓글" 사라지는 문제 해결... secret 햇빛소년 2014.02.13 0
179 에러해결 zone_resigninc:dns_journal_open -> unexpected error secret 햇빛소년 2015.02.07 0
178 에러해결 [mysql] 에러 메세지 - RSA private key file not found: /mysql/data//private_key.pem. Some authentication plugins will not work. secret 햇빛소년 2014.01.20 1
177 설치관련 당신이 대통령이어선 안 되는 이유 -- 청와대에 올라 온 글 [펌] secret 햇빛소년 2014.04.28 1
176 설치관련 mysql 컴파일 설치 후 해야 할 일... secret 햇빛소년 2014.02.23 4
175 에러해결 [mysql]에러 메세지- #1146 - Table 'mysql.innodb_index_stats' doesn't exist 해결 secret 햇빛소년 2014.01.17 157
174 설정 및 사용법 IPv6 비활성화 방법 햇빛소년 2023.04.01 282
173 에러해결 그누보드 영카트 대신택배 배송조회 깨짐 현상 정확한 URL 링크 주소. 햇빛소년 2022.08.23 340
172 에러해결 기가인터넷 CAT.6 인터넷 속도 100Mb 인식 문제 해결 햇빛소년 2023.03.17 341
171 에러해결 win8.1 F8 안전모드 부팅하기 햇빛소년 2015.02.22 739
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10