[[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)デーモンは再起動させる必要があります。