정상적으로 send mail이 설치 된 후 설치합니다.
▶ spamassassin 설치
[root@localhost ~]# yum -y install spamassassin
아울러 sendmail에서 MILTER 기능을 지원하는 sendmail이라면, 실행할 때 다음과 같이 MILTER가 보여야 한다
[root@localhost ~]# sendmail -d0.10 < /dev/null | grep MILTER
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
▶ /etc/mail/sendmail.mc 파일을 열어 하단에 다음 예제와 같이 3줄을 추가한다
[root@localhost ~]# vi /etc/mail/sendmail.mc
=================내용 추가==============================
INPUT_MAIL_FILTER(spamassassin’,
S=local:/var/run/spammilter/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m’)dnl
define(confMILTER_MACROS_CONNECT’,
t, b, j, _, {daemon_name}, {if_name}, {if_addr}’)dnl
define(confMILTER_MACROS_HELO’,
s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}’)dnl
▶ 이후 m4로 sendmail.cf 파일을 재생성하도록 하자.
[root@localhost ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
▶sendmail.cf에서 기본적인 설정을 변경했다면, 이제는 spamass-milter 홈페이지에서 소스 파일을 다운로드하여 설치해 보도록 하자.
[root@localhost ~]# wget http://download.savannah.nongnu.org/releases/spamass-milt/spamass-milter-0.3.1.tar.gz
▶ 압축해제
[root@localhost ~]# tar xvfz spamass-milter-0.3.1.tar.gz
▶ 디렉토리 이동
[root@localhost ~]# cd spamass-milter-0.3.1
▶ 컴파일 과정
[root@localhost spamass-milter-0.3.1]# ./configure && make && make install
이렇게 설치하면 /usr/local/sbin/spamass-milter 실행 파일이 정상적으로 설치된다.
이제 구동에 필요한 관련 디렉토리를 생성해 주자.
[root@localhost ~]# mkdir /var/run/spammilter
[root@localhost ~]# chown nobody.nobody /var/run/spammilter
[root@localhost ~]# chmod 755 /var/run/spammilter
[root@localhost ~]# /usr/local/sbin/spamass-milter -p /var/run/spammilter/spamass.sock -f
▶ 그리고 다음 예제와 같은 구동 스크립트를 생성한 후 실행한다.
[root@localhost ~]# vi /etc/rc.d/init.d/spamassmilter
================내용 기입========================
#!/bin/sh
# processname: spamass-milter
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# For some reason perl5.8.0 really doesn’t like UTF-8.
# Fix courtesy of Mark Cohen se1@nayana.com
unset LANG
export LANG=C
# Local spamass-milter config
SM_SOCKET=/var/run/spammilter/spamass.sock
SM_EXTRA_FLAGS=”-b spam — -d 127.0.0.1 -p 783″
[ -x /etc/sysconfig/spamassmilter ] && . /etc/sysconfig/spamassmilter
# Check that networking is up.
[ ${NETWORKING} = “no” ] && exit 0
[ -x /usr/local/sbin/spamass-milter ] || exit 0
PATH=$PATH:/usr/bin:/usr/local/sbin:/usr/local/bin
# See how we were called.
case “$1″ in
start)
# Start daemon.
echo -n “Starting spamass-milter: ”
daemon –user=nobody /usr/local/sbin/spamass-milter -p ${SM_SOCKET} -f ${SM_EXTRA_FLAGS}
RETVAL=$?
touch /var/lock/subsys/spamass-milter
echo
;;
stop)
# Stop daemons.
echo -n “Shutting down spamass-milter: ”
killproc spamass-milter
RETVAL=$?
rm -f /var/lock/subsys/spamass-milter
echo
;;
restart)
$0 stop
$0 start
;;
status)
status spamass-milter
;;
*)
echo “Usage: $0 {start|stop|restart|status}”
exit 1
esac
exit 0
▶ 퍼미션 변경
[root@localhost ~]# chmod 755 /etc/rc.d/init.d/spamassmilter
이제 sendmail을 재가동하면 설정이 바로 적용된다. 물론 사전에 spamassassin은 설치돼 작동하고 있어야 한다. 이제 수신되는 메일 뿐만 아니라 송신하는 메일에 대해서도 스팸여부를 체크하게 되는데 maillog를 살펴보면 필터링 여부를 확인할 수 있을 것이다
스팸어쎄신의 경우 설치 후 한번 업데이트를 실행해줘야 한다
[root@localhost ~]# sa-update -D –nogpg
[root@localhost ~]# ls -l /var/lib/spamassassin/3.002005/updates_spamassassin_org
[root@localhost ~]# mv /var/lib/spamassassin/3.002005/updates_spamassassin_org/* /usr/share/spamassassin/
[root@localhost ~]# rm -rf /var/lib/spamassassin/
[root@localhost ~]# cd /etc/mail/spamassassin/
[root@localhost spamassassin]# vi local.cf
환경에 맞게 내용 구성
[root@localhost spamassassin]# /etc/rc.d/init.d/spamassassin restart
[root@localhost spamassassin]# /etc/rc.d/init.d/spamassmilter restart
[root@localhost spamassassin]# /etc/rc.d/init.d/sendmail restart