netqmail
※qmailの情報はページが移動しました。 --> qmail
自宅から外部へメールを送信するのとkajukaju.netドメイン宛のメールを受信するためにSMTPサーバを導入する。
qmailを起動する専用ユーザを作成する。# /usr/sbin/groupadd -g 205 nofiles # /usr/sbin/groupadd -g 206 qmail # /usr/sbin/useradd -u 205 -g nofiles -d /var/qmail/alias -s /sbin/nologin alias # /u/var/qmail/control/localssr/sbin/useradd -u 206 -g nofiles -d /var/qmail -s /sbin/nologin qmaild # /usr/sbin/useradd -u 207 -g nofiles -d /var/qmail -s /sbin/nologin qmaill # /usr/sbin/useradd -u 208 -g nofiles -d /var/qmail -s /sbin/nologin qmailp # /usr/sbin/useradd -u 209 -g qmail -d /var/qmail -s /sbin/nologin qmailq # /usr/sbin/useradd -u 210 -g qmail -d /var/qmail -s /sbin/nologin qmailr # /usr/sbin/useradd -u 211 -g qmail -d /var/qmail -s /sbin/nologin qmails
qmailの公式サイトより最新のソースファイルを入手しインストールする。
また、以下のパッチも適用する。
・qmail-date-localtime.patch --> ヘッダの日付をローカルタイムに変換する
上記以外でも気になるパッチがある(今回は未適用)。
・qmail-qread-date-localtime.patch --> qmail-date-localtime.patchの不具合修正
・badrcptto.patch --> 指定宛先宛のメールを拒否
・qmail-bouncecontrol-1.03.patch --> qmail標準のバウンスメッセージを変更
$ wget http://www9.jp.qmail.org/netqmail-1.05.tar.gz $ tar xvzf netqmail-1.05.tar.gz $ cd netqmail-1.05/other-patches $ wget http://www.alib.jp/files/qmail-date-localtime.patch $ cd /work/netqmail-1.05 $ ./collate.sh $ cd netqmail-1.05 $ patch -p1 < ../other-patches/qmail-date-localtime.patch # make setup check次にucspi-tcpをインストールする。
$ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz $ tar xvzf ucspi-tcp-0.88.tar.gz $ cd ucspi-tcp-0.88 $ patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch patching file error.h $ patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.a_record.patch patching file rblsmtpd.c $ patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.nodefaultrbl.patch patching file rblsmtpd.c Hunk #1 succeeded at 193 (offset 38 lines). Hunk #3 succeeded at 227 (offset 38 lines). $ make # make setup check
qmailの設定ファイルを編集。
設定のポイント
・ホスト名は [postman.kajukaju.net]
・サーバが受け取るドメイン名は [@kajukaju.net]
・メールの中継を許可するドメイン名は [@kajukaju.net]
・受信メールの最大サイズは [10MB(10485760byte)]
・送信キューの有効期限は[1日(86400秒)]
postman.kajukaju.net/var/qmail/control/locals
kajukaju.net/var/qmail/control/rcpthosts
kajukaju.net/var/qmail/control/databytes
10485760/var/qmail/control/queuelifetime
86400中継許可ホストの作成
/var/qmail/control/smtp.rules.txt
127.0.0.1:allow,RELAYCLIENT="" 192.168.1.:allow,RELAYCLIENT=""smtp.rules.txtをqmailが認識できる形に変換する。
# /usr/local/bin/tcprules /var/qmail/control/smtp.rules.cdb /var/qmail/control/smtp.rules.temp < /var/qmail/control/smtp.rules.txt # ls -al /var/qmail/control/ |grep rules -rw-r--r-- 1 root root 2143 6月 22 22:22 smtp.rules.cdb -rw-r--r-- 1 root root 63 6月 22 22:21 smtp.rules.txt起動スクリプトを作成する。
/etc/rc.d/init.d/qmail
作成中 ・・・ ・・・起動スクリプトを登録する。
# chmod 755 /etc/rc.d/init.d/qmail # /sbin/chkconfig --add qmail # /sbin/chkconfig --list |grep qmail qmail 0:off 1:off 2:off 3:on 4:on 5:on 6:offqmailを起動する。
# /sbin/service qmail start Starting qmail-start: Starting qmail-send: # /sbin/service qmail stop Stopping qmail: [ OK ] # ps aux |grep qmail qmails 17086 0.0 0.1 2304 352 pts/0 S 18:38 0:00 qmail-send qmaill 17087 0.0 0.1 2096 432 pts/0 S 18:38 0:00 splogger qmail 2 root 17088 0.0 0.1 3404 304 pts/0 S 18:38 0:00 qmail-lspawn ./Maildir/ qmailr 17089 0.0 0.1 3244 304 pts/0 S 18:38 0:00 qmail-rspawn qmailq 17090 0.0 0.1 3212 304 pts/0 S 18:38 0:00 qmail-clean qmaild 17091 0.0 0.1 1524 468 pts/0 S 18:38 0:00 tcpserver -v -u 203 -g 202 -R -x /var/qmail/control/smtp.rules.cdb 0 smtp qmail-smtpd root 17092 0.0 0.1 3140 432 pts/0 S 18:38 0:00 /var/qmail/bin/splogger smtpd 2 # netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTENサーバ稼働時のログ
# tail /var/log/mail.log Jul 3 18:38:37 bruna smtpd: 1151919517.369861 tcpserver: status: 0/40 Jul 3 18:38:37 bruna qmail: 1151919517.395068 status: local 0/10 remote 0/20 Jul 3 18:40:07 bruna qmail: 1151919607.538482 status: exiting # tail /var/log/boot.log Jul 3 18:40:07 bruna qmail: qmail-send 停止 succeeded Jul 3 18:40:07 bruna qmail: tcpserver 停止 succeededメールを送信し動作確認をする。
# telnet localhost 25 ・・・ ・・・メール送信時のログ
# tail -f /var/log/mail.log Jul 3 18:41:22 bruna smtpd: 1151919682.243730 tcpserver: status: 1/40 Jul 3 18:41:22 bruna smtpd: 1151919682.246043 tcpserver: pid 17143 from 192.168.1.yy Jul 3 18:41:22 bruna smtpd: 1151919682.250408 tcpserver: ok 17143 bruna.kajukaju.net:192.168.1.xx:25 server.kajukaju.net:192.168.1.yy::33660 Jul 3 18:41:54 bruna qmail: 1151919714.516571 new msg 560309 Jul 3 18:41:54 bruna qmail: 1151919714.516786 info msg 560309: bytes 220 from <user@kajukaju.net> qp 17144 uid 203 Jul 3 18:41:54 bruna qmail: 1151919714.524802 starting delivery 1: msg 560309 to remote xxx@example.com Jul 3 18:41:54 bruna qmail: 1151919714.525827 status: local 0/10 remote 1/20 Jul 3 18:41:55 bruna qmail: 1151919715.044666 delivery 1: success: 211.9.231.122_accepted_message./Remote_host_said:_250_2.0.0_k639fs90070130_Message_accepted_for_delivery/ Jul 3 18:41:55 bruna qmail: 1151919715.044904 status: local 0/10 remote 0/20 Jul 3 18:41:55 bruna qmail: 1151919715.044997 end msg 560309 Jul 3 18:41:55 bruna smtpd: 1151919715.746928 tcpserver: end 17143 status 0 Jul 3 18:41:55 bruna smtpd: 1151919715.748744 tcpserver: status: 0/40ログのローテート
/etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/mail.log /var/log/boot.log /var/log/cron.log /var/log/snmp.log /var/log/named.log {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true
endscript
}