[[DRAC(Dynamic Relay Authorization)についての日本語情報]]
 #contents
 ----
 * 当ドキュメントについて [#u2acedbc]
 
  DRAC のアーカイブ【 drac.tar.Z 】付属の【 INSTALL 】ドキュメントを和訳したものです。
 
 * INSTALL [#c6fa4a23]
 
  この取り扱い説明書は特定のオペレーティング・システム(OS)とソフトウェア構成のためのものです。構成が一致しない場合でも、少なくとも例の役には立つでしょう。DRAC ウェブページ http://mail.cc.umanitoba.ca/drac/index.html では最新の詳細な説明書を表示しています。
 
  今 DRAC は Debian Linux に採用されています。Debian Linux ではコンパイル作業は不要です。以下の URL から情報を取得してください。
 
 >>http://packages.debian.org/drac&br;
 http://ftp.debian.org/debian/pool/main/d/drac/&br;
 http://buildd.debian.org/build.php?arch=&pkg=drac&br;
 http://bugs.debian.org/drac
 <<
 
 インストールにあたって、まず sendmail がコンパイルされた時と''同じ Barkeley db のバージョンで DRAC をコンパイルしなくてはいけません''。場合によっては sendmail のコンパイル時と現在ではシステムにセットアップされているバージョンが違うかもしれないためです。`strings /usr/lib/sendmail | grep -i sleepy' として調査する方法もあります((訳者の環境では、どのように調査に役立つか分かりませんでした……Sleep という文字列はありました))。 Barkeley((バークレー)) db パッケージのバージョン 2.x, 3.x, 4.x (http://www.sleepycat.com/)が推奨です。バージョン 1.85 でも動作します。重要な事は、sendmail コンパイル時と同じバージョンのものを用いる事です。
 
 1) サーバのシステムにあわせて Makefile を編集します。
 
 > Soralis 用の設定:
         INSTALL = /usr/ucb/install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO
         CC = <your compiler>
         RANLIB = :
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS = -L/path/to/db/library -lnsl -ldb
         TSTLIBS = -L. -ldrac -lnsl
         MANLIB = 3
         MANADM = 1m
 
 > SunOS 4.x 用の設定:
         INSTALL = install
         EBIN = /usr/local/etc
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST
         CC = <your compiler>
         RANLIB = ranlib
         CFLAGS = -Dstrtoul=strtol $(DEFS) -g -I/path/to/db/include
         LDLIBS = -L/path/to/db/library -ldb
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS = -I
         MANLIB = 3
         MANADM = 8
 
 > BSDI 用の設定:
         INSTALL = install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST
         CC = <your compiler>
         RANLIB = ranlib
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS = -L/path/to/db/library -ldb
         TSTLIBS = -L. -ldrac
         MANLIB = 3
         MANADM = 8
 
 > IRIX 6.2 用の設定:
         INSTALL = /usr/bin/X11/bsdinst
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO -D_SVR4_TIRPC
         CC = <your compiler>
         RANLIB = :
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS = -L/path/to/db/library -lnsl -ldb
         TSTLIBS = -L. -ldrac -lnsl
         MANLIB = 3
         MANADM = 1m
 
 > NetBSD 用の設定:
         INSTALL = install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
         CC = <your compiler>
         RANLIB = ranlib
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS =
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS = -C
         MANLIB = 3
         MANADM = 8
 
 > FreeBSD 2.2.x 用の設定:
         INSTALL = install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST -DDASH_C
         CC = <your compiler>
         RANLIB = ranlib
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS =
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS = -I -C
         MANLIB = 3
         MANADM = 8
 
 > FreeBSD-4.1 with gdbm-1.8 用の設定:
         INSTALL = install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFLOCK_LOCK -DGETHOST -DDASH_C
         CC = cc
         RANLIB = :
         CFLAGS = $(DEFS) -g -I/usr/local/include
         LDLIBS =
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS = -C
         MANLIB = 3
         MANADM = 1m
 
 > Linux 用の設定:
         INSTALL = install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
         CC = <your compiler>
         RANLIB = :
         CFLAGS = $(DEFS) -g
         LDLIBS = -ldb
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS = -C -I
         MANLIB = 3
         MANADM = 8
 
 > AIX 用の設定:
         INSTALL = /usr/ucb/install
         EBIN = /usr/local/sbin
         MAN = /usr/local/man/man
         DEFS = -DD_BSD -DBSD_INCLUDES -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDEBUG
         CC = <your compiler>
         RANLIB = :
         CFLAGS = $(DEFS) -g -I/path/to/db/include
         LDLIBS = -L/path/to/db/library -ldb
         TSTLIBS = -L. -ldrac
         RPCGENFLAGS =
         MANLIB = 3
         MANADM = 1m
 
 2) パッケージをコンパイルします
  $ make
 
 3) サーバにインストールします((訳者注 - プロンプトが # になっているのは root 権限でという意味))
  # make install
 
 4) man ページのインストール
  # make install-man
 
 5) dracd 起動スクリプトのインストール。Solaris は dracd-setup を調整して /etc/init.d にインストールし、S87dracd を /etc/rc2.d にリンクする((訳者注 - Linux 系であれば dracd-setup.linux というファイルがあります))
 
 6) dracd デーモンの起動。Solaris の場合は
  # sh /etc/init.d/dracd-setup start
 
 7) POP/IMAP サーバ側の調整:dracauth() クライアント機能は利用者が各々メールを受信するというサーバ環境に適しています。利用者の認証が行われる祖、すぐに dracauth() がコール((プログラム内での関数呼び出し機能のこと))されます。メールサーバがPOP/IMAP と SMTP と分かれている時には、より複雑なインターフェースを必要とします。詳細は testing.c と dracauth.c を参照してください。POP/IMAP サーバとメールサーバが同じマシン上で動作している場合は、サーバホスト名を"localhost"として明示できます。むしろ、ランタイム・コンフィギュレーション・パラメータとして用いる方がよいでしょう。以下では qpopper で利用するためのサンプルのパッチを記述しておきます。
 
  --------8<--------
  *** pop_pass.c-nodrac   Sat Jun 27 10:56:00 1998
  --- pop_pass.c  Wed Jul 22 22:54:04 1998
  ***************
  *** 19,24 ****
  --- 19,28 ----
  
    #include <pwd.h>
    #include "popper.h"
  + #ifdef DRAC_AUTH
  + #include <netinet/in.h>
  + #include <arpa/inet.h>
  + #endif /* DRAC_AUTH */
  
  
    /* This error message is vague on purpose to help reduce help improve
  ***************
  *** 502,507 ****
  --- 506,519 ----
  
        /*  Initialize the last-message-accessed number */
        p->last_msg = 0;
  +
  + #ifdef DRAC_AUTH
  +     {
  +       char *err;
  +       if (dracauth("localhost", inet_addr(p->ipaddr), &err) != 0)
  +         pop_log(p,POP_PRIORITY,err);
  +     }
  + #endif /* DRAC_AUTH */
  
        /*  Authorization completed successfully */
        return (pop_msg (p,POP_SUCCESS,
  *** make.solaris2-nodrac        Sat Feb 17 14:25:15 1996
  --- make.solaris2       Wed Jul 22 23:06:47 1998
  ***************
  *** 39,45 ****
                          -DAUTH -DMAILOCK -DDEBUG -DBINMAIL_IS_SETGID \
                          -DNO_AT_HOST -DNFS_SPOOL -DPOP_ACCT -DPOP_LLOG \
                          -DNONAUTHFILE=\"/etc/popper.deny\" \
  !                       -DBULLDIR=\"/var/spool/bulls\"
  
    TARGET                =       popper.solaris2
  
  --- 39,45 ----
                          -DAUTH -DMAILOCK -DDEBUG -DBINMAIL_IS_SETGID \
                          -DNO_AT_HOST -DNFS_SPOOL -DPOP_ACCT -DPOP_LLOG \
                          -DNONAUTHFILE=\"/etc/popper.deny\" \
  !                       -DBULLDIR=\"/var/spool/bulls\" -DDRAC_AUTH
  
    TARGET                =       popper.solaris2
  
  ***************
  *** 56,62 ****
  
  
    ${TARGET}: ${OBJS}
  !       ${CC}  ${OBJS} -o ${TARGET} -lsocket -lnsl -lresolv -lkrb -lmail
  
    tar: ${SRCS} ${DOCS} ${MAKEFILE}
          rm -f ${TAR} *.Z*
  --- 56,62 ----
  
  
    ${TARGET}: ${OBJS}
  !       ${CC}  ${OBJS} -o ${TARGET} -L/usr/local/src/drac -ldrac -lsocket -lnsl -lresolv -lkrb -lmail
  
    tar: ${SRCS} ${DOCS} ${MAKEFILE}
          rm -f ${TAR} *.Z*
  --------8<--------
 
 8) メールサーバ(MRA)をインストールします。qpopper の場合であれば `make' `make install' です。
 
 9) sendmail.cf の調整を行います。sendmail 8.9.0 では以下の行を .mc ファイルの LOCAL_CONFIG 配下に記述しなければいけません。
 
  # dynamic relay authorization control map
  Kdrac btree /etc/mail/dracd
 
  また LOCAL_RULESETS には以下の項目が必要です。
  SLocal_check_rcpt
  # allow recent POP/IMAP mail clients to relay
  R$*                             $: $&{client_addr}
  R$+                             $: $(drac $1 $: ? $)
  R?                              $@ ?
  R$+                             $@ $#OK
 (※訳者注 - sendmail.mcへ記入するとき、左側右側の間にはタブが入っています。空白だと機能しませんので、入力の際には注意が必要です)
 
  そして .cf ファイルを再作成します((m4 sendmail.mc > sendmail.cf))。
 
 19
 10) sendmail を再起動します。SMTP とキュー(queue)デーモンは再起動させる必要があります。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS