ozenji という名前のノード(ホスト)から, ノード名が gcd である GCD*8 のゲートウエイへ UUCP 接続する場合を例に, Taylor UUCP の設定方法を説明します。 設定ファイルを 表 2 に示します。 設定ファイルを置くディレクトリは, コンパイル時の設定で変更可能ですが, 通常は /etc/uucp か /usr/conf/uucp であることが多いようです。 config ファイル(メイン設定ファイル)以外の設定ファイルは, config ファイルでパスを設定可能です。 また, config ファイルは実行時オプションで変更することもできます。
表 2 Taylor UUCP の設定ファイル | ||||||||||||||
|
UUCP で発信するマシンに必要な設定を, 各設定ファイルごとに解説します。
メイン設定ファイルです。 自ノード名, 作業用ディレクトリ, 他の設定ファイルのパス名, ログ・ファイル名など, UUCP システム全体に関係する設定を行います。 ほとんどはデフォルトの設定をそのまま使えばよいので, ここでは, 自分のノード名だけを設定しています(図 13)。
nodename ozenji |
図 13 config ファイルの設定例 |
自分のノード名以外は,ほとんどデフォルトのままで構いません。 |
接続する相手ノードごとの設定を行うファイルです(図 14)。 「system」で始まっている行から次の「system」行までが, それぞれの相手ノードごとの設定で, 最初の「system」行までは, すべてのノードに共通するデフォルト設定です。
call-login * call-password * time Any port ACU chat "" \r\c ogin:-\r\c-ogin:-\r\r\c-ogin: \L word: \P commands rnews rmail system gcd alias gcd.org phone 044-XXX-XXXX system ttyS0 port ttyS0 |
図14 sys ファイルの設定例 |
この例では, 相手ノードとして「gcd」を定義しています。 接続用のポート(「port」行)として 「ACU*9」(後述する port ファイルで定義)を用い, 電話番号は「044-XXX-XXXX」(一部伏せ字)としています。
ダイヤルアップしたときのログイン方法を「chat」行で指定しています。 この指定では, まず改行(\r)を送信し, 「login:」プロンプトが返ってくるのを待って, アカウントID(\L)を送信します。 さらに「Password:」プロンプトが返ってくるのを待って, パスワード(\P)を送信します。
ここで「\L」,「\P」で送信する実際の文字列は, それぞれ「call-login」行,「call-password」行で指定します。 ですが, アカウント ID はともかくパスワードを sys ファイルに直に書いてしまうと, この設定ファイルを一般ユーザーから読めない設定にしなければならないので, 通常はここで示した例のように「*」を指定しておいて, アカウント ID とパスワードは call ファイル(発呼用アカウント・ファイル)に書くようにした方がよいでしょう。
call ファイルは 図 15 に示すように, 接続する相手ノードごとに, ノード名, アカウント ID, パスワード*10 を空白で区切った行を列挙します (この例では接続先が1 つだけなので 1 行だけです)。
gcd Uozenji h=7kjiZe |
図 15 call ファイルの設定例 |
接続する相手ノードごとに,ノード名, |
接続するためのポートを定義するファイルです(図 16)。 「port」行から次の「port」行までが, それぞれのポートごとの設定です。
speed 115200 port ACU type modem device /dev/ttyS0 dialer hayes port ttyS0 type direct device /dev/ttyS0 |
図 16 port ファイルの設定例 |
ポート「ACU」はモデム型の装置で, データの入出力には「/dev/ttyS0」を使用し, 転送速度は 115200 ビット/秒, ダイアル方法は「hayes*11」(後述する dial ファイルで定義) であるという意味です。
ポート「ttyS0」の「type direct」とは, ダイアル装置が不要な直接接続という意味ですが, 実際には /dev/ttyS0 は前述したようにモデムに接続されているわけで, ここではデバッグ等の目的でモデムを直接操作するために定義しています。
例えば, cu コマンドは sys ファイルで設定した相手ノードへ接続するためのコマンドですが,
% cu ttyS0 |
と実行することによりモデムにつながり, AT コマンドを入力してモデムを直接操作することができます。
モデム型の装置においてダイアルする方法を定義するファイルです(図 17)。 「dialer」行から次の「dialer」行までが, それぞれのダイアル方法の設定です。
chat-fail BUSY chat-fail NO\sCARRIER dialer hayes chat "" AT OK ATD\T CONNECT |
図 17 dial ファイルの設定例 |
ダイアル方法「hayes」は, まず「AT」を送信し, モデムから「OK」が返ってきたら, 次に「ATD」に続けて電話番号(\T)を送信する, モデムから「CONNECT」が返ってきたら成功, 「BUSY」または「NO CARRIER」が返ってきたら失敗, という意味です。
以上で, 発呼側のノード ozenji で必要な設定ファイルがすべてそろいました。 まず cu コマンドで相手ノード gcd へ接続してみます。 gcd の「login:」プロンプトが出れば成功です。 続いてアカウント ID とパスワードを手で入力してみます。 「Shere=相手ノード名」が出るか確認します(図 18)。
% cu gcd login: Uozenji Password:h=7kjiZe Shere=gcd |
図 18 発呼側の動作確認 |
接続後,アカウントID とパスワードを手で入力して |
次に uucico を実行してみます。 ログ・ファイル(通常は /var/spool/uucp/Log)で, UUCP 接続が正常に行われたか確認します。
% uucico -s gcd |
もしエラーが生じている場合は, --debug オプションを使ってデバッグ・レベルを上げ, 詳細なログを出力させるとよいでしょう。
着呼側は, かかってくる電話を受けるだけですから, ダイアル方法などを細かく指定する必要がある発呼側に比べれば Taylor UUCP 自体の設定は簡単です。 半面, 電話を受けてから uucico へ制御を渡すまでが少々複雑です。
電話を受けるのが UUCP 接続の場合だけであれば単純ですが, UUCP だけのために電話番号を 1 つ割り当てるのはもったいないので, 通常は複数のサービスに対応させる必要があるからです。 例えば GCD のゲートウエイの場合, 1 つの電話番号で
を受付けています。 接続のタイプによって適切なコマンドを起動するために mgetty+sendfax*12 を使っています。
mgetty+sendfax に含まれる mgetty プログラムは, login.config 設定ファイルで, アカウントID ごとに起動するプログラムを設定できます。 GCD のゲートウエイの場合, 図 19 のように設定しています。
U* uucp @ /usr/libexec/uucp/uucico -l -u @ /AutoPPP/ uucp ppp /usr/local/etc/paplogin * - - /bin/login @ |
図 19 login.config の設定例 |
mgetty の設定ファイル「login.config」で, アカウント ID ごとに起動するプログラムを設定することができます。 |
つまり,FAX モデムからの信号を mgetty プログラムが監視していて, データ着信があると login: プロンプトを出します。 1 文字目が「U」であるアカウントID (「U*」の行で指定)を受信すれば uucico を実行し, PPP フレーム(「/AutoPPP/」の行で指定)を受信すれば PPP の PAP 認証を行います。 それ以外のアカウント ID(「*」の行で指定)を受信した場合は, login プログラムを実行します。 FAX 着信の場合は, mgetty は FAX データを受信します。
したがって, アカウント ID「Uozenji」を受信した場合は, 「uucico -l -u Uozenji」が実行されます。 -l オプションは, uucico に「login:」および「Password:」プロンプトを表示させるためのものです。 ただし, 「-u アカウントID」オプションを付けると「login:」プロンプトをスキップします。
ID とパスワードは, passwd ファイル(着呼用アカウント・ファイル)に, 「Uozenji h=7kjiZe」のように書いておきます。
config ファイルと sys ファイルは, 発呼側とほぼ同様です。 例えば, config ファイルは「nodename gcd 」のように自分のノード名を設定し, sys ファイルは, 相手ノードである ozenji を定義します(図 20)。 ozenji が gcd に接続するときのアカウント ID を Uozenji に限定するために, 「called-login」行を指定します。
commands rnews rmail system ozenji alias ozenji.gcd.org called-login Uozenji |
図 20 着呼側の sys ファイルの設定例 |
適当な端末エミュレータ (cu コマンド,kermit コマンド, あるいは Windows95 標準の「ハイパーターミナル」など) で gcd へ電話をかけてみます。 「login:」プロンプトが返ってきたら, 「Uozenji」を入力し, 「Password:」プロンプトが返ってきたらパスワードを入力してみます。 「Shere=gcd」が返ってくれば成功です。 後は, 発呼側で uucico を実行して UUCP 接続を確立するだけです。
本稿は日経Linux 2000 年 7 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 4 回「UUCP の活用」を日経BP 社の許可を得て転載したものです。
Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます