[Memo2009][ITPASS] tako 構築作業ログ(MAIL4)(清水, 黒田)

10/14 の作業ログ

tcpserver のインストールと設定

tcpserver を停止

kill コマンドを使って tcpserver を停止し, 動作確認は ps コマンドを使って確認する. 今動いている tcpserver のプロセス番号と tcpserver.pid に書かれているプロセス番号が違っているかもしれないので, 一度 tcpserver.pid を削除する.

# ps aux | grep tcpserver
qmaild   16273  0.0  0.0   5912   652 ?       S    Oct10   0:00 tcpserver -u 113 -g 200 0 smtp /var/qmail/bin/qmail-smtpd
# kill 16273
# ps aux | grep tcpserver
chikuwa1 30312  0.0  0.0  10704   908 pts/0   S+   13:26   0:00 lv tcpserver.pid
chikuwa9 30246  0.0  0.0  10008   848 pts/2   R+   13:27   0:00 grep tcpserver
# rm /var/run/tcpserver.pid

/etc/init.d/tcpserver 作成した際に case 文の start) の部分を, 間違えて

case "$1" in
start)
  test_config
  echo "Starting smtp server: $NAME"
  $ENV $SSD --start --pidfile $PIDFILE --make-pidfile \
      --exec $DAEMON \
      -v -x $TCP_SMTP_CDB \
      -- -u $DAEMONUID -g $DAEMONGID \
      0 smtp $QMAILSMTPD \
      2>&1 | \
      /var/qmail/bin/splogger smtpd 3 \
      &
  ;;

としてしまったため,

case "$1" in
start)
  test_config
  echo "Starting smtp server: $NAME"
  $ENV $SSD --start --pidfile $PIDFILE --make-pidfile \
      --exec $DAEMON \
      -- -u $DAEMONUID -g $DAEMONGID \
      -v -x $TCP_SMTP_CDB \
      0 smtp $QMAILSMTPD \
      2>&1 | \
      /var/qmail/bin/splogger smtpd 3 \
      &
  ;;

と訂正した.

tcpserver を起動する.

# /etc/init.d/tcpserver start
Starting smtp server: tcpserver...

133.30.110.XX という IP アドレスのホストからの smtp 中継を許可するために tcp.smtp の 1 行目の以下のように書き変える. 2 行目の 127. はローカルホストを指す. これは常に書くこと. 1 行目の 133.30.110.XX は後で設定確認するための作業用である. 作業者がアカウントを持つ他のマシンの IP アドレスを記入する. ここでは 133.30.110.202 とした.

133.30.110.XX:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT="" 
  • 次に以下のコマンドを実行する. tcp.smtp を元に tcp.smtp.cdb ができる.

    # tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

ホスト制限確認

tcpserver プロセスを再起動する.

# /etc/init.d/tcpserver restart
Stopping smtp server: tcpserver...
Starting smtp server: tcpserver...

先ほど /usr/local/ucspi-tcp/etc/tcp.smtp に書いた IP アドレス(ここでは, 133.30.110.202) を持つ計算機 (joho02) から telnet でアクセスし, メールサーバ以外のホストへのメール送信を試みる. (下記のコマンドについては <URL:http://man.qmail.jp/jinstall/test.receive.html> 参照). プロンプト入力時には, 左端に '>' を記してある. 実際には表示されない.

% telnet tako-itpass.scitec.kobe-u.ac.jp 25
Trying 133.30.109.21...
Connected to tako-itapss.scitec.kobe-u.ac.jp.
Escape character is '^]'.
220 tako-itpass.scitec.kobe-u.ac.jp ESMTP
> helo dude
250 domain
> mail <hoge1_at_stu.kobe-u.ac.jp>
250 ok
> rcpt <hoge2_at_stu.kobe-u.ac.jp>   # <- 実在のアドレスへ
(アドレスを, <>で囲むのを忘れずに)
250 ok
> data
354 go ahead
> Subject: testing
> 
> This is a test.
> .
250 ok 812345679 qp 12345
> quit
221 domain
Connection closed by foreign host.
%

このメールが届くことを確認した. 次に, /usr/local/ucspi-tcp/etc/tcp.smtp から 133.30.110.XX:allow,RELAYCLIENT="" を削除して tcprules コマンドを実行し, tcpserver を restart 下の地に同様の作業を行う. この際には rcpt <hogehoge_at_stu.kobe-u.ac.jp> を入力した段階で

553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

というエラーメッセージが返り, メールの送信を拒絶することを確認した.

ホスト制御データベース更新スクリプト

tcprules などのコマンドを覚えておくのは面倒なので, /usr/local/ucspi-tcp/etc/ 以下に更新スクリプト を置いてある. tcprules を覚えているというのであれば, 以下は必要ない.

/usr/local/ucspi-tcp/etc/tcp.smtp を更新後は

$ /usr/local/ucspi-tcp/etc/tcp_smtp_update.sh update

でデータベースファイルが更新され, tcpserver プロセスが再起動する.

上のスクリプトを実行する.

# /usr/local/ucspi-tcp/etc/tcp_smtp_update.sh update

以下のように表示されれば成功.

Updating /usr/local/ucspi-tcp/etc/tcp.smtp.cdb using /usr/local/ucspi-tcp/etc/tcp.smtp
/usr/local/ucspi-tcp/bin/tcprules /usr/local/ucspi-tcp/etc/tcp.smtp.cdb /usr/local/ucspi-tcp/etc/tcp.smtp.tmp
/etc/init.d/tcpserver restart
Restarting tcpserver
Stopping smtp server: tcpserver
Starting smtp server: tcpserver

Update is successful.

更新したデータベースの内容に応じて正しくメールが送れていることを確認できたら OK.

qpopperのインストールと設定

APOP サービスを提供するため, qpopper をインストールする.

4 回生による新 ika 構築にむけての覚書

これまでのところ, EPA サーバを POP サーバとして利用している人は皆無らしいため, 使いたいという人がでるまで, POP は休止しておく (実際には, 単に新 ika からはインストールしない) のが良いかもしれない.

ソースコードのダウンロード

ここでは, 現在は最新の qpopper4.0.18.tar.gz をダウンロードする.

# cd /usr/local/src
# wget ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.18.tar.gz
# tar zxvf qpopper4.0.18.tar.gz
# cd qpopper4.0.18

qpopper を起動するユーザの作成

qpopper を動作させるためのユーザとして, pop を作成する.

# adduser --system --ingroup mail --no-create-home --shell /bin/false --disabled-password --home /nonexistent pop

passwd ファイルに pop ユーザに関する情報を書き込む. 下記の例では UID は 119, GID は 8 となっているが, その部分はインストール時の状況による.

# vipw

pop:x:119:8:Post Office Owner:/nonexistent:/bin/false

ここで,

you may need to modify /etc/shadow for consistency.

というメッセージが出てくるので, vipw -s コマンドで, pop の行が追加されていることを確認する.

ビルド

# ./qpopper4.0.18.tar.gz/configure --prefix=/usr/local/qpopper \
  --enable-apop=/usr/local/qpopper/pop.auth \
  --enable-popuid=pop \
  --enable-shy \
  --enable-nonauth-file=/usr/local/qpopper/popusers \
  --without-pam --with-gdbm \
  --enable-home-dir-mail=Mailbox

APOP のみにしたいため, /usr/local/src/qpopper4.0.18/popper/Makefile を編集し, OS_DEFS の行を以下のように変更する.

OS_DEFS         =    -DLINUX -DUNIX -DAPOP_ONLY

ビルドします.

# cd /usr/local/src/qpopper4.0.18/popper/
# make

インストール

# make install

inetd に登録

# vi /etc/inetd.conf

以下の行を追加する.

pop3    stream  tcp     nowait  root    /usr/local/qpopper/sbin/popper  popper -s

起動

次のコマンドによってinetdを再起動する.

# /etc/init.d/openbsd-inetd restart

インストールした実行ファイルへのパスの設定

インストールした qpopper の実行ファイル群へパスを通す. [Memo2009][ITPASS] tako 構築作業ログ(WWW 1)(山元, 辻野)#パスの設定 <一般ユーザ用コマンドのパス> /usr/local/qpopper/sbin を追加する. (大抵, sbin はシステム用コマンドがインストールされる場所であるが, 一般ユーザが使用する pop_auth もインストールされているため, 一般ユーザ用コマンドのパスとして登録する).

インストールしたマニュアルへのパスの設定

/etc/manpath.config に以下の行を追加する. 詳しくは [Memo2009][ITPASS] tako 構築作業ログ(WWW 1)(山元, 辻野)#パスの設定

を参照のこと.

MANDATORY_MANPATH                           /usr/local/qpopper/man
MANPATH_MAP        /usr/local/qpopper/sbin  /usr/local/qpopper/man
MANDB_MAP          /usr/local/qpopper/man   /usr/local/qpopper/man

動作チェック

まず APOP で使用するパスワードを設定する. ここではユーザを chikuwa1 とする. ここで入力するパスワードはログインパスワードと異なっていてもよい.

> popauth
Changing only APOP password for chikuwa9.
New password: (パスワードを入力)
Retype new password: (パスワードを入力)

次にメールを chikuwa1 宛に送る.

> sudo -s
# mail chikuwa9
Subject: test
aaaaa (CTRL+D)
Cc: 

メールがメールスプールにあるかどうかをチェック.

# ls -l /home/chikuwa9/Mailbox
-rw------- 1 chikuwa1 chikuwa9 440 Oct 14 20:08 Mailbox

届いている. これを別の適当なホストで ITPASS サーバからメールを APOP で受け取れるように設定中.

参考文献

[ITPASSサーバ構築ドキュメント へ戻る]

Last modified:2009/11/11 15:41:08
Keyword(s):
References:[[ITPASS2009]2009年度サーバ構築ログ]