[Memo2012][ITPASS]qpopper のインストールと設定

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 で受け取れるように設定.

参考文献

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

Last modified:2012/11/28 16:16:28
Keyword(s):
References:[[ITPASS2012]2012年度サーバ構築ログ]