1999/03/09 のまとめ

kyoma@cosmos.sci.hokudai.ac.jp

作業:高橋共馬

qmail

smtp(つづき)

qmail の FAQ 5.4「特定のクライアントにだけリレーとして使わせたい」(文献 1)に従って作業を行った.この FAQ では,tcpserver をつかうやり方と,tcp-wrappers を使うやり方の二つが述べられていた.tcpserver の導入によって,同時に多くの smtp 要求を受け付けられ,接続の記録が取れるようになる(文献 2)という利点から,tcpserver を使うことにした.

tcpserver 導入

文献 2 に従って,qmail-smtpd の呼び出しを,inetd から tcpserver に移した.文献 3 から ucspi-tcp-0.84.tar.gz を取得.展開.付属ドキュメントに従ってインストール.su になって,/etc/inetd.conf 中の smtp の行をコメントアウトして,inetd のプロセス番号を ps で調べ,
# kill -HUP xxxx
xxxx: inetd のプロセス番号

qmaild の UID,nofiles の GID を確認した上で,

# tcpserver -u xxxx -g yyyy 0 smtp /var/qmail/bin/qmail-smtpd &
xxxx: qmaild の UID. yyyy: nofiles の GID.

これで tcpserver が起動した.eudora-J1.3.8.8r6 for Macintosh を使ってのテストでは,blue にあるアカウント宛のメールは,変更前と同様に問題なく送ることができた.

tcpserver 設定

文献 1 に従って,/etc/tcp.smtp を書いた.
133.87.52.40:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
133.87.52.40: テストに使った高橋共馬の Macintosh の IP アドレス.

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
を実行./etc/tcp.smtp.cdb ができた.これは,tcpserver がデータベースファイルを高速に読み込めるようにするための作業だそうだ.

tcpserver を一回 kill して,-x /etc/tcp.smtp.cdb を追加して再起動した.

# tcpserver -x /etc/tcp.smtp.cdb -u xxxx -g yyyy 0 smtp /var/qmail/bin/qmail-smtpd &
xxxx: qmaild の UID. yyyy: nofiles の GID.

余談:はじめ,-x /etc/tcp.smtp.cdb を最後に追加してしまったが,正しく働かなかった.man tcpserver でわかる通り,オプション(-x など)が入る位置は決まっているためである.

IP アドレスが 133.87.52.40 の Mac から,eudora-J1.3.8.8r6 を使って,smtp サーバを blue に設定し,blue 以外のホストにあるアカウント宛のメールを発信してみた.cosmos.sci.hokudai.ac.jp(物質のメールサーバ)ほかいくつかのホストにあるアカウント宛のメールは正しく届いた.

文献

  1. http://www.jp.qmail.org/q103/faq/faq5.html#5.4.
  2. http://www.jp.qmail.org/q103/faq/faq5.html#5.1.
  3. ftp://koobera.math.uic.edu/www/ucspi-tcp.html

今後の課題


back