출처: http://www.sulinux.net/bbs/board.php?bo_table=success&wr_id=8&page=3
1.libspf2 설치
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-1.0.4-10.i386.rpm
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-devel-1.0.4-10.i386.rpm
rpm -ivh libspf2*
2. spfmilter 설치
http://www.city-fan.org/ftp/contrib/mail/spfmilter-0.97-1.i386.rpm
rpm -ivh spfmilter*
#vi /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter/spfmilter.sock, T=S:8m;R:8m')
yum -y install sendmail-cf
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
ntsysv 에서 sendmail 체크 해제
/etc/rc.local 에 다음을 추가한다.
# 밀터실행
/etc/init.d/spfmilter start
# 센드메일실행
/etc/init.d/sendmail start
spamassassin 설치
http://apache.tt.co.kr/spamassassin/source/Mail-SpamAssassin-3.2.5.tar.gz
tar xvzfp Mail-SpamAssassin-3.2.5.tar.gz
yum -y install perl-Digest-SHA1
yum -y install perl-HTML-Parser
yum -y install perl-Net-DNS
perl Makefile.PL
make
make test
make install
Test
[root@ihelpers Mail-SpamAssassin-3.1.1]# spamassassin -t < sample-nonspam.txt
[root@ihelpers Mail-SpamAssassin-3.1.1]# spamassassin -t < sample-spam.txt
groupadd spamd
useradd -g spamd spamd
cp spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamassassin
chmod +x /etc/rc.d/init.d/spamassassin
vi /etc/mail/spamassassin/local.cf
header MY_ADV_NO Received-SPF=~ /fail|softfail|neutral|none/
score MY_ADV_NO 5.5
/etc/init.d/spamassassin start
참고
-------------------------------------------------------------------
sendmail → spf-milter → dnsbl(spamhaus.org) → clamav-milter → spamassassin → filter → Your mailbox
1. sendmail 데몬이 메일을 주고받습니다.
2. spf-milter가 보내는 메일서버가 정상적인 서버인지 판별합니다.
3. spamhaus.org에 보내는 메일서버가 스팸서버로 등록되어 있는지 확인합니다.
4. clamav-milter가 바이러스를 포함하고 있는 메일인지 확인합니다.
5. spamassassin이 여러가지 기준에 의거 어느정도의 스팸메일인지 점수를 매깁니다.
6. 바이러스걸린 메일이거나 spamassassin에 의해 15점 이상의 점수를 받은 메일을 삭제합니다.
7. 이 모든 과정을 거치고도 살아남은 메일이 맴버의 메일함에 도착합니다.
받아야 하는 메일임에도 도착하지 않는 경우 저에게 말씀해 주시면 확인하여, whitelist에 등록해 드리는 방향으로 하겠습니다.
지금 현재도 여러분의 서버엔 스팸이 적게는 수십통에서 많게는 수백통이
날아 들어오고 있을 것이다.
얼마전까지 저는 스팸으로 인해 스트래스를 크게 받고 있었다.
처음에는 단지 단어 필터링을 통한 스팸을 걸러내고 있었으나 이 것도 한계가 있었다.
스패머들은 매일 매일 지능화되어 특정 단어가 필터링 되면 다른 단어로 살짝 바꿔서
메일을 보내니 소용이 없었다.
예시) 비아그라 --> 비아그랑 비_0ㅏ그라
결국 강경책을 쓰기로 했다.
대부분의 스패머들은 자신의 이메일을 통해 메일을 보내지 않는다.
그런 스패머들이 있다면 정말 간이 부었다고 밖에 할 수 없을 것이다.
지구상에 보내지는 스팸메일의 90% 이상이 변조된 이메일을 사용하고 있으며,
국내에 보내지는 대부분의 스팸메일은 국내의 대형 포털의 이멜을 변조하여
보내지고 있을 것이다.
결국 변조된 이메일을 걸러낼 수 있다면 대부분의 스팸을 걸러낼 수 있다는 말이 될 것이다.
이를 위한 방법중에 하나가 SPF(Sender Policy Framework)를 통한 방법이다.
설치에 앞서 아래의 링크를 반드시 필독하기 바란다.
http://coffeenix.net/board_view.php?bd_code=1123
위의 링크는 메일의 송신측에 있어서 dns를 설정하는 방법을 다루고 있다.
자신의 dns에 spf 설정이 않되어 있다면 반드시 하도록 한다.
한국 정보보호진흥원에서는 http://www.kisarbl.or.kr/를 통해 화이트 도메인과
스팸머들의 정보를 하나로 묶어 관리하기 시작했다.
특히 중요한 화이트 도메인등록시 spf설정을 반드시 하도록 하였다.
설정이 않되어 있으면 화이트도메인 등록이 되질 않는다.
아래링크는 자세한 spfmilter 설치를 다루고 있다.
한번 읽어 보기를 바라며 여기서는 rpm 설치로 한방(?)에 끝내고자한다.
http://coffeenix.net/board_view.php?cata_code=0&bd_code=1426
1.libspf2 설치
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-1.0.4-10.i386.rpm
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-devel-1.0.4-10.i386.rpm
rpm -ivh libspf2*
2. spfmilter 설치
http://www.city-fan.org/ftp/contrib/mail/spfmilter-0.97-1.i386.rpm
rpm -ivh spfmilter*
rpm 으로 설치하게 되면 복잡한 설정이 간단하게 설치된다.
이제 마지막으로 sendmail.mc 파일에 다음을 추가한다.
#vi /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter/spfmilter.sock, T=S:8m;R:8m')
위의 /var/run/spfmilter/spfmilter.sock 부분에 주의한다. 소스설치와 rpm 설치시에
경로가 다르므로 주의하도록한다.
다음 명령을 수행한다.
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
이제 spfmilter가 부팅시 실행되도록 설정해야한다.
참고로 spfmilter는 반드시 sendmail 보다 먼저 실행되어야한다.
그러므로 ntsysv 에 sendmail이 자동실행되도록 되어 있다면 해제하기 바란다.
/etc/rc.local 에 다음을 추가한다.
# 밀터실행
/etc/init.d/spfmilter start
# 센드메일실행
/etc/init.d/sendmail start
이제 기본적인 설정은 다 되었다.
남은 것은 스팸을 어떤 것으로 걸르느냐만 남았다.
아래링크에서는 procmail 을 통해 스팸을 걸러냈지만 여기서는
스팸어세신을 통해 걸러내는 방법을 쓸 것이다.
http://coffeenix.net/board_view.php?cata_code=0&bd_code=1426
스팸어세신 설정파일인 local.cf 파일에 다음의 룰을 추가한다.
header MY_ADV_NO Received-SPF=~ /fail|softfail/
score MY_ADV_NO 5.5
이제 설치된 서버에 네이버나 한메일등에서 메일을 보내보도록한다.
메일 로그를 살펴보면 아래의 문구로 시작되는 부분을 찾을 수 있을 것이다.
Milter insert (0): header: Received-SPF: pass
메일 헤더의 Received-SPF: 다음으로 오는 부분은 확실히 알아둘 필요가 있다.
- pass : 100% 확실한 메일로 판단한 경우이다. SPF 레코드나 whitelist에 포함된 IP이다.
- fail : 메일주소를 위변조한 것으로 판단한 경우. 해당 메일은 필터링처리하면 된다.
SPF 레코드에 -all 로 설정한 경우임
- softfail : 100%는 아니지만 fail쪽에 가깝고, fail과 neutral의 중간정도에 해당한다.
SPF 레코드에
~all 로 설정한 경우임 위 사이트에서 empas.com, jobkorea.co.kr, 163.com을 제외한 대부분이 ~all로 설정되어
있으니 이 판정 상태에 대해서도 필터링해야 SPF 사용에 효과가 있다.
- neutral : 메일주소의 위변조 판단하는 것을 원치 않음을 나타낸다. 따라서 none과 같은 형태로
처리해주면 된다. SPF 레코드에 ?all 로 설정한 경우임
- none : SPF 레코드를 제공하지 않는 경우
- unknown : lookup한 결과를 알 수 없을(완벽하게 처리되지 못한) 경우
- error : lookup할 때 에러가 발생한 경우
가장 확실시되는 메일만 받고 싶다면
header MY_ADV_NO Received-SPF=~ /fail|softfail|neutral|none/
score MY_ADV_NO 5.5
위와 같이 수정하면 된다. 만일 메일을 보냈는데 받지 못했다 한다면 송신측 서버의
dns에 spf 설정이 되어 있는지 반드시 확인하기 바란다.
지금까지 spfmilter 설정을 알아보았지만 이 것도 완벽한 것은 아니다.
왜냐하면 대형포털등을 통해 서버에 스팸을 보낸다면 spfmilter는 소용이 없기 때문이다.
대형포털들에서 보내지는 메일등은 이미 spf설정이 되어있기 때문에
spfmilter는 pass시킬 것이다.
그러므로 스팸어세신이나 procmail 등을 통해 적절히 스팸단어 필터링을 겸하기바란다.
---------------------------------------------------------------------------
1.libspf2 설치
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-1.0.4-10.i386.rpm
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-devel-1.0.4-10.i386.rpm
rpm -ivh libspf2*
2. spfmilter 설치
http://www.city-fan.org/ftp/contrib/mail/spfmilter-0.97-1.i386.rpm
rpm -ivh spfmilter*
#vi /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter/spfmilter.sock, T=S:8m;R:8m')
yum -y install sendmail-cf
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
ntsysv 에서 sendmail 체크 해제
/etc/rc.local 에 다음을 추가한다.
# 밀터실행
/etc/init.d/spfmilter start
# 센드메일실행
/etc/init.d/sendmail start
spamassassin 설치
http://apache.tt.co.kr/spamassassin/source/Mail-SpamAssassin-3.2.5.tar.gz
tar xvzfp Mail-SpamAssassin-3.2.5.tar.gz
yum -y install perl-Digest-SHA1
yum -y install perl-HTML-Parser
yum -y install perl-Net-DNS
perl Makefile.PL
make
make test
make install
Test
[root@ihelpers Mail-SpamAssassin-3.1.1]# spamassassin -t < sample-nonspam.txt
[root@ihelpers Mail-SpamAssassin-3.1.1]# spamassassin -t < sample-spam.txt
groupadd spamd
useradd -g spamd spamd
cp spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamassassin
chmod +x /etc/rc.d/init.d/spamassassin
vi /etc/mail/spamassassin/local.cf
header MY_ADV_NO Received-SPF=~ /fail|softfail|neutral|none/
score MY_ADV_NO 5.5
/etc/init.d/spamassassin start
참고
-------------------------------------------------------------------
sendmail → spf-milter → dnsbl(spamhaus.org) → clamav-milter → spamassassin → filter → Your mailbox
1. sendmail 데몬이 메일을 주고받습니다.
2. spf-milter가 보내는 메일서버가 정상적인 서버인지 판별합니다.
3. spamhaus.org에 보내는 메일서버가 스팸서버로 등록되어 있는지 확인합니다.
4. clamav-milter가 바이러스를 포함하고 있는 메일인지 확인합니다.
5. spamassassin이 여러가지 기준에 의거 어느정도의 스팸메일인지 점수를 매깁니다.
6. 바이러스걸린 메일이거나 spamassassin에 의해 15점 이상의 점수를 받은 메일을 삭제합니다.
7. 이 모든 과정을 거치고도 살아남은 메일이 맴버의 메일함에 도착합니다.
받아야 하는 메일임에도 도착하지 않는 경우 저에게 말씀해 주시면 확인하여, whitelist에 등록해 드리는 방향으로 하겠습니다.
지금 현재도 여러분의 서버엔 스팸이 적게는 수십통에서 많게는 수백통이
날아 들어오고 있을 것이다.
얼마전까지 저는 스팸으로 인해 스트래스를 크게 받고 있었다.
처음에는 단지 단어 필터링을 통한 스팸을 걸러내고 있었으나 이 것도 한계가 있었다.
스패머들은 매일 매일 지능화되어 특정 단어가 필터링 되면 다른 단어로 살짝 바꿔서
메일을 보내니 소용이 없었다.
예시) 비아그라 --> 비아그랑 비_0ㅏ그라
결국 강경책을 쓰기로 했다.
대부분의 스패머들은 자신의 이메일을 통해 메일을 보내지 않는다.
그런 스패머들이 있다면 정말 간이 부었다고 밖에 할 수 없을 것이다.
지구상에 보내지는 스팸메일의 90% 이상이 변조된 이메일을 사용하고 있으며,
국내에 보내지는 대부분의 스팸메일은 국내의 대형 포털의 이멜을 변조하여
보내지고 있을 것이다.
결국 변조된 이메일을 걸러낼 수 있다면 대부분의 스팸을 걸러낼 수 있다는 말이 될 것이다.
이를 위한 방법중에 하나가 SPF(Sender Policy Framework)를 통한 방법이다.
설치에 앞서 아래의 링크를 반드시 필독하기 바란다.
http://coffeenix.net/board_view.php?bd_code=1123
위의 링크는 메일의 송신측에 있어서 dns를 설정하는 방법을 다루고 있다.
자신의 dns에 spf 설정이 않되어 있다면 반드시 하도록 한다.
한국 정보보호진흥원에서는 http://www.kisarbl.or.kr/를 통해 화이트 도메인과
스팸머들의 정보를 하나로 묶어 관리하기 시작했다.
특히 중요한 화이트 도메인등록시 spf설정을 반드시 하도록 하였다.
설정이 않되어 있으면 화이트도메인 등록이 되질 않는다.
아래링크는 자세한 spfmilter 설치를 다루고 있다.
한번 읽어 보기를 바라며 여기서는 rpm 설치로 한방(?)에 끝내고자한다.
http://coffeenix.net/board_view.php?cata_code=0&bd_code=1426
1.libspf2 설치
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-1.0.4-10.i386.rpm
wget http://www.city-fan.org/ftp/contrib/libraries/libspf2-devel-1.0.4-10.i386.rpm
rpm -ivh libspf2*
2. spfmilter 설치
http://www.city-fan.org/ftp/contrib/mail/spfmilter-0.97-1.i386.rpm
rpm -ivh spfmilter*
rpm 으로 설치하게 되면 복잡한 설정이 간단하게 설치된다.
이제 마지막으로 sendmail.mc 파일에 다음을 추가한다.
#vi /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter/spfmilter.sock, T=S:8m;R:8m')
위의 /var/run/spfmilter/spfmilter.sock 부분에 주의한다. 소스설치와 rpm 설치시에
경로가 다르므로 주의하도록한다.
다음 명령을 수행한다.
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
이제 spfmilter가 부팅시 실행되도록 설정해야한다.
참고로 spfmilter는 반드시 sendmail 보다 먼저 실행되어야한다.
그러므로 ntsysv 에 sendmail이 자동실행되도록 되어 있다면 해제하기 바란다.
/etc/rc.local 에 다음을 추가한다.
# 밀터실행
/etc/init.d/spfmilter start
# 센드메일실행
/etc/init.d/sendmail start
이제 기본적인 설정은 다 되었다.
남은 것은 스팸을 어떤 것으로 걸르느냐만 남았다.
아래링크에서는 procmail 을 통해 스팸을 걸러냈지만 여기서는
스팸어세신을 통해 걸러내는 방법을 쓸 것이다.
http://coffeenix.net/board_view.php?cata_code=0&bd_code=1426
스팸어세신 설정파일인 local.cf 파일에 다음의 룰을 추가한다.
header MY_ADV_NO Received-SPF=~ /fail|softfail/
score MY_ADV_NO 5.5
이제 설치된 서버에 네이버나 한메일등에서 메일을 보내보도록한다.
메일 로그를 살펴보면 아래의 문구로 시작되는 부분을 찾을 수 있을 것이다.
Milter insert (0): header: Received-SPF: pass
메일 헤더의 Received-SPF: 다음으로 오는 부분은 확실히 알아둘 필요가 있다.
- pass : 100% 확실한 메일로 판단한 경우이다. SPF 레코드나 whitelist에 포함된 IP이다.
- fail : 메일주소를 위변조한 것으로 판단한 경우. 해당 메일은 필터링처리하면 된다.
SPF 레코드에 -all 로 설정한 경우임
- softfail : 100%는 아니지만 fail쪽에 가깝고, fail과 neutral의 중간정도에 해당한다.
SPF 레코드에
~all 로 설정한 경우임 위 사이트에서 empas.com, jobkorea.co.kr, 163.com을 제외한 대부분이 ~all로 설정되어
있으니 이 판정 상태에 대해서도 필터링해야 SPF 사용에 효과가 있다.
- neutral : 메일주소의 위변조 판단하는 것을 원치 않음을 나타낸다. 따라서 none과 같은 형태로
처리해주면 된다. SPF 레코드에 ?all 로 설정한 경우임
- none : SPF 레코드를 제공하지 않는 경우
- unknown : lookup한 결과를 알 수 없을(완벽하게 처리되지 못한) 경우
- error : lookup할 때 에러가 발생한 경우
가장 확실시되는 메일만 받고 싶다면
header MY_ADV_NO Received-SPF=~ /fail|softfail|neutral|none/
score MY_ADV_NO 5.5
위와 같이 수정하면 된다. 만일 메일을 보냈는데 받지 못했다 한다면 송신측 서버의
dns에 spf 설정이 되어 있는지 반드시 확인하기 바란다.
지금까지 spfmilter 설정을 알아보았지만 이 것도 완벽한 것은 아니다.
왜냐하면 대형포털등을 통해 서버에 스팸을 보낸다면 spfmilter는 소용이 없기 때문이다.
대형포털들에서 보내지는 메일등은 이미 spf설정이 되어있기 때문에
spfmilter는 pass시킬 것이다.
그러므로 스팸어세신이나 procmail 등을 통해 적절히 스팸단어 필터링을 겸하기바란다.
---------------------------------------------------------------------------