사이트 내 전체검색
Spamassassin 스팸어세신 이란 말 그대로 스팸 메일을 골라서 차단 또는 분류해 주는 프로그램
로빈아빠
https://cmd.kr/server/535 URL이 복사되었습니다.

본문

Spamassassin<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

 

1. 스팸어세신 이란

2. 스팸어세신 설치

3. 스팸어세신 설정

4. 스팸어세신 운영

5. 스팸어세신 룰 설정

 

 

 

 

스팸어세신 이란


어세신(assassin)의 사전적 의미   : 자객, 암살자

스팸어세신 이란 말 그대로 스팸 메일을 골라서 차단 또는 분류해 주는 프로그램.

실제 여러 테스트 결과 90% 이상의 높은 차단율을 보이있어 어떠한 상용 솔류션에도 뒤지지 않는 정확도와 다양한 기능을 제공

 

주 개발 언어 : perl

사용상의 제약없이 누구나 편하게 사용할 수 있는 라이선스

rule 기반하에 헤더(header)와 내용(body)를 분석하거나 실시간 차단리스트(internet-based realtime blacklists(RBL))를 참고하여 각각의 룰에 매칭될 경우 +- 점수를 매겨 총 점수가 기준점을 초과하는지 여부에 따라 스팸인지 여부를 결정

 

스팸어세신이 구동하면 기본적으로 spamd 데몬이 127.0.0.1783/tcp 에서 리슨(LISTEN)

spamd 데몬은 spamc라는 경량의 C 기반의 클라이언트 프로그램과 통신하면서 스팸인지 여부를 판별 하는 역할

 

spamc 프로그램은 sendmail, qmail 과 같은 MTA가 많은 양의 메일에 대해 일일이 포크(fork)하지 않고 효율적으로 스팸인지 여부를 판별할 수 있도록 도와줌

 

기존 시스템에서 스팸어세신의 작동 방식

sendmail, qmail 과 같은 MTA가 외부에서 전송되는 메일을 25번 포트를 리슨하고 있다가 수신

procmail과 같은 MDA를 통해 해당하는 각 유저의 메일함에 메일이 저장되기 전에 스팸어세신을 거쳐서 스팸인지 여부를 확인 후 스팸일 경우 스팸이라는 말머리를 붙임.

이 과정에서 메일함에 저장되기 전에 특정한 메일은 삭제하도록 설정 할 수도 있음

 

위와 같은 작동 방식으로 스팸어세신은 바이러스월과 같은 장비에 설치될 수는 없고, 실제 메일 계정이 설정되어 있는 메일 서버에 설치되어야 함

 

 

MDA ?

 Mail Delivery Agent의 약자로 서버에서 메일을 유저의 로컬메일 박스 파일로 옮기는 역할을 함.

대표적인 MDA : procmail, maildrop

 

스팸어세신 설치



스팸어세신 역시 특정 버전에서 보안상 취약성이 발견되었으므로 최신 버전으로 설치할 것을 권장

스팸어세신 취약성 확인 사이트

http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=spamassassin

기존 스팸어세신 버전 확인

# spamassassin -V

 

CPAN.pm 을 이용한 방법

가장 간단하게 사용할 수 있는 방법으로 CPAN.pm을 이용하여 CPAN shell 모드로 들어간 후  "install Mail::SpamAssassin”을 입력

 

# perl -MCPAN -e shell

cpan shell ? CPAN exploration and modules installation (v.1.59_54)

ReadLine support available (try ‘install Bundle::CPAN’)

 

cpan> install Mail::SpamAssassin

 

 

 

소스 파일을 다운로드 하여 설치

 

# perl Makefile.PL

# make; make install

 

레드햇 8.0 이상에서 make 시에 다음과 같은 에러가 나는 경우

 

‘could not locate your pod2man program’

‘Makefile: 54: *** missing separator. Stop.’

 

perlExtUtils::MakeMaker 모듈에서 UTF-8을 처리하는 중 버그가 있기 때문이다.

export LANG=en_US를 실행하거나 unset LANG을 실행 후 다시 perl Makefile.pl을 실행 설치나 운영과정에서 에러가 발생할 경우에는 “spamassassin -D -lint을 실행하여 debug 메시지를 보면 대력의 원을을 유추할 수 있다.

 

스팸어세신에 필요한 모듈

스팸어세신이 제대로 동작하기 위해 필요한 기본적인 모듈과 옵션 사항으로 다음의 모듈이 필요하다.

 

기본 모듈

스팸어세신이 제대로 설치되고 작동하기 위해서 반드시 필요한 모듈

 

Digest::SHA1

몇 가지 test에 대한 암호화 해쉬에 필요하다.

 

ExtUtils::MakeMaker >= 5.45

이 모듈은 기본적으로 포함되어 있을 것이다. 만약 이 모듈이 없다면 빌드시 에러가 난다.

 

Pod::Usage >= 1.10 이상

이 모듈은 기본적으로 포함되어 있을 것이다. 가급적 최신버전을 사용하는 것이 좋다.

 

HTML::Parser >= 3.24

자세한 설명은 “perldoc ?q html”을 실행하면 볼 수 있으며 가급적 최신버전을 이용하는 것이 좋다.

 

Sys::Syslog

spamd는 이 모듈을 이용하여 스캔한 내용을 syslog를 통해 로그에 남긴다. 이 모듈은 기본적으로 설치되어 있는데, “perl ?MSys::Syslog ?e 1”을 실행할 때 에러가 나면 설치가 되어 있지 않은 것이고 아무런 메시지가 없으면 설치되어 있는 것이다.

 

Storable

spamd를 실행할 때 필요한 모듈이다. 아래와 같이 실행했을 때 버전 번호가 출력되면 정상적으로 설치된 것이다. 없으면 설치하도록 한다.

 

# perl ?MStorable ?e ‘print “$Storable::VERSION\n”

2.13

 

 

 

옵션 모듈

옵션모듈이 설치되지 않았다고 해서 스팸어세신이 오작동하지는 않지만 다른 부가기능을 제공하고 있으므로 일부는 설치하는 것이 좋다.

 

DB_File

Bayes-style auto-whitelist에 필요하므로 설치하는 것이 좋다.

 

Net::DNS

RBL(Realtime BlackList)이나 MX를 체크할 때 사용되므로 필요하다면 설치하는 것이 좋다.

 

 

스팸어세신 설정


 

 

스팸어세신은 방대한 양의 설정 내용을 제공하는데, 자세한 내용은 “perldocMail::SpamAssassin::Conf”를 실행하거나 관련 문서를 참조

 

기본적인 디렉토리 구조

/usr/share/spamassassin/*.cf

몇몇 설정파일들이 위치하는 곳으로 수정하거나 변경할 부분은 없다. 굳이 변경한다면 스팸으로 분류시 헤더에 쓰여질 내용이나 각종 룰(rule)에 대한 설명 등을 변경할 수 있다. 그러나 특별히 할 필요도 없고, 업그레이드를 하면 덮어 씌어지므로 가급적 변경하지 않도록 한다.

 

/etc/mail/spamassassin/*.cf:

주 설정 파일로서 각종 설정과 풀에 대한 점수(score)등을 지정할 수 있다. 별도의 파일 이름은 없으며 확장자가 .cf이기만 하면 정절 파일로 인식한다.

 

$USER_HOME/.spamassassin

유저별 디렉토리에 생성하여 유저별로 별로의 룰을 설정할 수 있는 파일

 

설정파일에서 사용될 수 있는 옵션

/etc/mail/spamassassin/*.cf $USER_HOME/.spamassassin/ 에 설정

 

required_score x.xx (기본값: 5.0)

 

가장 중요한 설정으로 들어오는 메일에 대해 스팸으로 분류할지 여부에 대한 기준값

일반적으로 6.0 ~ 8.0이 적당

6.0이면 뉴스레터 등 일부 메일도 스팸 처리가 됨

8.0이면 해외에서 전송되는 일부 스팸에 잘 걸러지지 않음

rules/STATISTICS.txt 에 의한 대략의 통계값

 

requie_score

5.0

6.0

7.0

8.0

9.0

스팸을 인식할

확율

94.01%

91.70%

88.50%

85.11%

81.69%

정상메일을

스팸으로 처리할 확율

0.05%

0.02%

0.01%

0.00%

0.00%

스팸을 인식하지 못할 확율

5.99%

8.30%

11.50%

14.89%

18.31%

 

 

score SYMBOLIC_TEST_NAME n.nn

 

해당하는 룰 테스트에 대한 점수를 변경

점수는 스팸일 가능성이 높을수록 큰 점수를, 낮을수록 적은 점수나 -를 줄 수 있음

 

스팸어세신에서 제공하는 모든 룰은 아래 URL  설정 되어 있음

 

http://spamassassin.apache.org/tests.html

실제 룰 정의는 “/usr/share/spamassassin” 디렉토리 내 파일에 정의

적용 예)

 

score SUBJ_DOLLARS                 2.0

 

제목에 달러($)가 포함된 메일이 대해서 2.0을 부여

/usr/share/spamassassin 디렉토리내 실제 룰

 

header SUBJ_DOLLARS                  Subject = ~/^ \$[0-9]+ \b/

describe SUBJ_DOLLARS                Subject starts with dollar amount

 

 

whitelist_from my@friend.com

 

스팸수치와 관계없이 수신할 메일 주소.

형식 - my@friend.com, *@isp.com,  *.domain.net

주소가 여러 개인 경우 한 줄에 여러 주소도 지정 가능

헤더에 Envelope-Sender, Resent-Sender, X-Envelope-From, From 에 설정되어 있으면 이 변수에 적용 됨

 

blacklist_from  test@test.com

 

스팸 수치와 관계없이 무조건 스팸으로 간주.

형식은 whitelist와 동일 함.

 

whitelist_to not@spamassassin.com

 

ToCc에 특정한 메일 주소가 설정되었을 경우 스팸 수치와 관계없이 whitelist로 가정함

특정 도메인이나 계정에 대해서는 스팸 설정을 원치 않을 경우 사용

헤더의 To, Cc, Apparently-To, Delivered-To, Envelope-Recipients, Apparently-Resent-To, X-Envelope-To, Envelope-To, X-Delivered-To, X-Original-To, X-Rcpt-To, X-Real-To등에 설정되어 있으면 적용

 

blacklist_to add@ress.com

 

반대로 ToCc에 특정한 메일 주소가 설정되어 있을 경우 스팸 수치와 관계없이 blacklist로 가정 함

 

rewrite_header Subject [SPAM]

 

스팸 지수를 촤과하여 스팸으로 간주되었을 경우 스팸으로 분류하기 위해 메일의 제목을

재작성.

 

report_safe { 0 | 1 | 2 }

 

0 : 스팸메일의 원본이 보임

1 : 스팸 필터링에 대한 간단한 설정(report)과 분류된 구체적인 이유가 보임.

원래의 스팸 메일은 첨부파일로 저장됨

2 : 형식이 모두 text로 변환되어 html 코드 등이 그대로 보이게 됨

기본값 : 1

 

ok_languages   all

 

어떤한 언어의 메일에 대해 수용할 것인지 정의

기본값 : all

 

ok_locales all

 

어떠한 국가의 charater sets에 대해 수용할 것인지 정의

기본값 : all

 

skip_rbl_checks { 0 | 1} }      (기본값: 0)

 

rbl 체크 여부 정의

RBL을 설정하면 수신 때마다 DNS 확인을 하기 때문에 부하을 유발

RBL의 경우 스팸 메일을 발송한 해당 IP 뿐만 아니라 IP대역까지 차단하는 경우도 많음

 

allow_user_rules

 

유저들의 홈 디렉토리내 user_prefs 파일에서 별도의 룰을 생성할 수 있도록 할것인지를

정의. 허용할 경우 보안상 문제와 부하상승의 요인이 되므로 허용하지 않는것이 좋음

 

use_bayes                     {1|0}           (기본값 : 1)

 

베리시안 기법의 사용할 것인지를 지정. 베리시안 기법을 사용할 경우 아래와 같은 설정을 추가할 것

 

bayes_path  /home/spam/.spamassassin/bayes

auto_whitelist_path  /home/spam/.spamassassin/auto-whitelist

bayes_file_mode 777

auto_whitelist_file_mode 777

 

베리시안 필러링이란?

수학지였던 토마스 베이즈의 정리를 텍스트 분류에 적용한 것인데, 특정한 텍스트에서 개별적인 단어들의 출현 빈도를 모두 저장한 뒤, 비슷한 분류의 텍스트를 계속 샘플 데이터로 추가시켜 나가면서 임의의 텍스트가 해당 분류에 속하지는 여부를 알 수 있다는 이론.

현재까지 존재하는 스팸 필터링 기법 중 가장 필터률이 높다는 평가.

 

설정 확인 하기

 

# spamassassin -lint

 

-D 옵션을 주어 실행하면 각종 설정등 debug 메시지를 확인 할 수 있다.

# spamassassin -D

 

스팸어세신이 설정되면 procmail, maildrop(자사의 경우 scanv.php)와 같은 MDA를 이용해서      

스팸으로 분류된 메일을 어떻게 처리할 것인가를 결정한다.

 

스팸어세신에 의해 스팸으로 분류된 메일의 헤더

 

X-Spam-Flag: YES

X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on m189.mailplug.co.kr

X-Spam-Level: ****************                 <-- 스팸수치를 * 개수로 보여준다.

X-Spam-Status: Yes, score=16.7 required=7.0 <--스팸 기준치는 7.0인데, 총점이 16.7이어서

                                                       스팸으로 분류된 메일이라는 의미이다. 만약

                                                       스팸이 아니라면 X-Spam-Status: No가 된다.

tests=HTML_MESSAGE,RCVD_IN_PBL,

        RCVD_IN_SORBS_DUL,RDNS_NONE,URIBL_AB_SURBL,URIBL_BLACK,URIBL_JP_SURBL,

        URIBL_OB_SURBL,URIBL_RHS_DOB,URIBL_SBL,URIBL_SC_SURBL autolearn=no

        version=3.2.3

X-Spam-Report:                   <-- 스팸으로 분류하기 위해 계산된 각종 점수, tests

                                             그리고 간단한 설명 등이 나온다. 이 점수들의 합이

                                             스팸지수 총점(16.7)이 된다.

        *  0.1 RDNS_NONE Delivered to trusted network by a host with no rDNS

        *      [URIs: dpsegpesgsep.com]

        *  2.9 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist

        *      [URIs: dpsegpesgsep.com]

        *  2.1 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist

        *      [URIs: dpsegpesgsep.com]

        *  2.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist

        *      [URIs: dpsegpesgsep.com]

        *  2.5 URIBL_SBL Contains an URL listed in the SBL blocklist

        *      [URIs: dpsegpesgsep.com]

        ….

 

 

스팸어세신 룰 설정

스팸어세신을 설치하였을 때 기본적으로 설치되는 룰 외에 추가적으로 다른 룰을 사용할

수 있다.

룰 파일을 제공하는 사이트 - http://www.exit0.us

스팸어세신은 확장자가 .cf 이기만 하면 모두 설정 파일로 인식한다.

 

룰 타입에 종류

댓글목록

등록된 댓글이 없습니다.

1,139 (8/23P)

Search

Copyright © Cmd 명령어 3.136.19.124