메일 필터 · 6 min read · Nov 14, 2025

우분투 대퍼, 메일스캐너, 스팸어쌔신, 레이저, 파이저, DCC 및 클램AV를 이용한 포스트픽스 스팸 필터 - 페이지 4

3 파이저, 레이저, DCC, 스팸어쌔신 및 메일스캐너 구성

3.1 파이저 구성

먼저 pyzor의 일부 권한을 변경해야 합니다:

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord

다음 명령은 다른 버전의 python을 사용하는 경우 수정해야 합니다. pyzor의 위치를 찾아보세요.

chmod -R a+rX /usr/lib/site-python/pyzor

여기서 우리는 Pyzor 서버의 IP 주소를 Pyzor에 제공합니다. 이렇게 하면 사용자 홈 디렉토리에 .pyzor 디렉토리가 생성되고 그 안에 서버의 IP 주소가 포함된 servers 파일이 생성됩니다. 그런 다음 연결을 테스트합니다. 방화벽 뒤에 있는 경우 서버로의 24441/udp 포트를 열어야 합니다. 이와 함께 DCC를 위해 6277/udp, 레이저를 위해 2703/tcp 및 스팸어쌔신을 위해 783/tcp도 열어야 합니다:

pyzor ping

보통 pyzor ping에서 타임아웃이 발생하므로 걱정하지 마세요. 나중에 다시 테스트할 것입니다.

앞으로 서버의 IP 주소가 변경되면 이 섹션을 다시 실행해야 합니다. 현재 Pyzor 서버의 주소는 여기에서 찾을 수 있습니다: http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x.

Pyzor가 작동하면 “Pyzor: got response:”를 볼 수 있습니다. Pyzor는 컴퓨터가 DNS 서버에 쿼리하는 것과 유사한 방식으로 Pyzor 서버에 쿼리합니다. 유일한 실질적인 차이는 사용되는 포트 번호입니다. Pyzor가 작동하지 않으면 방화벽에서 포트를 열어야 하거나 Pyzor 서버가 바쁠 수 있습니다.

3.2 레이저 구성

루트 홈 디렉토리 아래에 default.razor 구성을 생성합니다:

cd  
rm /etc/razor/razor-agent.conf  
razor-admin -create  
razor-admin -create

레이저 v2는 보고자가 등록되어야 하며, 이를 통해 그들의 평판이 시간이 지남에 따라 계산되고 취소 메커니즘에 참여할 수 있습니다. 등록은 razor-admin -register로 수행됩니다. razor-admin -register가 루트로 호출되면, Nomination Server와 등록 협상이 이루어지고 /root/.razor/identity-username에 신원 정보가 기록됩니다. 다음 방법 중 하나로 수동으로 호출합니다:

  1. 사용자: foo 및 비밀번호: s1kret (foo 및 s1kret는 예시입니다) 등록:
razor-admin -register -user=foo -pass=s1kr3t
  1. 이메일 주소로 등록하고 비밀번호를 할당받기:
razor-admin -register [email protected]
  1. 무작위 사용자 이름과 비밀번호를 할당받기:
razor-admin -register

저는 보통 3번을 사용합니다. /root/.razor/razor-agent.conf 파일에 다음 변경 사항을 적용합니다:

vi /root/.razor/razor-agent.conf

debuglevel = 3을 debuglevel = 0으로 변경합니다 (예, 0은 “o”가 아닙니다). 이렇게 하면 레이저가 디버그 정보로 드라이브를 채우지 않도록 방지합니다. 또한 이러한 구성 파일을 Postfix 사용자가 읽을 수 있는 곳으로 이동하므로 파일 끝에 razorhome 줄을 추가합니다. 완료되면 두 줄은 다음과 같아야 합니다:

debuglevel             = 0
razorhome             = /var/lib/MailScanner/.razor/

나중에 레이저를 테스트할 것입니다. man razor-agent.conf 또는 http://razor.sourceforge.net/docs/razor-agent.conf.php에서 레이저에 대한 추가 정보를 확인하세요.

3.3 DCC 설정 및 구성

DCC를 설치합니다:

apt-get install dcc-client

우리는 DCC 서버를 운영하지 않으므로 스스로 확인하는 데 시간을 낭비할 필요가 없습니다: 대규모 조직(하루 100,000 메시지)인 경우 자체 서버 운영을 조사해야 합니다.

설치가 완료되면 다음을 실행합니다:

cdcc "delete 127.0.0.1"  
cdcc "delete 127.0.0.1 Greylist"

설치 테스트:

cdcc info

서버에서 ‘requests ok’를 받아야 합니다.

4 메일스캐너, 클램AV 및 스팸어쌔신 구성

4.1 메일스캐너 및 클램AV

Postfix를 중지합니다:

postfix stop

패키지를 설치합니다:

apt-get install mailscanner clamav

클램AV 바이러스 정의를 업데이트합니다:

freshclam

메일스캐너부터 시작하겠습니다. 저장소에서 방금 설치한 메일스캐너는 매우 오래된 버전이므로 이제 이를 제거하고 소스에서 메일스캐너 패키지를 설치하겠습니다.

http://www.mailscanner.info/downloads.html에서 tarball을 다운로드합니다 … 이 글을 쓰는 시점에서 버전 4.56.8-1이며 tarball 링크는 http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz입니다. 그런 다음 install.sh 스크립트를 사용하여 메일스캐너를 설치합니다.

cd  
apt-get remove mailscanner  
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz  
tar zxvf MailScanner-install-4.56.8-1.tar.gz  
cd MailScanner-install-4.56.8  
./install.sh

지금은 cron에 추가해야 하는 메시지는 무시하세요.

작업이 완료되면, 스팸어쌔신을 위한 디렉토리를 스풀에 만들고 postfix에 권한을 부여해야 합니다. root로 sa-learn –force를 실행하면 이러한 디렉토리에 저장된 bayes 데이터베이스가 root:root로 변경되고 spamassassin이 db를 볼 때 오류가 발생합니다. mail.log를 주의 깊게 살펴보면 권한을 다시 변경해야 할 때를 기억할 수 있습니다. 또한 메일스캐너 기본 구성을 비활성화합니다:

mkdir /var/spool/MailScanner/spamassassin  
mv /etc/MailScanner /etc/MailScanner.dist

메일스캐너 구성 파일을 백업합니다:

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.back

메일스캐너 구성을 편집합니다:

vi /opt/MailScanner/etc/MailScanner.conf

메일스캐너 구성 파일에서 다음 매개변수를 변경합니다:

%org-name% = YOURDOMAIN-COM
%org-long-name% = Your Company Long Name INC
%web-site% = www.yourdomain.com
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam Subject Text = [SPAM]
Send Notices = no
Spam List = ORDB-RBL SBL+XBL
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver striphtml
High Scoring Spam Actions = delete
Rebuild Bayes Every = 86400
Wait During Bayes Rebuild = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

처음 9줄은 모든 것이 작동하기 위해 기본적으로 필요하며, 나머지는 권장 사항입니다. MailScanner.conf는 잘 문서화되어 있으므로 변경한 나머지 옵션에 대해 질문이 있으면 거기에서 주의 깊게 읽어보세요. 이 파일을 위에서 아래로 살펴보세요.

또한 MailScanner.conf 파일의 “위험하거나 잠재적으로 공격적인 콘텐츠 제거/로그” 섹션을 살펴보세요. 고객들이 ‘{Disarmed}’ 메시지에 대해 불만을 제기했기 때문에 대부분 비활성화해야 했습니다.

4.2 스팸어쌔신

먼저 기본 스팸어쌔신 구성 파일을 비활성화해야 합니다:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

이제 메일스캐너에서 스팸어쌔신 구성 파일을 백업한 후 편집합니다:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back
vi /opt/MailScanner/etc/spam.assassin.prefs.conf

spam.assassin.prefs.conf의 맨 위에 다음 두 줄을 추가합니다:

pyzor_options --homedir /var/lib/MailScanner/
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

스팸어쌔신이 Bayes 데이터베이스를 찾는 위치를 변경하고, 기본 bayes_path를 주석 처리하거나 적절히 변경합니다:

#bayes_path /var/lib/MailScanner/bayes
bayes_path /var/spool/MailScanner/spamassassin/bayes

다음 줄을 찾아 적절히 변경합니다:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

“YOURDOMAIN-COM”은 MailScanner.conf 파일에서 “%org-name%”에 사용한 것으로 대체해야 합니다. “X-“는 그대로 두세요.

“bayes_auto_expire 0”이 주석 처리되지 않았는지 확인하세요:

bayes_auto_expire 0

스팸어쌔신 v310.pre를 편집하여 레이저와 DCC를 활성화합니다.

vi /etc/spamassassin/v310.pre

다음 줄의 주석을 제거합니다:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

5 모든 것을 통합하기

Pyzor 및 레이저 구성을 Postfix 사용자가 읽을 수 있는 곳으로 복사합니다:

cp -R /root/.pyzor /var/lib/MailScanner  
cp -R /root/.razor /var/lib/MailScanner

이제 모든 것이 준비되었으므로 올바른 권한을 설정합니다:

chown -R postfix.postfix /var/spool/MailScanner/  
chown -R postfix.postfix /var/lib/MailScanner/

스팸어쌔신이 정상인지 확인해봅시다:

su postfix -p -c 'spamassassin -x -D -C /opt/MailScanner/etc/spam.assassin.prefs.conf --lint'

DCC, Pyzor 및 레이저가 로드되고 오류가 없기를 바랍니다.

참고: sa-learn을 실행할 경우, 다음과 같이 실행해야 합니다: su postfix -p -c ‘sa-learn –sync –force-expire -C /opt/MailScanner/etc/spam.assassin.prefs.conf’ 그렇지 않으면 스팸어쌔신이 bayes 데이터베이스를 재구성할 때 이를 읽을 수 없습니다.

모든 것이 잘 보이면 계속 진행하고, 그렇지 않으면 문제를 해결한 후 계속 진행하세요.

이 부분을 마무리하면서 메일스캐너를 청소/업데이트/실행할 cron 작업을 추가해야 합니다. 메일스캐너 설치 스크립트가 완료된 후 이와 관련된 메시지를 보았을 것입니다. 지금 이를 수행하는 이유는 스팸어쌔신 구성을 완료하는 동안 메일스캐너가 시작되는 것을 원하지 않기 때문입니다.

crontab -e

다음 줄을 추가합니다:

37      5 * * * /opt/MailScanner/bin/update_phishing_sites
58     23 * * * /opt/MailScanner/bin/clean.quarantine
42      * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscanner

메일스캐너가 재부팅 시 시작되도록 rc.local에 줄을 추가해야 합니다:

vi /etc/rc.local

“Exit 0” 줄 앞에 다음을 추가합니다:

/opt/MailScanner/bin/check_mailscanner

“check_mailscanner” 파일을 bin 디렉토리에 링크할 수도 있습니다. 이렇게 하면 메일스캐너를 다시 시작해야 할 때마다 실행할 수 있습니다:

cd /usr/bin  
ln -s /opt/MailScanner/bin/check_mailscanner check_mailscanner

깨끗한 로그를 확인하고 재부팅합니다:

rm /var/log/mail.log  
reboot

재부팅 시 메일스캐너 시작에 대한 Perl Sys/Hostname/Long.pm 오류가 발생하면 다음과 같이 설치해야 합니다:

perl -MCPAN -e shell

지금 구성하라는 요청이 나오면, 아는 경우가 아니라면 “아니오”라고 대답하세요. 이제 다음을 실행하여 모듈을 설치합니다:

install Sys::Hostname::Long

완료되면 “quit”를 입력하여 콘솔로 돌아갑니다. 재부팅하거나 “check_mailscanner” 스크립트로 메일스캐너를 시작하세요.

이 시점에서 완전한 기능의 스팸 필터가 있어야 합니다. tail -f /var/log/mail.log를 확인해보세요. 오류가 거의 없어야 합니다.

이 README는 향후 사용에 유용할 것입니다. 스팸 필터에 복사하여 빠른 참조를 위해 보관하세요.

POSTFIX, UBUNTU, MAILSCANNER README
************************************************
ADD DOMAIN
**********************************************
- '/etc/postfix/relay_recipients', 'relay_domains' 및 'transport'를 편집합니다.
- 'postmap /etc/postfix/relay_recipients'를 실행합니다. 도메인을 데이터베이스 파일에 추가한 후 'relay_domains' 및 'transport'도 마찬가지입니다.
- 'postfix reload'를 실행하여 postfix가 새 데이터베이스 파일을 읽도록 합니다.
- 도메인에 사용자를 추가하려면 'relay_recipients'를 편집하고 이를 postmap합니다.
**********************************************
CONTROLLING BLIST WLIST
**********************************************
- /etc/postfix/sender_access를 편집합니다.
- 'postmap /etc/postfix/sender_access'를 실행합니다.
- 'postfix reload'를 실행합니다.
**********************************************
OTHER CONFIG FILES
**********************************************
- 메일스캐너 설정을 편집하려면 "/opt/MailScanner/etc/MailScanner.conf"를 편집합니다.
- 스팸어쌔신 설정을 편집하려면 "/opt/MailScanner/etc/spam.assassin.prefs.conf"를 편집합니다.
- 클램AV 설정을 편집하려면 "/etc/clamav/clamd.conf"를 편집합니다.
**********************************************
MISC
************************************************
- jailroot에서 파일 불일치에 대한 postfix 오류가 발생하면 'LINUX2'를 실행합니다.
- postfix가 jailroot와 동기화되었는지 확인하려면 'postfix check'를 실행합니다.
- 해당 파일에 변경 사항이 있을 경우 /etc/postfix/aliases 데이터베이스를 새로 고치려면 newaliases를 실행합니다.
- 큐를 확인하려면 'mailq' 및 'qshape'를 사용합니다.
- 메일스캐너를 재시작하려면 'check_mailscanner'를 사용합니다.
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.