IT pass HikiWiki - [Memo2009][ITPASS] tako 構築作業ログ(MAIL4)(清水, 黒田) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc_here}}
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 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 で受け取れるように設定中.
=== 参考文献
* ((<Qpopper|URL:http://www.emaillab.org/djb/qmail-pop/qpopper.html>))
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 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 で受け取れるように設定中.
=== 参考文献
* ((<Qpopper|URL:http://www.emaillab.org/djb/qmail-pop/qpopper.html>))
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]