rbldns 를 사용하여 스팸메일 줄이기

Contents

1 RBLDNS란?
2 메일서버에 rblsmtpd 설정하기
2.1 SendMail
2.2 Qmail

1 RBLDNS란?

먼저 rblsmtpd 를 사용하기 위해서는 먼저 rbldns를 이해할 필요가 있다.
RBLDNS 란 IP-address-listing DNS server 로 간단히 설명하자면 IP 리스트를 가진 DNS서버라고 이해하면 된다.
즉 IP address 가 RBLDNS 서버에 존재하는지 안하는지만 응답을 해주는 서버인 것이다.
RBLDNS 는 메일서버 뿐만이 아니라 웹서버 또는 기타 다른 서비스에서도 활용이 가능한 시스템이다.
예를 들자면 보통 특정 호스트의 웹사이트의 접속을 막고자 할 경우
아파치의 경우에 httpd.conf 파일에서 접속하는 ip를 적어서 막는 경우가 있다.
하지만 웹서버가 수십 혹은 수백대라고 가정해 본다면 그 많은 웹서버의 환경설정을 지속적으로 업데이트를 해줘야 하는 번거러움이 있다.
이런 경우 rbldns 를 활용한다면 아주 편하게 그러한 작업들이 이루워 질수가 있는것 이다.
우리는 단순히 rbldns 에 접속을 막을 ip만 적고 rbldns 만 갱신해주면 되는 것이다.
대략적으로 아래와 같은 프로세서에 의해서 동작을 하게 되는것이다.

1. Client 는 서버(웹서버,메일서버 기타 등등)에 접근시도
2. Server 는 RBLDNS 에 접속하는 Client의 IP address를 RBLDNS에 조회
3. RBLDNS 서버는 조회 결과를 Server 에 전송
4. Serve 는 결과에 따라서 접속 허용 유무를 결정

2 메일서버에 rblsmtpd 설정하기

2.1 SendMail

sendmail의 경우에는 RPM버전으로 설치가 되어 있다는 가정으로 한다.
1. /etc/mail/sendmail.mc 파일에 아래와 같은 라인을 추가한다.
주) sendmail.mc 파일이 없다면 sendmail-cf 패키지가 설치되어 있는지 확인 할 것.
예제)

FEATURE(dnswl,`trust.nuxinfo.net')
FEATURE(dnsbl,`rbl.nuxinfo.net,`553 Blocked - see http://spamlist.nuxinfo.net/lookup?$&{client_addr}')

설명.
* dnswl은 white list를 가지고 있는 서버에 대한 설정이다.
* dnsbl은 black list를 가지고 있는 서버에 대한 설정이다.
* 컴마(,)로 분리된 각각은 white list인지 아닌지 구분,질의를 보낼 rbldns 서버, 반송시 보내줄 메시지 를 담고 있다.
고 RBLDNS 서버는 무료로 제공해주는 곳들이 몇군데 있으니 찾아보기 바란다.

spamlist.or.kr
bl.spamcop.net
rbl.nuxinfo.net :-)

2. sendmail.cf 파일 생성하기

 Shell> m4 sendmail.mc>sendmail.cf

3. sendmail 재시작

 Shell> /etc/init.d/sendmail restart

2.2 Qmail

1. Qmail run 파일 수정
변경 전)

#!/bin/sh
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
exec /usr/local/bin/softlimit -m 100000000 \
/usr/local/bin/tcpserver -vRHl0 -x/home/vpopmail/etc/tcp.smtp.cdb \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw /bin/true 2>&1

변경 후)

#!/bin/sh
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
exec /usr/local/bin/softlimit -m 100000000 \
/usr/local/bin/tcpserver -vRHl0 -x/home/vpopmail/etc/tcp.smtp.cdb \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/rblsmtpd -t 30 -b -r bl.spamcop.net -r rbl.nuxinfo.net \
/var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw /bin/true 2>&1

설명)
Qmail의 경우에는 rblsmtpd 프로그램이 ucspi-tcp 패키지에 기본적으로 포함이 되어 있다.
따라서 -r 옵션뒤에 사용할 rbldns 서버를 쭉 적어주면 된다.

white list를 적용하고자 한다면 -a 옵션과 rbldns 서버를 적어주면 된다.
2. Qmail 재시작

svc -t /service/qmail-smtpd

stone has written 25 articles

Leave a Reply