본문 바로가기
서버구축 (WEB,DB)

SendMail RBL 싸이트 적용 (Spam Filtering)

by 날으는물고기 2009. 4. 18.

SendMail RBL 싸이트 적용 (Spam Filtering)

메일 서버의 구성은 다음 기능을 가지고 있습니다.

  MUA (메일 사용자 기능 : 사용자의 메일을 저장 해 두는  기능  -> POST BOX에 저장 )

  MTA ( 메일 전송 기능 : 목적지 서버로 전송 )

  MDA ( 메일 전달 기능 : 특정 사용자에게 전달)


여기서 Send mail 은 이 3가지를 모두 가지고 있는 것이 특징입니다.



가. sendmail환경 설정


1. m4 를 이용한 sendmail.cf 수정 과정

     - edit  sendmail.mc  ( Reference  2.sendmail.mc 수정 )

     - m4 sendmail.mc > /etc/sendmail.cf

    - /etc/rc.d/init.d/sendmail restart


2.  sendmail.mc 수정

  [ Korean White Domain 설정시]

     FEATURE(dnsbl, `blackholes.mail-abuse.org', `Rejected - see http://www.mail-abuse.org/rbl/')dnl
     FEATURE(dnsbl, `spamlist.or.kr', `Rejected - see http://www.kisarbl.or.kr/')dnl


   [Spam Filtering 해외 블랙 도메인 설정시]

     FEATURE(`dnsbl', `relays.ordb.org', `"Rejected due to Open Relay see  http://www.ordb.org/lookup/?host=" $& clientaddr} " for more information"')dnl
     FEATURE(`dnsbl', `sbl.spamhaus.org', `"Rejected due to Spamhaus listing see     http://www.abuse.net/sbl.phtml?IP=" $&{clientaddr} " for more information"')dnl 


  [To stop accepting E-mail from unresolvable domains ]



  [ Perpormance]

    define(`confTO_CONNECT', `1m')dnl
    define(`confTO_IDENT', `0')dnl
    define(`confTO_COMMAND', `2m')dnl\


   [ sudden mail flood ]

    define(`confMAX_DAEMON_CHILDREN', 20)dnl
    define(`confQUEUE_LA', `18')dnl
    define(`confREFUSE_LA', `24')dnl



나.  Sendmail 구동 환경 파일 수정

     1. access.db 와 access 수정

         - access.db 는 실제 메일을 전송하는 과정에서 전송을 할지 말지

            전달할 경우에 대한 정의를 하는 것입니다. 아래 예제를 참고 하면 됩니다.

         - access 파일을 수정후 make access.db 라는 명령으로 access.db를 업데이트 한다.

         - sendmail 데몬을 리로딩한다.


     참고 : relay-domains 설정:
        relay-domains 파일은 가장 단순하게  relay를 제어하고 싶을 경우 사용하는 파일이다. 

        access.db를 사용하여  relay 컨트롤을 수행할 경우라면 relay-domains는 설정할 필요가  없다.


     2. Configure access (/etc/mail/access)

     #> cat /etc/mail/access
         # Check the /usr/share/doc/sendmail/README.cf file for a description
         # of the format of this file. (search for access_db in that file)
         # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
         # package.
         # by default we allow relaying from localhost...
         localhost.localdomain           RELAY  # 내부에서 요청 된것은 모두 전달 한다.
         localhost                       RELAY       #  sendmail의 내부 메커니즘은 로컬 루핑을 돌리면서 전송되도록 되어있서
                       RELAY       # 이 3라인은 지우면  외부로 전달 혹은 전송이 되지 않을 수 있습니다.

         #외부 서버에 대한 Relay 설정

         192.168.0.                      RELAY    # 로컬 사설망에서 요청된 메일은 모두 전달 한다.
         www.goople.co.kr           RELAY     # 웹서버에서 메일 전송을 요청시 전달 한다.

         #외부 서버에서 수신받을 도메인 설정
         goople.co.kr                   OK        #  XXX@goople.co.kr 와 같은 goople.co.kr 도메인의  메일을 받아 들인다.


       # 메 일중 반송할 규칙을 설정한다.

        202.181.196.                    REJECT

        friskycheese.com                REJECT
        From:elvisisthebomb.com         REJECT
        From:friskycheese.com           REJECT



1. http://www.revsys.com/writings/quicktips/sendmail-mc.html

2. http://myinfo.inempire.com/board/upload/technic/Linux/sendmail%208.12.8install.pdf

3. http://myhome.naver.com/tae7313/unix/unix-25.html

4. http://www.neox.net/cgi-bin/myform?cmd=A_read&bbsdb=tech&lang=-1&anum=59&page=1&t=&order=0&stype=0&ctype=0&cond=0&catid=5&key1=&sdetail=\

5. http://user.chol.com/~laday/solaris/sendmail.html

사용자 삽입 이미지

- Qmail 일 경우

var/qmail/rc.smtp(메일 서버 run 파일)
= 대체적으로 /var/qmail/supervise/qmail-smtpd 안의 run.sh

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/rblsmtpd -b -r spamlist.or.kr /var/qmail/bin/qmail-smtpd 2>&1

- Sendmail 일 경우

첫번째 방법: sendmail(8.9.x) - sendmail.cf 수정

# DNS based IP address spam list spamlist.or.kr
R$* $: $&{client_addr}
R::ffff:$-.$-.$-.$- $: $(host $4.$3.$2.$1.spamlist.or.kr. $: OK $)
R$-.$-.$-.$- $: $(host $4.$3.$2.$1.spamlist.or.kr. $: OK $)
R$+ $#error $@ 5.7.1 $: "550 Mail from " $&{client_addr} " refused by kisarbl site kisarbl.or.kr”

두번째 방법 : sendmail(8.10.x) - sendmail.mc 추가

FEATURE(dnsbl, `blackholes.mail-abuse.org', `Rejected - see http://www.mail-abuse.org/rbl/')dnl

FEATURE(dnsbl, `spamlist.or.kr', `Rejected - see http://www.kisarbl.or.kr/')dnl


시작 > 프로그램 > Microsoft Exchange > System Manager 선택
사용자 삽입 이미지
서버 > 서버명 > 프로토콜 > SMTP > Default SMTP Virtual Server 선택 후 마우스 오른쪽을 눌러서 등록정보 선택
일반탭에서 IP주소영역의 고급클릭
사용자 삽입 이미지
고급정보에서 편집를 선택
구분정보에서 IP 주소의 지정하지 않은 모든 (IP)를 선택하면 IP리스트가 나오는데 여기서 받는 메일 서버의 IP 선택 연결 필터 적용 체크한 후 확인
사용자 삽입 이미지
전역설정 > 메시지배달 선택 후 마우스 오른쪽을 클릭하여 등록정보 선택
메시지 배달 속성에서 연결 필터링 탭을 선택 차단 목록 서비스 구성에서 추가를 클릭
연결 필터 규칙정보에서 표시이름, 공급자의 DNS 접미사를 작성
예)표시이름 : KISARBL
    공급자의 DNS 접미사 : spamlist.or.kr

위와 같이 작성 후 확인을 선택하시면 모든 설정이 완료됩니다.

출처 :  http://www.spamhaus.org


How to use the SBL

The Spamhaus Block List ("SBL") can be used by almost all modern mail servers, by setting your mail server's anti-spam DNSBL feature (sometimes called "Blacklist DNS Servers" or "RBL servers") to query sbl.spamhaus.org.

Use of the SBL is free for individuals operating small mail servers as long as your email traffic is low. Commercial users, corporate networks and ISPs need to purchase a yearly subscription to use the service: see DataFeed.

For information on how to configure your mail server to use sbl.spamhaus.org please refer to your mail server documentation/manuals or ask your mail server developer. With so many different mail servers in use we can not offer technical help with setting up the SBL.

DNSBL Queries

DNSBL Zone to Query Returns Contains
sbl.spamhaus.org Direct UBE sources, verified spam services and ROKSO spammers
xbl.spamhaus.org Illegal 3rd party exploits, including proxies, worms and trojan exploits
sbl-xbl.spamhaus.org Combined zone to reduce queries
Includes both SBL and XBL zones

We recommend you use sbl.spamhaus.org together with xbl.spamhaus.org, as the SBL and XBL block different spam sources. To save you having to query two separate DNSBL zones there is a special combined "SBL+XBL" zone, sbl-xbl.spamhaus.org, which contains the complete SBL and XBL data (we recommend you use this combined zone), to use it, simply set your mail server's DNSBL check to query sbl-xbl.spamhaus.org only.

Not just for connection queries...

In addition to checking the IPs of the connecting servers against the SBL, you can significantly boost your spam catch rate by also scanning the email body of any mails that get past SBL/XBL looking for host names of URLs (web sites) advertised in spams, and checking the IPs of those hosts, and their names servers, against the SBL. This is because the SBL lists the IPs of spammers' websites in addition to their mail servers. This feature ("URIBL_SBL") is available in SpamAssassin 3.0, and code to do this is also available as a sendmail milter from here.

Data Feed: Zone Transfers (rsync) for Corporate networks & ISPs

For corporate users and
Internet Service Providers Spamhaus provides a dedicated Data Feed service which transfers the Spamhaus DNSBL zones to a local DNS server on your network and keeps the zones synchronised every 30 minutes. To submit an application for this service see: Data Feed Application Form.

Testing your SBL Setup

Once you have set up your mail server to use sbl.spamhaus.org, you can test to see if the SBL blocking is working by sending an email (any email) to: nelson-sbl-test@crynwr.com (you must send the email from the mail server which you wish to test). The Crynwr system robot will answer you to tell you if your server is correctly blocking SBL-listed IPs or not.