Rough English Here
 

PostfixとAPOP,POP before SMTP

10/18, 2003: 更新停止
11/6, 2002: Maildir形式を使うページを新設しました. なお,このページの説明ではシャットダウン時に不備があるようです(注意書きを追加しました).
3/3, 2002: DRACのインストールにシャットダウン時にdracdを停止する記述を追加.portmapに関する記述を追加
3/3, 2002: procmailの不具合に関する記述を追加.qpopper-4.0.3-0vl1dracのSRPMをダウンロード可能に.
8/31, 2001: ページ公開
[028935]

内容が古くなったため、今後このページは更新されません。ご了承下さい。

えー,Vine Linux 2.1.5でPostfixを動かし,APOPとPOP before SMTPを使ったメールサーバを構築する試みです.

ちなみに"APOP"というのはPOPのユーザ認証の手続きを暗号化してパスワード垂れ流し状態を回避する仕組みですね.それから"POP before SMTP"というのはちょっとややこしんですが,SMTPには本来認証手続きがないために外部からのメールのリレーを許可すると不正中継に使われてしまう恐れがあります. だからといってメールのリレーを許可しないと外部からSMTPが使えなくなるので,たとえば自宅にメールサーバがあって,外出先から自宅のアカウントでメールを出したい,なんてときには不便です. そこで,外部のマシンがPOP接続をした場合,その後数分間は同じマシンからのSMTPリレーを許可することで,あたかもSMTPにユーザ認証機能が付いているかのようにするのが"POP before SMTP"です.

APOPにはqpopper,POP before SMTPにはDRAC(Dynamic Relay Authorization Control)というのを使います.

さらにMaildir形式を使いたい方は こちら をご覧ください.

DRAC (Dynamic Relay Authorization Control)のインストール
"POP before SMTP"を機能させるために必要なソフトです.
  1. http://mail.cc.umanitoba.ca/drac/ から"drac.tar.Z"をダウンロードして解凍する.

    > tar xzvf drac.tar.Z
    

  2. Makefileを編集(変更が必要な行だけ書いてあります)

    INSTALL = install
    EBIN = /usr/sbin
    DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -DREQ_HASH
    CFLAGS = $(DEFS) -g
    LDLIBS = -ldb
    TSTLIBS = -L. -ldrac
    RPCGENFLAGS = -C -I
    MANADM = 8
    

  3. rpc.dracd.c を編集(パスを変更)

    #define DBFILE "/etc/postfix/dracd.db"
    #define ALFILE "/etc/postfix/dracd.allow"
    

  4. dracd-setup.linux を編集(POP認証の有効期限を5分にする)

    "daemon rpc.dracd&"の行を
      daemon rpc.dracd -e 5&
    に変更.
    

  5. コンパイルとインストール

    > make
    # make install
    # make install-man
    # cp dracd-setup.linux /etc/rc.d/init.d/dracd
    # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc3.d/S78dracd
    # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc5.d/S78dracd
    # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc6.d/K22dracd
    

    11/6, 2002 追記: このやり方だとマシンのシャットダウン時にFailする,という指摘を以前どなたかからメールいただいて,たしか解決法も教えていただいたのですが,せっかくのメールを紛失してしまいました. Failしても無視して構わないかもしれませんが,気になる方は修正してみてください.

  6. Qpopperのインストール時に必要なライブラリを手動でインストール

    # cp libdrac.a /usr/lib/
    

ちなみに"Berkeley DB"という組込み用データベースが必要である,とありますが,Vine2.1.5では特にインストールしなくてもいいようです.
Qpopperのインストール
Vineには最初から入っていますが,DRACに対応させるために再コンパイルが必要です.Vine SeedからSRPMをもらってきて,SPECファイルを編集して再構築します.

作成したバイナリはこちら。これをお使いいただければ,以下の手順は省略可能です.

DRAC対応QpopperのRPMパッケージです.Vine2.1.5で動作を確認しています.

(ファイル名をクリックするとダウンロードページが表示されます)
ファイル名サイズ日付ライセンス備考
qpopper-4.0.3-0vl1drac.i386.rpm 620k 8/31, 2001 BSD
qpopper-4.0.3-0vl1drac.src.rpm 2.3M 3/3, 2002 BSD

  1. Vine Seedから"qpopper-4.0.3-0vl1.src.rpm"をもらってきてインストール

    # rpm -ivh qpopper-4.0.3-0vl1.src.rpm
    

  2. DRAC対応にするため,SPECファイルを編集

    # cd /usr/src/redhat/SPECS
    # emacs qpopper.spec
    
     (%buildセクションに追加)
      --prefix=/usr \
      --enable-bulletins=/var/spool/mail/bulletins \
      --enable-specialauth \
      --with-pam=qpopper \
      --with-popuid=pop \
      --enable-apop=/etc/pop.auth \
      --enable-drac    (←これ)
    
     (%preセクションのuseraddにオプションを追加)
     /usr/sbin/useradd -M -g pop pop -c "Pop Account" -d /dev/null -s /dev/null
    

  3. rpmを作成

    # rpm -ba qpopper.spec
    

  4. Qpopperをupdate

    # cd /usr/src/redhat/RPMS/i386
    # rpm -Uvh qpopper-4.0.3-0vl1drac.i386.rpm
    

Postfixの設定
/etc/postfix/main.cf を編集します.最後の項目が"POP before SMTP"の設定です. 他の部分はお使いのサーバにあわせて適切に設定してください.

myhostname = kappa.chmodx.dyndns.org ←メールサーバのFQDN
mydomain = chmodx.dyndns.org ←自ドメイン名
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8  ←SMTPを受け付けるアドレス
smtpd_recipient_restrictions =   ←POP before SMTPを使用する設定
	permit_mynetworks
	check_client_access hash:/etc/postfix/dracd
	check_relay_domains

APOPの設定
  1. RPMパッケージをインストールするとユーザ 'pop'が自動的に作成されるはずですが,もしなんらかの理由でできていなければ,手動で作成します.

    # /usr/sbin/useradd -d /dev/null -s /dev/null -M pop
    

  2. qpopperのAPOP用DBを初期化します.

    # /usr/sbin/popauth -init
    

  3. ユーザごとにAPOPアカウントを作成します.

    # /usr/sbin/popauth -user komoriya
    

procmailのアップデート
Vine Linux 2.1.5の場合,procmailをprocmail-3.21-0vl0.1にアップデートする必要があります. "rpm -q procmail"として,procmail-3.21-0vl0(もしくはこれ以前のバージョン)の場合は3.21-0vl0.1にアップデートしてください.

古いバージョンの場合,/var/spool/mail/以下に書き込み権限がないため,ユーザごとのスプールファイルを手動で作成する必要があります.

詳しくは こちらをご覧ください

# rpm -Fvh procmail-3.21-0vl0.1.i386.rpm

Inetd, Dracd, Postfixの(再)起動

# /etc/rc.d/init.d/inet restart
# /etc/rc.d/init.d/dracd start
# /etc/rc.d/init.d/postfix restart

なお,portmapが起動していることを確認してください(もし起動していなければ # /etc/rc.d/init.d/portmap start).

あとはメールクライアントを適切に設定すれば,使えるようになるはずです.

Copyright © 2001-2002 KOMORIYA Takeru リンクはご自由に (参考) →Linux Lifeにもどる