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"を機能させるために必要なソフトです.ちなみに"Berkeley DB"という組込み用データベースが必要である,とありますが,Vine2.1.5では特にインストールしなくてもいいようです.
- http://mail.cc.umanitoba.ca/drac/ から"drac.tar.Z"をダウンロードして解凍する.
> tar xzvf drac.tar.Z
- 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
- rpc.dracd.c を編集(パスを変更)
#define DBFILE "/etc/postfix/dracd.db" #define ALFILE "/etc/postfix/dracd.allow"
- dracd-setup.linux を編集(POP認証の有効期限を5分にする)
"daemon rpc.dracd&"の行を daemon rpc.dracd -e 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/K22dracd11/6, 2002 追記: このやり方だとマシンのシャットダウン時にFailする,という指摘を以前どなたかからメールいただいて,たしか解決法も教えていただいたのですが,せっかくのメールを紛失してしまいました. Failしても無視して構わないかもしれませんが,気になる方は修正してみてください.
- Qpopperのインストール時に必要なライブラリを手動でインストール
# cp libdrac.a /usr/lib/
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
- Vine Seedから"qpopper-4.0.3-0vl1.src.rpm"をもらってきてインストール
# rpm -ivh qpopper-4.0.3-0vl1.src.rpm
- 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
- rpmを作成
# rpm -ba qpopper.spec
- 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の設定
- RPMパッケージをインストールするとユーザ 'pop'が自動的に作成されるはずですが,もしなんらかの理由でできていなければ,手動で作成します.
# /usr/sbin/useradd -d /dev/null -s /dev/null -M pop
- qpopperのAPOP用DBを初期化します.
# /usr/sbin/popauth -init
- ユーザごとに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にもどる |