(https://www.kisarbl.or.kr)
< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Postfix 2.6.2) 설정변경 5 2. 스팸차단확인 5 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 7 1. 시스템환경및프로그램상세내역 8 2. RBL 사이트회원가입 8 2.1 RBL 사이트회원가입신청 8 2.2 RBL 다운로드서버정보등록 10 3. RSYNC 설치및활용 12 3.1. RSYNC 설치 12 3.2. RSYNC 다운로드테스트 13 4. RBLDNSD 설치 15 4.1. RBLDNSD 다운로드및설치 15 4.2. RBLDNSD 실행 16 4.3. RBL lookup 테스트 17 4.4. 메일서버 (Postfix 2.6.2) 설정변경 18 4.5. 스팸차단테스트 19
Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA) 에서관리ㆍ운영하여무료로제공하고있습니다. 국내 외로부터스팸정보를실시간으로취합하고이를다양한기준에따라분석한결과, 스팸전송에관련된것으로확인된 IP를리스트로생성하여 1시간단위로제공합니다. 실시간스팸차단리스트 (RBL) 를이용하면수신되는모든이메일의발송IP 확인을통해스팸여부를판단하여즉각차단하므로메일서버등자원의불필요한소모를방지할수있습니다. 실시간스팸차단리스트 (RBL) 간편설정은이메일수신량이 1일 10만통이하인곳에서사용이적합하며, 이메일이수신될때마다한국인터넷진흥원 RBL서버에직접질의하여스팸여부를확인합니다. 별도로소프트웨어를설치할필요가없고, 메일서버가 RBL 서버를참조하도록설정하여간편하게이용할수있습니다. 본매뉴얼은실시간스팸차단리스트 (RBL) 를이용하여스팸메일수신을차단하는방법을소개합니다.
Ⅱ. KISA-RBL 참조서비스 ( 간편설정 ) 실시간스팸차단리스트 (RBL) 간편설정은이메일수신량이 1일 10만통이하인곳에서사용이적합하며, 이메일이수신될때마다한국인터넷진흥원 RBL서버에직접질의하여스팸여부를확인합니다. 별도로소프트웨어를설치할필요가없고, 메일서버의설정파일에한줄의옵션을추가하면메일서버가 RBL서버를참조하도록변경하여간편하게이용할수있습니다. 단, 전체 3등급중에서 1등급에해당하는 RBL만제공되므로, 보다많은스팸메일을차단하거나자신의정책에맞게 RBL을선택적으로사용하고자하는경우에는 RBLDNSD 이용방법을참고합니다.
1. 메일서버 (Postfix 2.6.2) 설정변경다음과같이 Postfix의설정파일인 main.cf 파일을편집하여옵션을추가합니다. 추가라인은어느곳에두어도상관이없으며, spamlist.or.kr RBL 베이스를가리키도록합니다. # cd /etc/postfix # vi main.cf <main.cf 파일의내용중에서 > smtpd_sender_restrictions = reject_rbl_client spamlist.or.kr ( 라인추가 ) 메일서버설치방법에따라 main.cf 파일위치가달라질수있습니다. 다음과같이 Postfix 데몬을재시작한후, 서비스가정상적으로실행중인지와 25번포트가정상적으로열려있는지확인합니다. # /usr/sbin/postfix stop ( 중지 ) # /usr/sbin/postfix start ( 시작 ) 2. 스팸차단확인간편설정이적용된메일서버의메일로그에서다음과같이스팸차단여부를확인할수있습니다. 61.x.x.83 IP에서발송된메일이실시간스팸차단리스트 (RBL) 에의하여차단된내용을보여줍니다. # cd /var/log # vi maillog <maillog 내용중에서 > Aug 19 11:26:37 spf postfix/smtpd[16775]: NOQUEUE: reject: RCPT from unknown[61.x.x.83]: 554 5.7.1 Service unavailable; Client host [61.x.x.83] blocked using spamlist.or.kr; 'www.kisarbl.or.kr'; from=<tka@xxxx.co.kr> to=<rblfilter_test@x.kr> proto=esmtp helo=<mail.xx.kr>
아래는스팸리스트에등록된 61.x.x.83 IP에서메일을발송하였을때반송된메일이며, 실시간스팸차단리스트 (RBL) 에의하여차단된것을확인할수있습니다.
Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 내부시스템에 RBLDNS 데몬을설치하여이용하는방법이며, 매시간업데이트된 RBL 파일을다운로드받아메일서버에반영하고, 이메일수신시마다자체적으로 RBL을대조하여스팸메일을차단하는방법입니다. 선행작업으로프로그램 (RSYNC, RBLDNS Daemon) 을설치하고, 실시간스팸차단리스트 (RBL) 를이용할수있도록메일서버에필요한설정을해야합니다. KISA에서 3등급으로나누어제공하는 RBL을자신의정책에맞게선택하거나수정하여사용할수있으며, 실시간스팸차단리스트 (RBL) 간편설정방법에비해대용량메일처리가용이합니다.
1. 시스템환경및프로그램상세내역 본매뉴얼은, 운영체제 CentOS-5.3을기준으로작성되었으며, 상세버전은아래와같습니다. 프로그램 상세버전 운영체제 CentOS-5.3 (kernel - 2.6.18) 메일서버 Postfix 2.6.2 스팸리스트다운로드프로그램 rsync 3.0.6 RBLDNS Daemon rbldnsd 0.996b 2. 실시간스팸차단리스트 (RBL) 사이트회원가입실시간스팸차단리스트 (RBL) 를다운로드하기위해서는사전에회원가입을해야합니다. 가입신청완료후, KISA 운영자에의해가입이승인되어야최종적으로가입이완료됩니다. 가입승인후, 다운로드받을서버의 IP와호스트명을등록하며, 등록된서버에서만스팸리스트 (RBL) 를다운로드받을수있습니다. 회원가입은스팸리스트 (RBL) 를다운로드받기위해서버정보를등록하는곳이며, 화이트도메인등록신청과는무관합니다. 2.1 회원가입신청회원가입은 [https://www.kisarbl.or.kr > KISA-RBL 참조서비스 > RBLDNSD 이용 > 회원가입 ] 에서등록신청합니다.
아래와같이회원가입정보를입력합니다. 회원가입신청이완료되면, 아래와같이팝업창이나타납니다. o 운영자승인실시간스팸차단리스트 (RBL) 운영자가가입승인을완료하면, 등록시입력하였던이메일주소로가입완료통보메일이발송됩니다. 회원가입승인을위해서는, 등록신청정보에허위내용이없어야하며, 등록신청한사이트에불법적인내용 ( 도박, 대출, 성인광고등 ) 이없어야합니다. 이러한사유로회원가입승인이유보되는경우에는운영자 (ksrt@kisa.or.kr) 에게문의하시기바랍니다.
o 회원로그인 다음과같이 [https://www.kisarbl.or.kr > KISA-RBL 참조서비스 > RBLDNSD 이용 > 회원로그인 ] 에서로그인합니다. 2.2 다운로드용서버정보등록 KISA 승인후, 로그인하여아래 [ 그림3-5] 와같이회원정보수정페이지에서실시간스팸차단리스트 (RBL) 를다운로드받을서버의 IP주소와호스트명 ( 별칭 ) 을등록합니다. 아래는 'IP' 와 ' 호스트 ' 가추가된화면이며, ' 전송상태 ' 는정상적으로다운로드가되었는지나타나는항목입니다.
위그림 [3-6] 과같이 'IP' 를클릭하면, 아래와같이스팸리스트다운로드로그정보를확인할수있는팝업창이나타납니다.
3. RSYNC 설치및활용 RSYNC는 KISA에서제공하는스팸리스트를다운받기위하여사용하는프로그램이며, 다음은 RSYNC 설치와활용법을설명합니다. KISA에회원가입후등록한서버에서만 RSYNC 를통하여스팸리스트를다운로드할수있습니다. 3.1. RSYNC 설치 wget 명령어를사용하여 rsync 공식배포사이트에서 rsync 프로그램을다운로드하거나, 홈페이지에서받을수있습니다. # cd /home/user/ # wget http://www.samba.org/ftp/rsync/rsync-3.0.6.tar.gz --14:25:48-- http://www.samba.org/ftp/rsync/rsync-3.0.6.tar.gz Resolving www.samba.org... 216.83.154.106 Connecting to www.samba.org 216.83.154.106 :80... connected. HTTP request sent, awaiting response... 200 OK Length: 778927 (761K) [application/x-gzip] Saving to: `rsync-3.0.6.tar.gz' 100%[================================>] 778,927 463K/s in 1.6s 14:25:52 (463 KB/s) - `rsync-3.0.6.tar.gz' saved [778927/778927] 아래와같이 gunzip, tar 명령어를이용하여파일압축을해제하고, make 명령어를통하여소스코드를컴파일합니다. # cd /home/user/ # gunzip rsync-3.0.6.tar.gz # tar xvf rsync-3.0.6.tar # cd /home/user/rsync/ #./configure # make # make install
3.2. RSYNC 다운로드테스트 o RSYNC 실행다음과같이명령어를사용하여스팸리스트 (RBL) 파일을다운로드하며, 성공할경우에는아래와같은메시지가나타납니다. #cd /download #/usr/local/bin/rsync -avz www.kisarbl.or.kr::spamlist /download receiving file list... done./ spamlist1.txt spamlist2.txt spamlist3.txt sent 153 bytes received 1990046 bytes 265359.87 bytes/sec total size is 18021047 speedup is 9.05 실시간스팸차단리스트 (RBL) 홈페이지에서회원가입하여서버정보를입력하지않았다면, 아래와같이오류메시지가나타나며 2.1을참고하여다시다운로드테스트를진행합니다. #/usr/local/bin/rsync -avz www.kisarbl.or.kr::spamlist /download @ERROR: access denied to spamlist from unknown (2.3.4.5) rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6] 스팸리스트를정상적으로다운로드하였다면, 다음과같이다운로드된스팸리스트를확인합니다. # cd /download # ls -al spamlist* -rw-r--r-- 1 1003 wheel 3019047 7월 22 20:07 spamlist1.txt -rw-r--r-- 1 1003 wheel 1379735 7월 22 20:07 spamlist2.txt -rw-r--r-- 1 1003 wheel 1585802 7월 22 20:07 spamlist3.txt
다음과같이다운로드한스팸리스트파일내용을확인할수있습니다. # more spamlist3.txt <spamlist 파일의내용중에서 > :127.0.0.2 123.123.124.2 'www.kisarbl.or.kr' 123.123.123.0/24 'www.kisarbl.or.kr' 234.234.234.0/24 'www.kisarbl.or.kr' spamlist 파일의내용은일반적인 RBL 파일의형태와동일하며, 좌측에는개별 IP 또는대역이명시되고, 우측은 ( 공백구분 ) 'www.kisarbl.or.kr' 등과같이 RBL을제공하는사이트의주소가표기됩니다. o 스팸리스트다운로드 (crontab 이용 ) 다음은유닉스시스템에크론텝 (crontab) 을이용한다운로드스크립트를설정하는방법을설명합니다. 실시간스팸차단리스트 (RBL) 는매시간스팸리스트가갱신되므로 crontab을이용하여업데이트된스팸리스트를다운로드하여반영을해야합니다. 제때스팸리스트를반영하지않아스팸리스트에서제외된 IP가차단되는경우가발생할수있습니다. 아래와같이 crontab 편집모드로들어간후 rsync 다운로드명령어를삽입합니다. # crontab -e 00 * * * * /usr/local/bin/rsync -avz www.kisarbl.or.kr::spamlist /download 매시간정각 rsync 명령어가실행되어지정한경로에스팸리스트가다운로드됩니다.
4. RBLDNSD 설치 o RBLDNSD 란? 유닉스용 DNS 데몬으로일반적으로알고있는네임서버 (DNS) 와작동원리는같으며, 스팸메일차단전용으로 RBL DNS 데몬을메일서버에설치하여사용합니다. RBLDNSD 이용은일일메일수신량이 10만통이상인경우직접설치하는것을권장하며, 스팸리스트를자신의정책에맞게선택하거나수정하여사용할수있습니다. 4.1. RBLDNSD 다운로드및설치배포사이트를직접방문하거나, 아래와같이 wget 명령어를이용하여최신버전의 RBLDNSD 프로그램을다운로드합니다. # cd /home/user/ # wget http://www.corpit.ru/mjt/rbldnsd/rbldnsd_0.996b.tar.gz --15:17:07-- http://www.corpit.ru/mjt/rbldnsd/rbldnsd_0.996b.tar.gz Resolving www.corpit.ru... 81.13.33.159 Connecting to www.corpit.ru 81.13.33.159 :80... connected. HTTP request sent, awaiting response... 200 OK Length: 113128 (110K) [application/x-gzip] Saving to: `rbldnsd_0.996b.tar.gz' 100%[==============================>] 113,128 70.7K/s in 1.6s 15:17:11 (70.7 KB/s) - `rbldnsd_0.996b.tar.gz' saved [113128/113128]
다음같이다운로드한프로그램을압축해제하고소스코드를컴파일하면 rbldnsd 실행파일이생성됩니다. # cd /home/user/ # gunzip rbldnsd_0.996b.tar.gz # tar xvf rbldnsd_0.996b.tar # cd /home/user/rbldnsd-0.996b/ #./configure # make 4.2. RBLDNSD 실행아래와같이명령어를이용하여 rbldnsd 데몬을실행합니다. # cd /home/user/rbldnsd-0.996b/ #./rbldnsd -b 127.0.0.1/53 -p /tmp/rbldnsd.pid -l /tmp/rbldnsd.log \ kisarbl:ip4set:/download/spamlist1.txt "ps -ef grep rbldnsd" 검색후 kill -9 PID 통하여 RBLDNSD 실행중지 RBLDNSD 실행과정에서아래와같은에러메시지가나타나는경우에는 'rbldns' 유저를생성하고다시실행합니다. rbldnsd: unknown user `rbldns' # useradd rbldns
< RBLDNSD 실행옵션설명 > -b : 서버 IP 와포트지정 동일머신에 DNS 와함께운영하면다른포트 ( 예 : 5353) 를사용합니다. -p : RBLDNSD 프로세스 PID 지정 -l : 로그파일을지정 -h : rbldnsd 도움말 kisarbl:ip4set:/download/spamlist1.txt RBL 베이스주소와 IPv4 를사용, 스팸리스트파일을지정합니다. RBL 베이스란 RBL 룩업을수행하는기본주소이며, KISA 에서제공하는기본 RBL 베이스는 spamlist.or.kr 입니다. 로컬에서 RBLDNSD 를사용할경우임의문자 ( 예 : kisarbl) 를사용하여도무방하지만, 메일서버설정값과같은이름으로지정해줘야합니다. (4.4 참고 ) RBLDNSD 가정상적으로실행된경우에는아래와같은메시지가나타납니다. rbldnsd: listening on 127.0.0.1/53 rbldnsd: ip4set:/download/spamlist1.txt: 20090715 051918: e32/24/16/8=2/132/0/0 rbldnsd: zones reloaded, time 0.0e/0.0u sec rbldnsd: rbldnsd version 0.996b (29 Mar 2008) started (1 socket(s), 1 zone(s)) 메일 MTA 가제일먼저 RBLDNSD 를참조하도록 resolv.conf 파일을편집합니다. 상단에 RBLDNSD 데몬실행시입력한 IP 주소를추가합니다. # vi /etc/resolv.conf nameserver 127.0.0.1 or 서버 IP (RBLDNS 데몬실행시지정한 IP) nameserver ( 기존 DNS IP) 4.3. RBL lookup 테스트 RBLDNSD 는일반적인네임서버 (DNS) 와달리특정 IP의 RBL 리스트등재여부만을확인하기때문에 RBL lookup만지원합니다. RBL lookup이란, 기존의 DNS 표준에크게어긋나지않게약간변형된형태로 DNS 질의를합니다. 일반적인 DNS lookup 은
'nslookup hostname.domain.com' 과같은형식으로질의를하지만, RBLDNSD에서는 IP주소를이용, 역순으로질의합니다. RBLDNSD 가정상동작하는지확인하기위하여샘플 spamlist1.txt 를생성하고, RBLDNSD 실행방법을참고하여다시실행합니다. #vi spamlist1.txt :127.0.0.2 (DNS A 레코드반환값 : 127.0.0.2) 1.2.3.4 www.kisarbl.or.kr' 211.212.211.33 www.kisarbl.or.kr' 다음은 nslookup 명령어를이용하여정상적으로응답하는지확인합니다. 질의하고자하는 IP가 1.2.3.4이면, 역순으로 4.3.2.1과 RBLDNSD 실행시지정했던 RBL 베이스 kisarbl 을입력합니다. 아래와같이나타나면스팸리스트에등재되어있는상태를의미하며응답값이없으면등재되어있지않은상태를의미합니다. # nslookup 4.3.2.1.kisarbl ( 질의하려는 IP를역순으로입력한후, RBL 베이스를입력 ) Server: 127.0.0.1 Address: 127.0.0.1#53 Name: 4.3.2.1.kisarbl Address: 127.0.0.2 (127.0.0.2 리턴 1.2.3.4 IP가 RBL에등재되었음을의미 )
다음은 dig 명령어를사용하여확인합니다. # dig 4.3.2.1.kisarbl ; <<>> DiG 9.3.4-P1 <<>> 4.3.2.1.kisarbl ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 784 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;4.3.2.1.kisarbl. IN A ;; ANSWER SECTION: 4.3.2.1.kisarbl. 2100 IN A 127.0.0.2 (A 레코드 127.0.0.2 리턴 1.2.3.4 IP가 RBL에등재되었음을의미 )
4.4. 메일서버 (Postfix 2.6.2) 설정변경다음과같이 Postfix의설정파일인 main.cf 파일을편집하여라인을추가합니다. 추가라인의위치에따라정상적으로동작하지않는경우가있으므로, 최상단에기입하며, RBLDNSD 실행시지정한 'kisarbl' RBL 베이스를가리키도록합니다. # cd /etc/postfix # vi main.cf <main.cf 파일의내용중에서 > smtpd_sender_restrictions = reject_rbl_client kisarbl ( 라인추가 ) 다음과같이 Postfix 데몬을재시작한후, 서비스가정상적으로실행중인지와 25번포트가정상적으로열려있는지확인합니다. # /usr/sbin/postfix stop ( 중지 ) # /usr/sbin/postfix start ( 시작 ) 4.5. 스팸차단테스트지금까지 RBLDNSD 를이용하여스팸차단방법을설명하였습니다. 다음은실제도메인과, 공인 IP를이용하여스팸차단테스트내용을보여줍니다. RBLDNSD 가설치된서버에 spamlist1.txt 에공인 IP를추가하고, 공인 IP서버에서 telnet 명령어를이용하여 RBLDNSD 가적용된메일서버에메일송신하였으나차단된것을확인할수있습니다. #vi spamlist1.txt :127.0.0.2 61.x.x.83 www.kisarbl.or.kr' ( 공인 IP)
위테스트결과 RBLDNSD 는정상적으로 spamlist1.txt 를참고하여스팸IP를차단하고있음을확인할수있습니다.