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