필요한 파일
perl-5.8.8-sol9-x86-local.gz
Mail-SpamAssassin-3.2.3.tar.gz
lynx-2.8.5-sol9-x86-local.gz
ncftp-3.1.9-sol9-x86-local.gz
ncurses-5.6-sol9-x86-local.gz
wget-1.10.2-sol9-x86-local.gz
make-3.81-sol9-x86-local.gz
gnupg-1.2.2.tar.gz
Mail-SpamAssassin-3.2.3.tar.gz 는 http://spamassassin.apache.org 여기서 구할수 있고
나머지는 http://www.sunfreeware.com 여기서
gnupg-1.2.2.tar.gz는 http://www.pgpi.org/download/gnupg/ 여기서~~
먼저 perl을 설치해준다.
[testsol:root:/inst] gunzip perl-5.8.8-sol9-x86-local.gz
[testsol:root:/inst] pkgadd -d perl-5.8.8-sol9-x86-local
깔고나서 환경변수에 PATH에 있는 usr/local/bin 을 path의 가장 앞쪽으로 옮겨준다.
나의 경우는 /.cshrc 에 path 바꿔준후 source /.cshrc
※ 가장 앞에 usr/local/bin 을 넣지않으면 100% error를 뿜어내는 화면을 볼수 있을것이다....
lynx, ncftp, wget, ncurses,make , gnupg 설치~
[testsol:root:/inst] gunzip lynx-2.8.5-sol9-x86-local.gz
[testsol:root:/inst] pkgadd -d lynx-2.8.5-sol9-x86-local
[testsol:root:/inst] gunzip wget-1.10.2-sol9-x86-local.gz
[testsol:root:/inst] pkgadd -d wget-1.10.2-sol9-x86-local
[testsol:root:/inst] pkgadd -d ncftp-3.1.9-sol9-x86-local
[testsol:root:/inst] pkgadd -d ncurses-5.6-sol9-x86-local
CPAN 설정
[testsol:root:/inst] perl -MCPAN -e shell
다음에 나오는 질문들은 알아서.....
cpan> o conf prerequisites_policy ask
cpan> install Digest::SHA1 HTML::Parser Net::DNS
위에껀 필수 설치요소 밑에껀 옵션~ 이것들은 내가 설치하는 지금 시점으로 모두 설치 되었음~
cpan> install Mail::SPF Mail::SPF::Query IP::Country Compress::Zlib DBI LWP::UserAgent Archive::Tar
설치 안된 optional module은 http://search.cpan.org/여기서 찾아서 수동 설치..
아마 처음 바로 SpamAssassin에서 perl Makefile.PL 을 하게 되면 필요한 파일들을 볼 수 있을 것이다...
수동설치 하는 것중 유의 사항
Encode-Detect을 설치하기전에는 ExtUtils-CBuilder먼저 설치하여야 한다.
[testsol:root:/inst/op] gunzip ExtUtils-CBuilder-0.21.tar.gz
[testsol:root:/inst/op] tar -xvf ExtUtils-CBuilder-0.21.tar
[testsol:root:/inst/op] cd ExtUtils-CBuilder-0.21
[testsol:root:/inst/op/ExtUtils-CBuilder-0.21] perl Makefile.PL
[testsol:root:/inst/op/ExtUtils-CBuilder-0.21] make
[testsol:root:/inst/op/ExtUtils-CBuilder-0.21] make install
[testsol:root:/inst/op/ExtUtils-CBuilder-0.21] cd ../Encode-Detect-1.00
[testsol:root:/inst/op/Encode-Detect-1.00] perl Makefile.PL
[testsol:root:/inst/op/Encode-Detect-1.00] make
[testsol:root:/inst/op/Encode-Detect-1.00] make install
DB_File make 할 때 config.in 파일안의 BerkelyDB 위치를 현재의 위치로 정해주어야 한다.
현재 BerkeleyDB가 설치되어 있는 위치로 변경하고난 다음에
[testsol:root:/inst/op/DB_File-1.816] perl Makefile.PL
[testsol:root:/inst/op/DB_File-1.816] make
[testsol:root:/inst/op/DB_File-1.816] make install
그외에 내가 설치했던 Optional module
DB_File-1.816.tar.gz
Encode-Detect-1.00.tar.gz
Mail-DKIM-0.29.tar.gz
Mail-DomainKeys-1.0.tar.gz
Net-Ident-1.20.tar.gz
razor-agents-2.84.tar
위의 모듈들은 그냥 압축 풀고 perl Makefile.PL, make, make install 을 순서대로 해주면 된다.
Optional module 들은 설치해도 되고 안해도 된다~
인스톨방법
1.
cpan> install Mail::SpamAssassin <- 이것처럼 cpan에서 인스톨 해도 되지만 난 파일을 받아놨으니.. 걍 내가 컴파일 하련다...
2.
cpan> quit
[testsol:root:/inst/Mail-SpamAssassin-3.2.3] perl Makefile.PL
[testsol:root:/inst/Mail-SpamAssassin-3.2.3] make
[testsol:root:/inst/Mail-SpamAssassin-3.2.3] make install
SpamAssassin 압축 푼 폴더에 보면 sample-nonspam.txt와 sample-spam.txt 가 있는데 이걸로 간단히 테스트 해볼 수 있다.
[testsol:root:/inst/Mail-SpamAssassin-3.2.3] spamassassin -t < sample-nonspam.txt
[testsol:root:/inst/Mail-SpamAssassin-3.2.3] spamassassin -t < sample-spam.txt
이렇게 하면 각각 메시지들에 매겨진 점수를 볼 수 있다. spam 샘플은 거의 1000점 먹은 상황 -_-;;;
/etc/mail/spamassassin/local.cf 파일 내용
rewrite_header Subject *****SPAM*****
report_safe 1
lock_method flock
required_score 10
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
score SPF_PASS -2.0
score SPF_HELO_PASS -2.0
score SPF_NEUTRAL -1.0
score SPF_HELO_NEUTRAL -1.0
rewrite_header : 스팸으로 인정된 메일 제목 앞에 붙는 글
report_safe : 스팸으로 판단될 경우 원본 글을 감출지 여부
required_score : 스팸으로 판단할 스코어
use_bayes : 학습된 Bayesain Classifier를 사용할것인지 여부
bayes_auto_learn : 자동학습 설정
skip_rbl_checks : RBL체크값을 점수에 활용
use_razor2 : Vipul's Razor라는 곳에서 운영하는 블랙리스트 공유 시스템을 활용
ok_languages : 중요하게 사용되는 언어를 설정
ok_locales : 중요하게 사용되는 지역 설정
score : 별도로 특정 룰에 대한 점수를 강제로 지정
score SPF_PASS -2.0
score SPF_HELO_PASS -2.0
score SPF_NEUTRAL -1.0
score SPF_HELO_NEUTRAL -1.0
SPF에 의한 점수 설정
SpamAssassin사용시에 스팸메일 자체를 블럭 시키기
아무런 설정 없이 SpamAssassin을 사용하게 되며 스팸메일이라고 판단된 메일에는 local.cf 의 rewrite_header Subject에 적어준 글자가 그 메일 제목의 제일 앞 부분에 추가만 되고 다른 특별한 행동은 하지 않는다.
이러한 스팸 메일을 아예 받아보지 않으려면 앞에서 설치한 procmail의 procmailrc에 제목 필터링 하는 부분에서 자신이 rewrite_header Subject 에 적어준 단어를 추가해주면 된다.
SpamAssassin 실행
우선 Procmail 설치한다.
그리고 /etc/procmailrc
OPPRIVS=yes
:0fw
* < 256000
| /usr/local/bin/spamc
추가
그리고 /usr/local/bin/spamd & <- 백그라운드로 데몬 실행
담엔 보고 필터를 한번 써봐야지...
bogofilter를 한번 써봐야 겠다..
스팸 학습 시키기
sa-learn --spam --mbox /var/spool/mail/spam
/var/spool/mail/spam 은 스팸메일을 모아 놓은 디렉토리
반대로
햄 메일
sa-learn --ham --mbox /var/spool/mail/ham
댓글