< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Sendmail ) 설정변경 5 2. 스팸차단테스트 5 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 7 1. 시스템환경및프로그램상세내역 8 2.

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Sendmail ) 설정변경 5 2. 스팸차단테스트 5 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 7 1. 시스템환경및프로그램상세내역 8 2."

Transcription

1 (

2 < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Sendmail ) 설정변경 5 2. 스팸차단테스트 5 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 7 1. 시스템환경및프로그램상세내역 8 2. RBL 사이트회원가입 RBL 사이트회원가입신청 RBL 다운로드용서버정보등록 RSYNC 설치및활용 RSYNC 설치 RSYNC 다운로드테스트 RBLDNSD 설치 RBLDNSD 다운로드및설치 RBLDNSD 실행 RBL lookup 테스트 메일서버 (Sendmail ) 설정변경 스팸차단테스트 19

3 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA) 에서관리ㆍ운영하여무료로제공하고있습니다. 국내 외로부터스팸정보를실시간으로취합하고이를다양한기준에따라분석한결과, 스팸전송에관련된것으로확인된 IP를리스트로생성하여 1시간단위로제공합니다. 실시간스팸차단리스트 (RBL) 를이용하면수신되는모든이메일의발송IP 확인을통해스팸여부를판단하여즉각차단하므로메일서버등자원의불필요한소모를방지할수있습니다. 실시간스팸차단리스트 (RBL) 간편설정은이메일수신량이 1일 10만통이하인곳에서사용이적합하며, 이메일이수신될때마다한국인터넷진흥원 RBL서버에직접질의하여스팸여부를확인합니다. 별도로소프트웨어를설치할필요가없고, 메일서버가 RBL 서버를참조하도록설정하여간편하게이용할수있습니다. 본매뉴얼은실시간스팸차단리스트 (RBL) 를이용하여스팸메일수신을차단하는방법을소개합니다.

4 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 실시간스팸차단리스트 (RBL) 간편설정은이메일수신량이 1일 10만통이하인곳에서사용이적합하며, 이메일이수신될때마다한국인터넷진흥원 RBL서버에직접질의하여스팸여부를확인합니다. 별도로소프트웨어를설치할필요가없고, 메일서버의설정파일에한줄의옵션을추가하면메일서버가 RBL서버를참조하도록변경하여간편하게이용할수있습니다. 단, 전체 3등급중에서 1등급에해당하는 RBL만제공되므로, 보다많은스팸메일을차단하거나자신의정책에맞게 RBL을선택적으로사용하고자하는경우에는 RBLDNSD 이용방법을참고합니다.

5 1. 메일서버 (Sendmail ) 설정변경 Sendmail 에서 RBL 을참조하기위해서 '.mc' 파일을수정하며다음과같이운영체제에맞는파일을선택한후, '.mc' 파일을편집합니다. sendmail.mc' 파일로존재하는경우에는해당파일을수정합니다. # cd /home/sendmail /cf/cf # vi generic-solaris.mc <generic-solaris.mc 파일내용중에서 > divert(0)dnl VERSIONID(`$Id: generic-solaris.mc,v /06/27 21:46:30 gshapiro Exp $') OSTYPE(solaris2)dnl DOMAIN(generic)dnl FEATURE(dnsbl, `spamlist.or.kr', `Rejected - see ( 라인추가 ) MAILER(local)dnl MAILER(smtp)dnl 메일서버설치방법에따라.mc파일위치가달라질수있습니다. 추가되는내용은위의 [ 그림2-2] 와같이위치해야 cf 파일생성시에러가발생하지않습니다. 실시간스팸차단리스트 (RBL) 를참조하기위해서 RBL 베이스를 'spamlist.or.kr' 로지정합니다. 'Rejected ~' 부분은, 메일전송이차단되어전송이실패할때반송메일에표시되며, 참조하는 RBL의사이트주소등을명시하면됩니다. 다음 [ 그림2-3] 과같이 m4 매크로를이용하여 'generic-solaris.mc' 파일의변경된내용을 'sendmail.cf' 파일에반영합니다. # cd /home/sendmail /cf/cf # m4../m4/cf.m4 generic-solaris.mc > /etc/mail/sendmail.cf

6 다음과같이 Sendmail 데몬을재시작한후, 서비스가정상적으로실행중인지와 25번포트가정상적으로열려있는지확인합니다. # /etc/init.d/sendmail stop ( 중지 ) # /etc/init.d/sendmail start ( 시작 ) # ps -ef grep sendmail (Sendmail 프로세스확인 ) # netstat -an grep 25 ( 포트가열려있는지확인 ) 2. 스팸차단테스트간편설정이적용된메일서버의메일로그에서다음과같이스팸차단여부를확인할수있습니다. 61.x.x.83 IP에서발송된메일이실시간스팸차단리스트 (RBL) 에의하여차단된내용을보여줍니다. # cd /var/log # vi syslog <syslog 내용중에서 > Aug 20 23:51:58 ***.kr sm-mta[1134]: [ID mail.info] NOQUEUE: dns 83.x.x.61.spamlist.or.kr. => Aug 20 23:51:58 ***.kr sm-mta[1134]: [ID mail.notice] ruleset=check_relay, arg1=[61.x.x.83], arg2= , relay=[61.x.x.83], reject= Rejected - see

7 아래는스팸리스트에등록된 61.x.x.83 IP에서메일을발송하였을때반송된메일이며, 실시간스팸차단리스트 (RBL) 에의하여차단된것을확인할수있습니다.

8 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 내부시스템에 RBLDNS 데몬을설치하여이용하는방법이며, 매시간업데이트된 RBL 파일을다운로드받아메일서버에반영하고, 이메일수신시마다자체적으로 RBL을대조하여스팸메일을차단하는방법입니다. 선행작업으로프로그램 (RSYNC, RBLDNS Daemon) 을설치하고, 실시간스팸차단리스트 (RBL) 를이용할수있도록메일서버에필요한설정을해야합니다. KISA에서 3등급으로나누어제공하는 RBL을자신의정책에맞게선택하거나수정하여사용할수있으며, 실시간스팸차단리스트 (RBL) 간편설정방법에비해대용량메일처리가용이합니다.

9 1. 시스템환경및프로그램상세내역 본매뉴얼은, 운영체제 Solaris 10을기준으로작성되었으며, 상세버전은아래와같습니다. 프로그램 상세버전 운영체제 Solaris 10 (SunOS 5.10) 메일서버 Sendmail 스팸리스트다운로드프로그램 rsync RBLDNS Daemon rbldnsd 0.996b 2. 실시간스팸차단리스트 (RBL) 사이트회원가입실시간스팸차단리스트 (RBL) 를다운로드하기위해서는사전에회원가입을해야합니다. 가입신청완료후, KISA 운영자에의해가입이승인되어야최종적으로가입이완료됩니다. 가입승인후, 다운로드받을서버의 IP와호스트명을등록하며, 등록된서버에서만스팸리스트 (RBL) 를다운로드받을수있습니다. 회원가입은스팸리스트 (RBL) 를다운로드받기위해서버정보를등록하는곳이며, 화이트도메인등록신청과는무관합니다. 2.1 회원가입신청회원가입은 [ > KISA-RBL 참조서비스 > RBLDNSD 이용 > 회원가입 ] 에서등록신청합니다.

10 아래와같이회원가입정보를입력합니다. 회원가입신청이완료되면, 아래와같이팝업창이나타납니다. o 운영자승인실시간스팸차단리스트 (RBL) 운영자가가입승인을완료하면, 등록시입력하였던이메일주소로가입완료통보메일이발송됩니다. 회원가입승인을위해서는, 등록신청정보에허위내용이없어야하며, 등록신청한사이트에불법적인내용 ( 도박, 대출, 성인광고등 ) 이없어야합니다. 이러한사유로회원가입승인이유보되는경우에는운영자 에게문의하시기바랍니다.

11 o 회원로그인 다음과같이 [ > KISA-RBL 참조서비스 > RBLDNSD 이용 > 회원로그인 ] 에서로그인합니다. 2.2 다운로드용서버정보등록 KISA 승인후, 로그인하여아래 [ 그림3-5] 와같이회원정보수정페이지에서실시간스팸차단리스트 (RBL) 를다운로드받을서버의 IP주소와호스트명 ( 별칭 ) 을등록합니다. 아래는 'IP' 와 ' 호스트 ' 가추가된화면이며, ' 전송상태 ' 는정상적으로다운로드가되었는지나타나는항목입니다.

12 위그림 [3-6] 과같이 'IP' 를클릭하면, 아래와같이스팸리스트다운로드로그정보를확인할수있는팝업창이나타납니다.

13 3. RSYNC 설치및활용 RSYNC는 KISA에서제공하는스팸리스트를다운받기위하여사용하는프로그램이며, 다음은 RSYNC 설치와활용법을설명합니다. KISA에회원가입후등록한서버에서만 RSYNC 를통하여스팸리스트를다운로드할수있습니다 RSYNC 설치 wget 명령어를사용하여 rsync 공식배포사이트에서 rsync 프로그램을다운로드하거나, 홈페이지에서받을수있습니다. # cd /home/user/ # wget :25: Resolving Connecting to :80... connected. HTTP request sent, awaiting response OK Length: (761K) [application/x-gzip] Saving to: `rsync tar.gz' 100%[================================>] 778, K/s in 1.6s 14:25:52 (463 KB/s) - `rsync tar.gz' saved [778927/778927] 아래와같이 gunzip, tar 명령어를이용하여파일압축을해제하고, make 명령어를통하여소스코드를컴파일합니다. # cd /home/user/ # gunzip rsync tar.gz # tar xvf rsync tar # cd /home/user/rsync/ #./configure # make # make install

14 3.2. RSYNC 다운로드테스트 o RSYNC 실행다음과같이명령어를사용하여스팸리스트 (RBL) 파일을다운로드하며, 성공할경우에는아래와같은메시지가나타납니다. #cd /download #/usr/local/bin/rsync -avz /download receiving file list... done./ spamlist1.txt spamlist2.txt spamlist3.txt sent 153 bytes received bytes bytes/sec total size is speedup is 9.05 실시간스팸차단리스트 (RBL) 홈페이지에서회원가입하여서버정보를입력하지않았다면, 아래와같이오류메시지가나타나며 2.1을참고하여다시다운로드테스트를진행합니다. #/usr/local/bin/rsync -avz access denied to spamlist from unknown ( ) 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 wheel 월 22 20:07 spamlist1.txt -rw-r--r wheel 월 22 20:07 spamlist2.txt -rw-r--r wheel 월 22 20:07 spamlist3.txt

15 다음과같이다운로드한스팸리스트파일내용을확인할수있습니다. # more spamlist3.txt <spamlist 파일의내용중에서 > : ' /24 ' /24 ' spamlist 파일의내용은일반적인 RBL 파일의형태와동일하며, 좌측에는개별 IP 또는대역이명시되고, 우측은 ( 공백구분 ) ' 등과같이 RBL을제공하는사이트의주소가표기됩니다. o 스팸리스트다운로드 (crontab 이용 ) 다음은유닉스시스템에크론텝 (crontab) 을이용한다운로드스크립트를설정하는방법을설명합니다. 실시간스팸차단리스트 (RBL) 는매시간스팸리스트가갱신되므로 crontab을이용하여업데이트된스팸리스트를다운로드하여반영을해야합니다. 제때스팸리스트를반영하지않아스팸리스트에서제외된 IP가차단되는경우가발생할수있습니다. 아래와같이 crontab 편집모드로들어간후 rsync 다운로드명령어를삽입합니다. # crontab -e 00 * * * * /usr/local/bin/rsync -avz /download 매시간정각 rsync 명령어가실행되어지정한경로에스팸리스트가다운로드됩니다.

16 4. RBLDNSD 설치 o RBLDNSD 란? 유닉스용 DNS 데몬으로일반적으로알고있는네임서버 (DNS) 와작동원리는같으며, 스팸메일차단전용으로 RBL DNS 데몬을메일서버에설치하여사용합니다. RBLDNSD 이용은일일메일수신량이 10만통이상인경우직접설치하는것을권장하며, 스팸리스트를자신의정책에맞게선택하거나수정하여사용할수있습니다 RBLDNSD 다운로드및설치배포사이트를직접방문하거나, 아래와같이 wget 명령어를이용하여최신버전의 RBLDNSD 프로그램을다운로드합니다. # cd /home/user/ # wget :17: Resolving Connecting to :80... connected. HTTP request sent, awaiting response OK Length: (110K) [application/x-gzip] Saving to: `rbldnsd_0.996b.tar.gz' 100%[==============================>] 113, K/s in 1.6s 15:17:11 (70.7 KB/s) - `rbldnsd_0.996b.tar.gz' saved [113128/113128]

17 다음같이다운로드한프로그램을압축해제하고소스코드를컴파일하면 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 /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

18 < 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 /53 rbldnsd: ip4set:/download/spamlist1.txt: : 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 or 서버 IP (RBLDNS 데몬실행시지정한 IP) nameserver ( 기존 DNS IP) 4.3. RBL lookup 테스트 RBLDNSD 는일반적인네임서버 (DNS) 와달리특정 IP의 RBL 리스트등재여부만을확인하기때문에 RBL lookup만지원합니다. RBL lookup이란, 기존의 DNS 표준에크게어긋나지않게약간

19 변형된형태로 DNS 질의를합니다. 일반적인 DNS lookup 은 'nslookup hostname.domain.com' 과같은형식으로질의를하지만, RBLDNSD에서는 IP주소를이용, 역순으로질의합니다. RBLDNSD 가정상동작하는지확인하기위하여샘플 spamlist1.txt 를생성하고, RBLDNSD 실행방법을참고하여다시실행합니다. #vi spamlist1.txt : (DNS A 레코드반환값 : ) 다음은 nslookup 명령어를이용하여정상적으로응답하는지확인합니다. 질의하고자하는 IP가 이면, 역순으로 과 RBLDNSD 실행시지정했던 RBL 베이스 kisarbl 을입력합니다. 아래와같이나타나면스팸리스트에등재되어있는상태를의미하며응답값이없으면등재되어있지않은상태를의미합니다. # nslookup kisarbl ( 질의하려는 IP를역순으로입력한후, RBL 베이스를입력 ) Server: Address: #53 Name: kisarbl Address: ( 리턴 IP가 RBL에등재되었음을의미 )

20 다음은 dig 명령어를사용하여확인합니다. # dig kisarbl ; <<>> DiG P1 <<>> 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: ; kisarbl. IN A ;; ANSWER SECTION: kisarbl IN A (A 레코드 리턴 IP가 RBL에등재되었음을의미 )

21 4.4. 메일서버 (Sendmail ) 설정변경 Sendmail 에서 RBL을참조하기위해서 '.mc' 파일을수정해야하며, 다음과같이운영체제에맞는파일을선택한후수정합니다. 'sendmail.mc' 파일로존재하는경우에는해당파일을수정합니다. # cd /home/sendmail /cf/cf # vi generic-solaris.mc <generic-solaris.mc 파일내용중에서 > divert(0)dnl VERSIONID(`$Id: generic-solaris.mc,v /06/27 21:46:30 gshapiro Exp $') OSTYPE(solaris2)dnl DOMAIN(generic)dnl FEATURE(dnsbl, `kisarbl', `Rejected - see ( 라인추가 ) MAILER(local)dnl MAILER(smtp)dnl 메일서버설치방법에따라.mc 파일위치가달라질수있습니다. 위의 [ 그림 3-24] 와같이위치해야 cf 파일생성시에러가발생하지않으며, RBL 베이스는 RBLDNSD 실행시지정한 'kisarbl' 을입력합니다. 'Rejected ~' 부분은, RBL에의해메일전송이실패하는경우에반송메일에표시되는내용입니다. 참조하는 RBL의사이트주소등을명시합니다. 다음 [ 그림3-25] 와같이 m4 매크로를이용하여변경된파일을 'sendmail.cf' 파일에반영합니다. # cd /home/sendmail /cf/cf # m4../m4/cf.m4 generic-solaris.mc > /etc/mail/sendmail.cf

22 다음과같이 Sendmail 데몬을재시작한후, 서비스가정상적으로실행중인지와 25번포트가정상적으로열려있는지확인합니다. # /etc/init.d/sendmail stop ( 중지 ) # /etc/init.d/sendmail start ( 시작 ) # ps -ef grep sendmail (Sendmail 프로세스확인 ) # netstat -an grep 25 ( 포트가열려있는지확인 ) 4.5. 스팸차단테스트지금까지 RBLDNSD 를이용하여스팸차단방법을설명하였습니다. 다음은실제도메인과, 공인 IP를이용하여스팸차단테스트내용을보여줍니다. RBLDNSD 가설치된서버에 spamlist1.txt 에공인 IP를추가하고, 공인 IP서버에서 telnet 명령어를이용하여 RBLDNSD 가적용된메일서버에메일송신하였으나차단된것을확인할수있습니다. #vi spamlist1.txt : x.x.83 ( 공인 IP)

23 위테스트결과 RBLDNSD 는정상적으로 spamlist1.txt 를참고하여스팸IP를차단하고있음을확인할수있습니다. 다음은 sendmail 로그에서아래와같이차단내역을확인할수있습니다. # tail -f /var/log/syslog <syslog 내용중에서 > Aug 21 00:25:39 ***.kr sm-mta[1171]: [ID mail.info] NOQUEUE: dns 83.x.x.61.kisarbl. => Aug 21 00:25:39 ***.kr sm-mta[1171]: [ID mail.notice] ruleset=check_relay, arg1=[61.x.x.83], arg2= , relay=[61.x.x.83], reject= Rejected - see