chkusr0.6이 제대로 작동을 안합니다.

질문과 답변은 이곳에서
Post Reply
spiritt
등록 사용자
등록 사용자
Posts: 3
Joined: 2004/09/20 12:03

chkusr0.6이 제대로 작동을 안합니다.

Post by spiritt » 2004/09/20 12:15

안녕하세요?

qmail-1.03과 vpopmail-5.4.0을 사용하고 있습니다.

최근에 cocktatil patch에 chkusr patch가 포함된 것을 적용하여 사용하고

있는데 이것 저것 테스트를 해봐도 chkusr로 존재하지 않는 계정으로 수신되는

메일을 차단하지 못합니다.

로그파일에도 관련 메세지가 전혀 출력되지 않고 또한 telnet 으로 테스트해봐도

제대로 작동을 안 하는군요.

참고로 위의 구성에 qmail-scanner와 spamassassin을 사용하고 있으며

추가로 qmail-badmailfrom-wildcard patch 도 적용했습니다.

그리고 아래는 제가 사용하는 smtpd 구동 스크립트입니다.

#!/bin/sh
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUE
UID=`id -u vpopmail`
GID=`id -g vpopmail`
exec /usr/local/bin/softlimit -m 7340032 \
/usr/local/bin/tcpserver -H -R -v -p \
-x /home/vpopmail/etc/tcp.smtp.cdb \
-u $UID -g $GID \
-l 0 0 25 \
recordio /var/qmail/bin/qmail-smtpd foobar.com \
/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1

도움바랍니다.

spiritt
등록 사용자
등록 사용자
Posts: 3
Joined: 2004/09/20 12:03

Post by spiritt » 2004/09/21 02:57

자문 자답입니다.
혹시 저와 같은 고민을 하실 분이 계실지 몰라서 염치불구하고 해결책을 적습니다. ^^;

qmail-smtpd.c 소스를 들여다보니 아래와 같은 구문이 있더군요.

if (!stralloc_ready (&bounce_path, 200)) die_nomem();
if (!stralloc_copy (&bounce_path, &domain_path)) die_nomem();
if (!stralloc_cats (&bounce_path, "/.qmail-default")) die_nomem();
if (!stralloc_0 (&bounce_path)) die_nomem();

read_char = 0;
fd_file = open_read (bounce_path.s);
if (fd_file != -1) {
read_char = read (fd_file, read_buf, sizeof(read_buf) - 1);
close (fd_file);
if (read_char < 0) read_char = 0;
}
read_buf[read_char] = 0;

if ( strstr(read_buf, "bounce-no-mailbox") == NULL ) {
retstat = 1;
break;
}

제가 chkusr를 사용하기 전에 각 도메인의 존재하지 않는 계정으로 수신되는 메일을 처리하기 위하여
.qmail-default 파일의 bounce-no-mailbox라는 내용을 delete로 수정해 놓았습니다.
이로 인하여 위의 소스에서 더 이상 진행되지 않고 break가 걸려서 작동하지 않았던 것입니다.
따라서 .qmail-default 파일의 내용을 원상태로 돌려놓아 문제를 해결했습니다.
사실 문제를 해결한 상황에서 존재하지 않는 계정으로 수신되는 메일에 대하여 chkusr를 사용하는 것이 좋은지
아니면 그냥 각 도메인에서 삭제를 하는 것이 좋은지는 잘 모르겠습니다.

늦게나마 이곳에서 많은 도움 받는 것에 대하여 감사드립니다.

bilbo
등록 사용자
등록 사용자
Posts: 37
Joined: 2004/11/02 13:39

Post by bilbo » 2005/06/01 15:01

chkusr에서 걸러주면 서버의 로드를 줄이는데 큰 도움이 됩니다. 일단 수신단에서 받지않고 거부하기때문입니다.
그외에 도메인에서 받은 후 삭제를 하게되면 보내는측에서 실수로 잘못된 계정으로 메일을 보내면 조용히 받아서 삭제되기때문에 보낸쪽이 잘못 보냈는지 알 수 없게됩니다. 그래서 chkusr에서 걸러주는것이 좋습니다.
전자측은 확실히 확인된정보이고 후자측은 정확한정보인지는 잘 모르겠습니다...

* 참고로 chkusr는 2.0 최신버전이 나왔습니다.

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests