[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サーバ構築ドキュメント へ戻る]
Keyword(s):
References:[[ITPASS2009]2009年度サーバ構築ログ]