IT pass HikiWiki - [Memo2012][ITPASS]qpopper のインストールと設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
= qpopper のインストールと設定
APOP サービスを提供するため, qpopper のインストールと設定を行った.
勉強のためにインストールは行ったが,
ITPASS サーバを POP サーバとして利用している人は皆無らしいため,
使いたいという人が現れるまで, POP は休止しておく.
== ソースコードのダウンロード
((<URL:ftp://ftp.qualcomm.com/eudora/servers/unix/popper/>)) でバージョンを確認し, 最新のものをダウンロードすること.
下ではバージョン 4.1.0 をダウンロードしていった.
# cd /usr/local/src
# wget ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.1.0.tar.gz
# tar zxvf qpopper4.1.0.tar.gz
# cd qpopper4.1.0
== qpopper を起動するユーザの作成
qpopper を動作させるためのユーザとして, pop を作成した.
# adduser --system --ingroup mail --no-create-home --shell /bin/false --disabled-password --home /nonexistent pop
passwd ファイルに pop ユーザに関する情報を書き込む. 下記の例では UID は 119, GID は 8 となっているが, その部分はインストール時の状況による.
# id pop
と打ち込んだところ
uid=122(pop) gid=8(mail) 所属グループ=8(mail)
と返ってきたので, UID は 122, GID は 8 として進めた.
# vipw
pop:x:122:8:Post Office Owner:/nonexistent:/bin/false
ここで,
you may need to modify /etc/shadow for consistency.
というメッセージが出てくるので, vipw -s コマンドで, pop の行が追加されていることを確認した.
== ビルド
# ./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.1.0/popper/Makefile を編集し, OS_DEFS の行を以下のように変更した.
OS_DEFS = -DLINUX -DUNIX -DAPOP_ONLY
ビルドした.
# make
== インストール
# make install
ここで, /user/local/src/qpopper4.1.0/Makefile の install の項目に, (インストールディレクトリ )/share/man というディレクトリが作成されていることを確認する.
インストールディレクトリに share という名のディレクトリが作成されていない場合は share ディレクトリを作成し # make install を行う.
また, エラーが出る場合には, /usr/local/src/qpopper4.0.18/popper/Makefile の install の項目の 3 つ目の if 文を 以下のように書き換える.
変更前
@if [ "x${pop_auth}" != "x" ]; then \
@${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
@echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
${installdir}/${pop_auth} -init -safe; \
@echo "Initialized popauth database"; \
fi
変更後
@if [ "x${pop_auth}" != "x" ]; then \
${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
${installdir}/${pop_auth} -init -safe; \
echo "Initialized popauth database"; \
fi
((*申し送り事項: どこを書き換えたのかわかりにくいので, diff -u の結果を貼り付けるようにする (納多)*))
とあるが, 現在(qpopper 4.1.0 )は
@if [ "x${pop_auth}" != "x" ]; then \
${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
if [ "x${apop_dir}" != "x" ]; then \
if [ ! -d "${apop_dir}" ]; then \
${base_dir}/mkdir-sh "${apop_dir}" "0700" "${apop_uid}:0" ; \
echo "Created directory ${apop_dir}" ; \
fi \
fi ; \
echo "Initializing popauth database"; \
${installdir}/${pop_auth} -init -safe; \
fi
となっており @ をとる必要がなかった.
また, mkdir-sh が qpopper 4.1.0 には含まれていなかったため
((<URL:http://europa.cocolog-nifty.com/space/2011/07/qpopperv410mkdi.html>))
を参考にして ./Makefile と./popper/Makefile を書き換え, 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 の実行ファイル群へパスを通した. ((<[ITPASS2011a]パスの設定>)) の ((* <一般ユーザ用コマンドのパス> *)) に ((*/usr/local/qpopper /sbin*)) を追加した.
(大抵, sbin はシステム用コマンドがインストールされる場所であるが, 一般ユーザが使用する pop_auth もインストールされているため, 一般ユーザ用コマンドのパスとして登録する).
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加した. 詳しくは ((<[ITPASS2011a]パスの設定>)) を参照のこと.
MANDATORY_MANPATH /usr/local/qpopper/share/man
MANPATH_MAP /usr/local/qpopper/sbin /usr/local/qpopper/share/man
MANDB_MAP /usr/local/qpopper/share/man /usr/local/qpopper/share/man
== 動作チェック
まず APOP で使用するパスワードを設定した.
ここではユーザを chikuwa3 とした. ここで入力するパスワードはログインパスワードと異なっていてもよい.
> popauth
Changing only APOP password for chikuwa3.
New password: (パスワードを入力)
Retype new password: (パスワードを入力)
次にメールを chikuwa3 宛に送った.
> sudo -s
# mail chikuwa3
Subject: test
aaaaa (CTRL+D)
Cc:
メールがメールスプールにあるかどうかをチェックした.
# ls -l /home/chikuwa3/Mailbox
-rw------- 1 chikuwa3 chikuwa3 440 Oct 14 20:08 Mailbox
届くことが確認できれば,
別の適当なホストで ITPASS サーバからメールを APOP で受け取れるように設定.
== 参考文献
* ((<[ITPASS2011]qpopper のインストールと設定>))
* ((<Qpopper|URL:http://www.emaillab.org/djb/qmail-pop/qpopper.html>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
= qpopper のインストールと設定
APOP サービスを提供するため, qpopper のインストールと設定を行った.
勉強のためにインストールは行ったが,
ITPASS サーバを POP サーバとして利用している人は皆無らしいため,
使いたいという人が現れるまで, POP は休止しておく.
== ソースコードのダウンロード
((<URL:ftp://ftp.qualcomm.com/eudora/servers/unix/popper/>)) でバージョンを確認し, 最新のものをダウンロードすること.
下ではバージョン 4.1.0 をダウンロードしていった.
# cd /usr/local/src
# wget ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.1.0.tar.gz
# tar zxvf qpopper4.1.0.tar.gz
# cd qpopper4.1.0
== qpopper を起動するユーザの作成
qpopper を動作させるためのユーザとして, pop を作成した.
# adduser --system --ingroup mail --no-create-home --shell /bin/false --disabled-password --home /nonexistent pop
passwd ファイルに pop ユーザに関する情報を書き込む. 下記の例では UID は 119, GID は 8 となっているが, その部分はインストール時の状況による.
# id pop
と打ち込んだところ
uid=122(pop) gid=8(mail) 所属グループ=8(mail)
と返ってきたので, UID は 122, GID は 8 として進めた.
# vipw
pop:x:122:8:Post Office Owner:/nonexistent:/bin/false
ここで,
you may need to modify /etc/shadow for consistency.
というメッセージが出てくるので, vipw -s コマンドで, pop の行が追加されていることを確認した.
== ビルド
# ./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.1.0/popper/Makefile を編集し, OS_DEFS の行を以下のように変更した.
OS_DEFS = -DLINUX -DUNIX -DAPOP_ONLY
ビルドした.
# make
== インストール
# make install
ここで, /user/local/src/qpopper4.1.0/Makefile の install の項目に, (インストールディレクトリ )/share/man というディレクトリが作成されていることを確認する.
インストールディレクトリに share という名のディレクトリが作成されていない場合は share ディレクトリを作成し # make install を行う.
また, エラーが出る場合には, /usr/local/src/qpopper4.0.18/popper/Makefile の install の項目の 3 つ目の if 文を 以下のように書き換える.
変更前
@if [ "x${pop_auth}" != "x" ]; then \
@${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
@echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
${installdir}/${pop_auth} -init -safe; \
@echo "Initialized popauth database"; \
fi
変更後
@if [ "x${pop_auth}" != "x" ]; then \
${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
${installdir}/${pop_auth} -init -safe; \
echo "Initialized popauth database"; \
fi
((*申し送り事項: どこを書き換えたのかわかりにくいので, diff -u の結果を貼り付けるようにする (納多)*))
とあるが, 現在(qpopper 4.1.0 )は
@if [ "x${pop_auth}" != "x" ]; then \
${INSTALL} -s -m 4755 -o ${apop_uid} -g 0 ${pop_auth} \
${installdir}/${pop_auth}; \
echo "Installed popauth as ${installdir}/${pop_auth} " \
"with uid ${apop_uid}"; \
if [ "x${apop_dir}" != "x" ]; then \
if [ ! -d "${apop_dir}" ]; then \
${base_dir}/mkdir-sh "${apop_dir}" "0700" "${apop_uid}:0" ; \
echo "Created directory ${apop_dir}" ; \
fi \
fi ; \
echo "Initializing popauth database"; \
${installdir}/${pop_auth} -init -safe; \
fi
となっており @ をとる必要がなかった.
また, mkdir-sh が qpopper 4.1.0 には含まれていなかったため
((<URL:http://europa.cocolog-nifty.com/space/2011/07/qpopperv410mkdi.html>))
を参考にして ./Makefile と./popper/Makefile を書き換え, 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 の実行ファイル群へパスを通した. ((<[ITPASS2011a]パスの設定>)) の ((* <一般ユーザ用コマンドのパス> *)) に ((*/usr/local/qpopper /sbin*)) を追加した.
(大抵, sbin はシステム用コマンドがインストールされる場所であるが, 一般ユーザが使用する pop_auth もインストールされているため, 一般ユーザ用コマンドのパスとして登録する).
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加した. 詳しくは ((<[ITPASS2011a]パスの設定>)) を参照のこと.
MANDATORY_MANPATH /usr/local/qpopper/share/man
MANPATH_MAP /usr/local/qpopper/sbin /usr/local/qpopper/share/man
MANDB_MAP /usr/local/qpopper/share/man /usr/local/qpopper/share/man
== 動作チェック
まず APOP で使用するパスワードを設定した.
ここではユーザを chikuwa3 とした. ここで入力するパスワードはログインパスワードと異なっていてもよい.
> popauth
Changing only APOP password for chikuwa3.
New password: (パスワードを入力)
Retype new password: (パスワードを入力)
次にメールを chikuwa3 宛に送った.
> sudo -s
# mail chikuwa3
Subject: test
aaaaa (CTRL+D)
Cc:
メールがメールスプールにあるかどうかをチェックした.
# ls -l /home/chikuwa3/Mailbox
-rw------- 1 chikuwa3 chikuwa3 440 Oct 14 20:08 Mailbox
届くことが確認できれば,
別の適当なホストで ITPASS サーバからメールを APOP で受け取れるように設定.
== 参考文献
* ((<[ITPASS2011]qpopper のインストールと設定>))
* ((<Qpopper|URL:http://www.emaillab.org/djb/qmail-pop/qpopper.html>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]