서버 관리 · 5 min read · Oct 12, 2025

Postfix, Courier 및 MySQL을 이용한 가상 사용자 및 도메인 (CentOS 5.1) - 페이지 4

12 Razor, Pyzor 및 DCC 설치 및 SpamAssassin 구성

Razor, Pyzor 및 DCC는 협업 필터링 네트워크를 사용하는 스팸 필터입니다. Razor를 설치하려면 다음을 실행하십시오.

yum install perl-Razor-Agent razor-agents

Pyzor는 CentOS 5.1 저장소에서 사용할 수 없지만 대신 RHEL 5용 Pyzor 패키지를 설치할 수 있습니다:

rpm -ivh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/5/i386/pyzor-0.4.0-11.el5.noarch.rpm

(위 링크가 더 이상 작동하지 않으면 http://rpm.pbone.net/에서 현재 버전을 찾을 수 있습니다.)

그런 다음 두 서비스를 초기화합니다:

chmod -R a+rX /usr/share/doc/pyzor-0.4.0 /usr/bin/pyzor /usr/bin/pyzord  
chmod -R a+rX /usr/lib/python2.4/site-packages/pyzor  
mkdir /var/spool/amavisd  
chown amavis:amavis /var/spool/amavisd  
su -m amavis -c 'pyzor --homedir /var/spool/amavisd discover'  
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -create'  
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -register'

그런 다음 DCC를 다음과 같이 설치합니다:

cd /tmp  
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z  
tar xzvf dcc-dccproc.tar.Z  
cd dcc-dccproc-1.3.76  
./configure --with-uid=amavis  
make  
make install  
chown -R amavis:amavis /var/dcc  
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd

이제 SpamAssassin에 이 세 프로그램을 사용하도록 지시해야 합니다. /etc/mail/spamassassin/local.cf를 편집하여 다음과 같이 보이도록 합니다:

vi /etc/mail/spamassassin/local.cf

| # 이러한 값은 ~/.spamassassin/user_prefs.cf를 편집하여 재정의할 수 있습니다. # (자세한 내용은 spamassassin(1)을 참조하십시오.) # 이러한 가정은 안전해야 하며 잃어버린 이메일의 위험 없이 간단한 시각적 선별을 허용해야 합니다. #required_hits 5 #report_safe 0 #rewrite_header Subject [SPAM] # dcc use_dcc 1 dcc_path /usr/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /var/spool/amavisd/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

그런 다음 SpamAssassin에서 DCC 플러그인을 활성화해야 합니다. /etc/mail/spamassassin/v310.pre를 열고 loadplugin Mail::SpamAssassin::Plugin::DCC 줄의 주석을 제거합니다:

vi /etc/mail/spamassassin/v310.pre

| # SpamAssassin 설치를 사용자 정의할 수 있는 올바른 위치입니다. # # 무엇을 조정할 수 있는지에 대한 자세한 내용은 'perldoc Mail::SpamAssassin::Conf'를 참조하십시오. # # 이 파일은 SpamAssassin 3.1.0 설치 중에 설치되었으며, # 해당 릴리스에 추가된 새로운 플러그인에 대한 플러그인 로딩 명령을 포함합니다. # 향후 SpamAssassin 설치 중에 덮어쓰이지 않으므로, # 원하신다면 아래에서 기본적으로 비활성화된 일부 플러그인을 활성화하도록 수정할 수 있습니다. # # 이제 /etc/mail/spamassassin 디렉토리에서 플러그인을 활성화하기 위해 여러 파일이 읽힙니다. # 이전에는 오직 하나의 파일인 "init.pre"만 읽혔습니다. # 이제 "init.pre", "v310.pre" 및 "*.pre"로 끝나는 다른 파일도 읽힙니다. # 향후 릴리스가 이루어지면 새로운 플러그인이 추가된 새로운 파일에 추가됩니다. ########################################################################### # DCC - DCC 메시지 검사를 수행합니다. # # DCC는 오픈 소스가 아니기 때문에 여기서 비활성화되어 있습니다. DCC 라이센스에 대한 자세한 내용은 참조하십시오. # loadplugin Mail::SpamAssassin::Plugin::DCC # Pyzor - Pyzor 메시지 검사를 수행합니다. # loadplugin Mail::SpamAssassin::Plugin::Pyzor # Razor2 - Razor2 메시지 검사를 수행합니다. # loadplugin Mail::SpamAssassin::Plugin::Razor2 # SpamCop - SpamCop 메시지 보고 수행 # loadplugin Mail::SpamAssassin::Plugin::SpamCop # AntiVirus - 몇 가지 간단한 안티바이러스 검사, 이는 Clam AntiVirus와 같은 안티바이러스 필터를 대체하지 않습니다. # #loadplugin Mail::SpamAssassin::Plugin::AntiVirus # AWL - 자동 화이트리스트 검사를 수행합니다. # loadplugin Mail::SpamAssassin::Plugin::AWL # AutoLearnThreshold - Bayes 자동 학습을 위한 임계값 기반 구분자 # loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold # TextCat - 언어 추측기 # #loadplugin Mail::SpamAssassin::Plugin::TextCat # AccessDB - 액세스 데이터베이스에서 발신자 주소 조회 # #loadplugin Mail::SpamAssassin::Plugin::AccessDB # WhitelistSubject - 특정 주제 정규 표현식 화이트리스트/블랙리스트 # loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject ########################################################################### # 실험적 플러그인 # DomainKeys - DomainKeys 검증 수행 # # 사용을 위해 외부 모듈이 필요하며, 자세한 내용은 INSTALL을 참조하십시오. # DKIM 플러그인을 사용할 계획이라면 이 부분은 중복될 수 있습니다. # #loadplugin Mail::SpamAssassin::Plugin::DomainKeys # MIMEHeader - 메시지의 MIME 헤더에 대해 정규 표현식 규칙 적용 # loadplugin Mail::SpamAssassin::Plugin::MIMEHeader # ReplaceTags # loadplugin Mail::SpamAssassin::Plugin::ReplaceTags |

SpamAssassin 구성을 확인하려면 다음을 실행하십시오:

spamassassin --lint

오류가 표시되지 않아야 합니다.

그 후에 다음을 실행하십시오:

/etc/init.d/amavisd restart

이제 인터넷에서 찾을 수 있는 일부 사용자 정의 규칙 세트를 SpamAssassin에 삽입하고 싶습니다. 나는 그 규칙 세트를 테스트했으며 스팸 필터링을 훨씬 더 효과적으로 만듭니다. 파일 /usr/local/sbin/sa_rules_update.sh를 생성합니다:

vi /usr/local/sbin/sa_rules_update.sh

| #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/71_sare_redirect_pre3.0.0.cf -O 71_sare_redirect_pre3.0.0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_bayes_poison_nxm.cf -O 70_sare_bayes_poison_nxm.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html.cf -O 70_sare_html.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html4.cf -O 70_sare_html4.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html_x30.cf -O 70_sare_html_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header0.cf -O 70_sare_header0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header3.cf -O 70_sare_header3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header_x30.cf -O 70_sare_header_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_specific.cf -O 70_sare_specific.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_adult.cf -O 70_sare_adult.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/72_sare_bml_post25x.cf -O 72_sare_bml_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_sare_fraud_post25x.cf -O 99_sare_fraud_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_spoof.cf -O 70_sare_spoof.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_random.cf -O 70_sare_random.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_oem.cf -O 70_sare_oem.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj0.cf -O 70_sare_genlsubj0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj3.cf -O 70_sare_genlsubj3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj_x30.cf -O 70_sare_genlsubj_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_unsub.cf -O 70_sare_unsub.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_uri.cf -O 70_sare_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.timj.co.uk/linux/bogus-virus-warnings.cf -O bogus-virus-warnings.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.yackley.org/sa-rules/evilnumbers.cf -O evilnumbers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.stearns.org/sa-blacklist/random.current.cf -O random.current.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_body.cf -O 88_FVGT_body.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_rawbody.cf -O 88_FVGT_rawbody.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_subject.cf -O 88_FVGT_subject.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_headers.cf -O 88_FVGT_headers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_uri.cf -O 88_FVGT_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_DomainDigits.cf -O 99_FVGT_DomainDigits.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_Tripwire.cf -O 99_FVGT_Tripwire.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_meta.cf -O 99_FVGT_meta.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.nospamtoday.com/download/mime_validate.cf -O mime_validate.cf &> /dev/null /etc/init.d/amavisd restart &> /dev/null exit 0 |

스크립트를 실행 가능하게 만듭니다:

chmod 755 /usr/local/sbin/sa_rules_update.sh

그런 다음 해당 스크립트를 한 번 실행하면 규칙 세트를 가져와 SpamAssassin에 삽입합니다:

/usr/local/sbin/sa_rules_update.sh

정기적으로 규칙 세트가 업데이트되도록 크론 작업을 생성합니다. 다음을 실행하십시오:

crontab -e

크론 작업 편집기를 열고 다음 크론 작업을 생성합니다:

| 23 4 */2 * * /usr/local/sbin/sa_rules_update.sh &> /dev/null |

이렇게 하면 매 2일마다 4시 23분에 규칙 세트가 업데이트됩니다.

13 쿼타 초과 알림

모든 이메일 계정이 쿼타를 초과했을 때 알림을 받고 싶다면 다음을 수행하십시오:

cd /usr/local/sbin/  
wget http://puuhis.net/vhcs/quota.txt  
mv quota.txt quota_notify  
chmod 755 quota_notify

/usr/local/sbin/quota_notify를 열고 상단의 변수를 편집합니다. 파일의 아래쪽(끝쪽)에는 % 기호를 추가해야 할 두 줄이 있습니다:

vi /usr/local/sbin/quota_notify

| [...] my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'My Company'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; [...] print "Subject: WARNING: Your mailbox is $lusers{ $luser}% full.\n"; [...] print "Your mailbox: $luser is $lusers{ $luser}% full.\n\n"; [...] |

다음 명령을 실행하여 해당 스크립트에 대한 크론 작업을 생성합니다:

crontab -e

| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |

Share: X/Twitter LinkedIn

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

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