메일 필터 · 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에 신원 정보가 기록됩니다. 다음 방법 중 하나로 수동으로 호출합니다:
- 사용자: foo 및 비밀번호: s1kret (foo 및 s1kret는 예시입니다) 등록:
razor-admin -register -user=foo -pass=s1kr3t- 이메일 주소로 등록하고 비밀번호를 할당받기:
razor-admin -register [email protected]- 무작위 사용자 이름과 비밀번호를 할당받기:
razor-admin -register저는 보통 3번을 사용합니다. /root/.razor/razor-agent.conf 파일에 다음 변경 사항을 적용합니다:
vi /root/.razor/razor-agent.confdebuglevel = 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.backvi /opt/MailScanner/etc/spam.assassin.prefs.confspam.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::Razor25 모든 것을 통합하기
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'를 사용합니다.새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.