메일 서버 · 3 min read · Jan 03, 2026

Mailscanner/Exim Gateway With Communigate PRO Guide

Mailscanner/Exim Gateway With Communigate PRO Guide

이 튜토리얼에서는 Communigate pro 클러스터 앞에 메일 방화벽으로 Mailscanner를 설치하고 설정하는 방법을 설명합니다. 이 튜토리얼은 CENTOS 5.x 리눅스 배포판을 위해 작성되었지만, 약간의 수정으로 다른 리눅스 기반 시스템에서도 사용할 수 있을 것입니다. 시스템은 SELinux가 강제 모드로 실행됩니다. 우리가 사용할 구성 요소는 다음과 같습니다:

  • Mailscanner
  • Clamav
  • exim
  • apache
  • mailwatch
  • razor
  • spamassassin
  • mysql
  • fuzzy ocr
  • sanesecurity signatures
  • mailfeeder

패키지 설치

기본적인 CENTOS 5 시스템을 “Development Tools” 그룹과 함께 설치했다고 가정하므로 패키지 선택 및 파티션 레이아웃과 같은 문제에 대해서는 깊이 다루지 않겠습니다. 기본 CENTOS 기반의 일부가 아닌 특정 소프트웨어를 설치해야 하므로, 필요한 소프트웨어를 많이 패키징하는 Dag Wieers rpm 저장소를 사용하도록 시스템을 구성해야 합니다.

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

이 작업이 완료되면 rpmforge 저장소를 사용하도록 시스템이 구성되었습니다.

이 튜토리얼의 작업 디렉토리는 /usr/local/src입니다 - 모든 다운로드는 이곳에 다운로드하고 압축을 풀어야 합니다.

Exim

yum install exim -y  
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.exim  
service sendmail stop  
/sbin/chkconfig --level 345 sendmail off  
/sbin/chkconfig --level 345 exim off

MailScanner

wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.66.5-3.rpm.tar.gz  
tar xzvf MailScanner-4.66.5-3.rpm.tar.gz  
cd MailScanner-4.66.5-3  
./install.sh

Clamav

yum install clamav clamav-db clamd -y  
freshclam

Sanesecurity 서명

wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh  
chmod +x /usr/local/bin/update_sanesecurity.sh  
ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/  
/usr/local/bin/update_sanesecurity.sh

Apache

yum install httpd php php-mysql php-gd php-eaccelerator -y /sbin/chkconfig --level 345 httpd on

Spamassassin

yum install spamassassin -y

Fuzzy OCR

yum install netpbm-progs ocrad gocr gifsicle giflib-utils giflib -y  
svn co svn://svn.own-hero.net/fuzzyocr/trunk/devel  
cd devel/  
perl -MCPAN -e 'install String::Approx'  
perl -MCPAN -e 'install Time::HiRes'  
perl -MCPAN -e 'install Log::Agent'  
cp -rv {FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/} /etc/mail/spamassassin  
chcon -R system_u:object_r:etc_mail_t /etc/mail/spamassassin/{FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/}  
wget http://www.gbnetwork.co.uk/mailscanner/FuzzyOcr.words -O /etc/mail/spamassassin/FuzzyOcr.words

Razor

yum install razor-agents

MySQL

yum install mysql mysql-server -y

Mailwatch

wget http://dfn.dl.sourceforge.net/sourceforge/mailwatch/mailwatch-1.0.4.tar.gz  
tar xzvf mailwatch-1.0.4.tar.gz  
cd mailwatch-1.0.4  
cp -av mailscanner/* /var/www/html/  
cp /var/www/html/conf.php.example /var/www/html/conf.php  
mkdir /var/www/html/temp  
chmod u+rwx /var/www/html/temp  
rm -f /var/www/html/{index.php,xml,jpgraph,fpdf}  
cp /var/www/html/status.php /var/www/html/index.php  
mv /var/www/html/jpgraph-1.12.1 /var/www/html/jpgraph  
mv /var/www/html/fpdf152 /var/www/html/fpdf  
mv /var/www/html/xmlrpc_1.2 /var/www/html/xmlrpc  
chown apache.apache -R /var/www/html/  
chmod ug+rwx /var/www/html/images  
chmod ug+rwx /var/www/html/images/cache  
chcon -R system_u:object_r:httpd_sys_content_t /var/www/html/  
cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/  
cp SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/  
cp tools/db_clean.php /usr/local/bin/  
cp tools/quarantine_maint.php /usr/local/bin/

Mailfeeder

wget http://www.pldaniels.com/mailfeeder/mailfeeder-0.2.3.tar.gz  
tar xzvf mailfeeder-0.2.3.tar.gz  
cd mailfeeder-0.2.3  
make  
cp mailfeeder /usr/local/bin/

패키지 구성

Exim 구성

소개

Mailscanner와 함께 exim을 실행하려면, 포트 25에서 수신 메일을 수신하고 처리할 데몬을 위한 구성 파일과 Mailscanner에 의해 스캔된 깨끗한 메일을 배달할 exim 프로세스를 위한 두 개의 구성 파일이 필요합니다. 또한 수신 메일과 스캔된 깨끗한 메일을 위한 두 개의 큐가 필요합니다.

모든 구성 옵션에 대해 자세히 설명하지 않겠습니다. 정상적으로 실행되는 exim 시스템을 구성하는 방법에 대한 자세한 정보는 다른 곳에서 찾을 수 있을 것이라고 기대합니다. 따라서 이 설정에 특정한 영역에만 집중하겠습니다.

  • 먼저 exim 구성을 백업한 다음, 아웃바운드 프로세스를 위한 두 번째 구성 파일을 만듭니다.
cp /etc/exim/exim.conf /etc/exim/exim.conf.orig  
cp /etc/exim/exim.conf /etc/exim/exim_out.conf

수신 Exim

이것은 포트 25에서 수신 메일을 수신하고 Mailscanner가 처리할 수 있도록 큐에 넣는 exim 데몬의 구성입니다. 구성 파일은 /etc/exim/exim.conf입니다.

안티바이러스 / Sanesecurity 검사

수신 exim 데몬(/etc/exim/exim.conf)을 구성하여 clamav를 사용하여 수신 메일을 스캔하고 바이러스에 감염된 이메일 및 이미지 및 PDF 스팸을 SMTP 시간에 거부합니다.

av_scanner = clamd:/var/run/clamav/clamd.sock

메일 라우팅

메일을 수신할 도메인을 구성합니다. 이를 /etc/exim/relay_domains 파일에 추가합니다.

# 예시 /etc/exim/relay_domains
example.com

exim 구성에서 이를 지정합니다:

domainlist relay_to_domains = lsearch;/etc/exim/relay_domains

메일을 필터링하는 도메인의 라우팅을 /etc/exim/mail-routes 파일에 구성합니다.

#예시 /etc/exim/mail-routes
example.com: xxx.xxx.xxx.xxx:xxx.xxx.xxx.xxx # 이 도메인은 2개의 프론트 엔드 노드가 있는 CGP 클러스터에 있습니다.
somedomain.com: xxx.xxx.xxx.xxx # 이 메일은 하나의 CGP 머신으로 배달됩니다.

릴레이 도메인에 대한 메일을 수신하는 라우터를 구성합니다. 아래의 check_backend: router 아래에 추가해야 합니다(주소 확인 참조).

deliver_clean:
  driver = manualroute
  domains = +relay_to_domains
  transport = remote_smtp
  route_data = ${lookup{$domain}lsearch{/etc/exim/mail-routes}}

Mailscanner 통합

수신 exim을 구성하여 메시지를 큐에 넣고 배달하지 않도록 하여 Mailscanner가 이를 처리할 수 있도록 합니다.

spool_directory = /var/spool/exim.in
process_log_path = /var/spool/exim/exim-process.info
queue_only = true
queue_only_override = false

RBL

acl_check_rcpt 아래에 RBL을 구성합니다:

drop    message       = REJECTED because $sender_host_address is in a black list spamhaus.org
           dnslists      = xen.spamhaus.org
drop    message       = REJECTED because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
           dnslists      = bl.spamcop.net
drop    message       = REJECTED because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
           dnslists      = dnsbl.sorbs.net
Share: X/Twitter LinkedIn

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

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