WIDE Sendmail.cf Generation Package Version 3.7 Jun. 15,1998 中村 素典/WIDE Project motonori@wide.ad.jp 《パッケージについて》 このパッケージは sendmail.cf を作成するためのツールと、それにより作成さ れたサンプルファイルにより構成されています。作成される sendmail.cf は、基 本的に sendmail.mx 用ですが、設定により sendmail.nomx 用の sendmail.cf を 作成することも可能です。このツールは、sendmail 5.xx をベースとした標準的 sendmail および sendmail 8.x の使用を前提とした sendmail.cf を作成します が,マルチトークンクラス利用可能に拡張を施した sendmail 5.xx のための sendmail.cf もサポートしています。 なお、OS に標準添付されている sendmail は、場合によってはオリジナルの sendmail で利用しているオプション文字等が別の意味で利用されていることも あるので、CF で作成された sendmail.cf によってそのような sendmail が うまく動作しない、という場合もありますので、OS 標準添付の sendmail を 利用される場合はご注意下さい。 このツールは主に sh スクリプトを用いて作成されているので、まともな sh さえ載っていれば、コンパイル作業をおこなうことなく、すぐに利用することが できます。また sendmail.cfの生成段階では、perl を利用するようになってい ます。従来からの sed を利用する方式は廃止されました。 なお、このパッケージの修正/再配布に関しては制限を行ないませんが、修正 を行なったものを配布する場合はその旨を明記して下さい。また、このパッケー ジから作成された sendmail.cf の配布に関しては,それに記載された条件に従う ものとします.このパッケージの内容の不備等から発生した損害について、作者 は何ら責任を負いません。このパッケージに関するコメント等ありましたら、作 者まで御連絡頂けると幸いです。 《sendmail.cf のバージョンについて》 sendmail 8.x からは、sendmail.cf にバージョンの概念が入りました。これは、 従来の sendmail 5.x とのコンパチビリティを残しながら、8.x から導入された 新しい機能も利用できるようにするための配慮です。8.x では、従来の 5.x 用の cf は Version 1 に位置付けられており、ほぼ問題なくそのまま利用できます。 8.x から導入された新しい機能を全て利用するためには,相応の Version の cf を利用する必要があります. sendmail release 5.x : Version 1 (V1) sendmail release 8.6 : Version 5 (V5) sendmail release 8.7 : Version 6 (V6) sendmail release 8.8 : Version 7 (V7) sendmail release 8.9 : Version 8 (V8) もちろん,Version 5 の sendmail.cf は sendmail 8.8 でも利用可能です. このパッケージでは、V1, V5, V6, V7, V8 のいずれの cf も作成できるように なっています。ただし、当然のことながら、新しい Version の sendmail.cf は 古い Release の sendmail では利用できませんので注意して下さい。 (※ sendmail.cf のバージョンを示す V1, V5, V6, V7, V8 と,sendmail 自体の リリースバージョンを示す R5 (5.xx のこと.稀に V5 とも表記されることがある), R8 (8.x のこと.V8 とも表記されるかもしれない) とは紛らわしいですが, 混乱しないように十分注意してください) 《マルチトークンクラスをサポートする sendmail 5.xx 》 マルチトークンクラスのサポートとは,wxyz.ac.jp のような '.' で連結された ドメイン名が sendmail.cf のクラス定義に記述できるようになっていることを意 味します.オリジナルの sendmail 5.xx はマルチトークンクラスをサポートして いませんが,sendmail 5.67+1.6W や SunOS 4.1.X,NewsOS 4.2.1 などに添付の sendmail もマルチトークンクラスをサポートするように拡張されているようです. 手持ちの sendmail がマルチトークンクラスをサポートしているかどうかは,doc ディレクトリにある CheckMTC.cf を使って確認することができます.確認方法は CheckMTC.cf の最初の部分に書いてあります. 《sendmail のセキュリティーホールについて》 sendmail 5.xx を始めとする古い sendmail には,見る権限がないファイルである のに見ることができたり,アカウントを持たない人がプログラムを実行することが できるというセキュリティーホールが報告されています.特にインターネットから 容易にアクセスが可能なホストにおいては,最新の sendmail に入れ換えることを お勧めします.また,ベンダーによっては,sendmail のバージョンアップサービ スを行っているので,ベンダーに確認をとるのも良いでしょう. 《パッケージの使用方法》 1. Makefile の PERL 変数に perl のコマンド名を設定します.perl4 や perl5 といった perl 以外の名前を使用している場合でなければ,変更 する必要はありません.perl は,このパッケージを実行する環境にお いて,コマンドサーチパスの中に発見できるようにしておいてください. 自動的にインストールされているパスを検索します. 2. make cleantools , make tools を順に実行し,Tools/ ディレクトリ の中に用意されている sendmail.cf 作成用ツールを自分の環境に合わ せて再構築します.1. で PERL 変数に設定された perl コマンドが make 実行時のサーチパスから検索され,スクリプトの先頭行に書き込 まれます. perl の存在するパスが Tools/ の中にあるスクリプトのものと実際と が異なっている場合にも,再構築の操作を行ってください. 3. 標準定義 def ファイルを作成する % make samples この操作により以下の def ファイルが作成されます. smtpcheck-v8.def sendmail 8.9.x 転送拒否設定追加用 smtpcheck-v7.def sendmail 8.8.x 転送拒否設定追加用 sendmail-v8.def sendmail 8.9.x 用一般 sendmail-v7.def sendmail 8.8.x 用一般 sendmail-v6.def sendmail 8.7.x 用一般 sendmail-v5.def sendmail 8.6.x 用一般 sendmail-v1.def sendmail 5.x+1.6W 用一般 nmtc.def sendmail 5.x ベース用一般 null-v8.def sendmail 8.9.x 用 null client null-v7.def sendmail 8.8.x 用 null client null-v6.def sendmail 8.7.x 用 null client null-v5.def sendmail 8.6.x 用 null client null-v1.def sendmail 5.x 用 null client (null client は、全てのメールを特定のホストに送るために利用する) 配布パッケージには,すでに標準定義 def ファイルと,それから作成 された cf ファイルが添付されているので,make clean をしていない 限り,この操作は不要です. 4. *.def のうちの一つを sendmail.def など適当な名前のファイルにコ ピーし、必要な設定を記述する % cp Standards/sendmail-v8.def sendmail.def % vi sendmail.def : 多くのホストで共通な最小限度の設定については doc/INTRO.jpn を,詳細な設定の説明については doc/MANUAL.jpn を参照してく ださい..def ファイル中のコメントに現れる V1/V5 という記号 は,このドキュメントの最初に書かれている sendmail.cf のバー ジョンを示すもので,それぞれ R5/R8 の sendmail で利用できる sendmail.cf での設定であることを示しています. 4. 設定が完了したら sendmail.cf を生成する % make sendmail.cf ${BASE}.cf という名前を make の引数として指定すると, ${BASE}.def から ${BASE}.cf が作成されます. 5. sendmail.cf をシステムディレクトリにインストールする インストールの際には,セキュリティーホールにならないよう, ファイルやディレクトリのパーミッションに注意しましょう. なお、make all を実行すると、sendmail-v8.cf, sendmail-v7.cf などが作成 されます.これらは特殊な設定を一切行なう必要のない一般のホストにそのまま 利用できます. 別のディレクトリを作成して作業を行なう場合は、Samples ディレクトリの中 に入っている Makefile を用いるた方が便利でしょう。また,*.def から別の ファイルを参照している場合は,Makefile の OBJS に作成したい cf のファイル 名を設定して make depend を行うと,depend rule が設定されるので便利です. 《null sendmail.cfについて》 このパッケージには、様々な機能を設定することを前提としたサンプル定義ファイ ル sendmail-v?.def の他に、null-v?.def が用意されています。null-v?.def は、 メールスプールを持たず、全てのメールを指定したスプールホストに送るだけの 機能を実現した簡単な sendmail.cf を作成します。使用の際には、定義ファイル 中の SPOOL_HOST にスプールを持つホストを指定して、sendmail.cf を作成して 下さい。 《パッケージの動作のデバッグ方法》 動作がおかしい場合は CF_DEBUG 環境変数に filter,sample,config,all のいず れか、あるいは複数を : で区切って設定することにより、デバッグ出力ファイル DEBUG.* を出力させ、動作内容をチェックすることができます。 filter: Tools/* の作成に関するデバッグ情報 sample: samples.def などの作成に関するデバッグ情報 config: *.cf の作成に関するデバッグ情報 all: 上記全てのデバッグ情報 《謝辞》 このパッケージは,京都大学,立命館大学,情報技術開発株式会社ならびにその他 の人々の協力によって作成されたものであるので,ここに感謝の意を表します.