qmail+POP3+SMTP?F?SMTPs(TLS)+POP3s(TLS)

qmail??OP3

http://cr.yp.to/checkpwd.html? ??a href="http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz">checkpassword-0.90.tar.gz??_?E?????[?h??A?W?J???C???X?g?[??????B

$ tar zxfv checkpassword-0.90.tar.gz
$ cd checkpassword-0.90
$ sudo make setup check

? ??????G???[??o??????A

$ make setup check
:
:
unix.a(alloc.o):alloc.c:(.text+0x3f): more undefined references to `errno' follow
collect2: ld ??X?e?[?^?X 1 ??I??????br>make: *** [checkpassword] ?G???[ 1
$

?p?b ?`?icheckpassword-0.90.errno.patch?j ???????B

$ patch -s -p1 <./checkpassword-0.90.errno.patch

/var/qmail/rc ???????B

tcpserver -v 0 pop3 \
/var/qmail/bin/qmail-popup [FQDN] /bin/checkpassword \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 &

qmail??MTP?F?/h3>

SMTP?F??p?b?`?imail-smtpd-auth-0.31.tar.gz?j??_?E?????[?h???Aqmail??\?[?X?????A??xqmail??ake setup check?B

$ tar zxfv qmail-smtpd-auth-0.31.tar.gz
qmail-smtpd-auth-0.31/
qmail-smtpd-auth-0.31/auth.patch
qmail-smtpd-auth-0.31/CHANGES
qmail-smtpd-auth-0.31/base64.c
qmail-smtpd-auth-0.31/base64.h
qmail-smtpd-auth-0.31/README.auth
$ mv qmail-smtpd-auth-0.31/* qmail-1.03
$ cd qmail-1.03
$ patch -s -p1 < auth.patch
patching file Makefile
patching file TARGETS
patching file qmail-smtpd.8
patching file qmail-smtpd.c
$ sudo make setup check

/var/qmail/rc?

qmail-start ./Maildir/ splogger qmail &
tcpserver -v -u [qmaild??id] -g [qmaild??id] -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &

?

qmail-start ./Maildir/ splogger qmail &
tcpserver -v -u [qmaild??id] -g [qmaild??id] -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd /bin/checkpassword /bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &

?????B

qmail??MTPs(TLS)

??????@??????????Aucspi-tcp-ssl??g?????B

tcpserver??cspi-tcp-ssl??p?b?`??K?p????B

ucspi-tcp-ssl-20050405.patch.gz??_?E?????[?h???W?J?Aucspi-tcp-0.88??\?[?X??p?b?`??????Amake setup check????B

* errno??p?b?`?????K?p??????\?[?X??????K?p??????????Aucspi-tcp-0.88??A?[?J?C?u???x?W?J???K?p?B

** ????cpserver??C???X?g?[???????????Amake setup check????o?C?i????????????????Amake????s?B

$ patch < ucspi-tcp-ssl-20050405.patch
patching file FILES
patching file Makefile
patching file TARGETS
patching file addcr.1
patching file argv0.1
patching file date@.1
patching file delcr.1
patching file error.h
patching file finger@.1
patching file fixcrio.1
patching file hier.c
patching file http@.1
patching file mconnect.1
patching file recordio.1
patching file tcp-environ.5
patching file tcpcat.1
patching file tcpclient.1
patching file tcprules.1
patching file tcprules.c
patching file tcprulescheck.1
patching file tcprulescheck.c
patching file tcpserver.1
patching file tcpserver.c
patching file who@.1
$ make

?imake????s??????j?V??????cpserver??usr/local/bin/??R?s?[????B

$ sudo /bin/cp -r tcpserver /usr/local/bin

?T?[?o?????????B

$ make cert
openssl req -new -x509 -nodes \
 -out cert.pem -days 366 \
 -keyout cert.pem
Generating a 1024 bit RSA private key
......++++++
....................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:SV
State or Province Name (full name) [Berkshire]:San Salvador
Locality Name (eg, city) [Newbury]:San Salvador
Organization Name (eg, company) [My Company Ltd]:INTI
Organizational Unit Name (eg, section) []: Comptacion
Common Name (eg, your name or your server's hostname) []:***.***.**
Email Address []:***@***.***

?????????icert.pam?j??var/qmail??R?s?[??A?p?[?~?b?V??????00?????B

$ sudo cp cert.pem /var/qmail
$ sudo chmod 600 /var/qmail/cert.pem

/var/qmail/rc??????????B
SMTP??s????A2?????usmtp<span style="color:#FF0000;">s</span>?v???????B

tcpserver -v -u [qmaild??id] -g [qmaild??id] -n /var/qmail/cert.pam \
 -x /etc/tcp.smtp.cdb 0 smtps /var/qmail/bin/qmail-smtpd \
/bin/checkpassword /bin/true 2>&1 | \
/var/qmail/bin/splogger smtps 3 &

?|?[?g?????65???B

qmail??OP3s(TLS)

????cspi-tcp-ssl??K?p??????A/var/qmail/rc??????????K?B

tcpserver -v -n /var/qmail/cert.pam 0 pop3s \
/var/qmail/bin/qmail-popup [FQDN] /bin/checkpassword \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 &

?|?[?g?????55???B

????`???????????????Arc??????????????????????????B
telnet??10??|?[?g??????A???[?U???p?X???h?????A

telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
tcpserver: status: 1/40
tcpserver: pid 8464 from 127.0.0.1
tcpserver: ok 8464 :127.0.0.1:110 :127.0.0.1::50203
 +OK <8464.1161020443@/bin/checkpassword>
USER [???[?U??
 +OK
PASS [?p?X???h]
 -ERR this user has no $HOME/Maildir
 -ERR unable to write pipe
Connection closed by foreign host.
$

?????G???[??o?????iMaildir??????o????Arc?t?@?C???????????????\???A??????B