Changes in the English version(1.29 -> 1.30) are merged.

Submitted by: Saeki Takashi <saeki@ba2.so-net.ne.jp>
This commit is contained in:
Hiroyuki Hanai 1998-08-15 05:19:02 +00:00
parent 84dba82825
commit 410015cd20
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=3345

View file

@ -1,11 +1,11 @@
<!-- $Id: userppp.sgml,v 1.14 1998-04-13 02:33:57 hanai Exp $ -->
<!-- $Id: userppp.sgml,v 1.15 1998-08-15 05:19:02 hanai Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.29 -->
<!-- Original revision: 1.30 -->
<sect>ユーザ ppp の設定<label id="userppp">
<!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em>または
単に<em>ppp</em>としても知られている ppp を,
<!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em> または
単に <em>ppp</em> としても知られている ppp を,
あなたの FreeBSD 2.0.5 (以降) で動くようにすることを目的としています.
<p>また, ユーザ ppp を PPP サーバとして使う方法の概略についても述べています.
@ -40,13 +40,13 @@
呼びます. 特に断らない限り, このセクションのすべてのコマンドは root 権限で
実行する必要があります.
訳者注: 以前の日本語ハンドブックでは, iij-ppp のオリジナルアーカイブに
附属する日本語ドキュメントの参照をおすすめしていました.
しかし最近では FreeBSD 独自の拡張がいろいろと追加され, もともとの
iij-ppp のドキュメントではカバーしきれなくなって来ています.
ですが心配はいりません. 日本語マニュアルプロジェクトから
FreeBSD の日本語版マニュアルページが配布されるようになりました.
こちらもハンドブックとあわせて参照されることをおすすめします.
バージョン 2 の ppp では, 数多くの機能強化がおこなわれています.
どのバージョンの ppp がインストールされているのかを調べるには,
引数なしで ppp を起動し, プロンプトが表示されたら <tt>show version</tt> と
タイプしてください.
最新版の ppp にアップグレードするのは, (どのバージョンの FreeBSD においても)
難しいことではありません. <url url="http://www.Awfulhak.org/ppp.html"
name="www.Awfulhak.org"> から最新版のアーカイブをダウンロードしてください.
<sect1><heading>スタートの前に</heading>
@ -63,33 +63,41 @@
<item><p>プロバイダの電話番号.
<item><p>ログイン名とパスワード. これは通常の unix 形式のログイン名と
パスワードの組かもしれませんし, PPP PAP または CHAP の
ログイン名とパスワードの組かもしれません.
パスワードの組という場合もありますし, PPP PAP や CHAP の
ログイン名とパスワードの組という場合もあります.
<item><p>一つ以上のネームサーバの IP アドレス. 通常, プロバイダから
IP アドレスを二つ指示されているはずです.
自分でネームサーバを立ち上げている場合を除き, バージョン 1.X の
ppp を使用している場合には, この情報は<bf>絶対に</bf>必要です.
バージョン 2 の ppp からは, ネームサーバアドレスの自動設定機能が
追加されています. この機能をプロバイダ側でもサポートしていれば,
ppp の設定ファイルに <tt>enable dns</tt> と書いておくことで
ppp がネームサーバアドレスの設定をおこなうようになります.
</itemize>
プロバイダからは以下の情報が提供されているはずですが,
どうしても必要というわけではありません:
<itemize>
<item><p>プロバイダのゲートウェイの IP アドレス.
ゲートウェイとは, あなたがそこに接続をおこなって,
<tt>デフォルトルート</tt>として設定することになるマシンです.
もしプロバイダがこのアドレスを明示していなくても大丈夫.
プロバイダがこのアドレスを明示していないとしても, 最初は
適当に設定しておいて, 接続時にプロバイダの PPP サーバから
教えてもらうことができます.
<p>このアドレスは, 以降<tt>HISADDR</tt>と呼ぶことにします.
正しいアドレスを教えてもらうことができます.
<p>このアドレスは, 以降 <tt>HISADDR</tt> と呼ぶことにします.
<item><p>プロバイダのネットマスク設定. 繰り返しますが, 不明な場合には
<item><p>プロバイダのネットマスク設定. プロバイダが明示していないとしても,
ネットマスクとして 255.255.255.0 を使用しておけば問題ありません.
<item><p>一つ以上のネームサーバの IP アドレス. 通常, IP アドレスが二つ
プロバイダから指示されているはずです. 自分でネームサーバを
動かしているのでなければ, この情報は<bf>絶対に</bf>必要です.
<item><p>もしプロバイダから固定の IP アドレスとホスト名の割り当てを
受けているのなら, 同様にそれも必要になるでしょう.
そうでなければ, どのアドレス範囲から IP アドレスの割り当てが
おこなわれるかを知っておく必要があるでしょう.
もし範囲が示されていないとしても, 任意の IP アドレスを
受け入れるようにすることが可能です (後で説明します).
受けていれば, その情報を指定しておくこともできます.
割り当てを受けていなければ, 接続先から適切な IP アドレスを
指定してもらいます.
</itemize>
もし, これらの情報のうち不明なものがあれば, プロバイダに連絡し
もし, 必要な情報が不足していれば, プロバイダに連絡を取っ
確認しておいてください.
<sect1><heading>ppp 対応カーネルの構築</heading>
@ -130,11 +138,15 @@
tun1: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mtu 576
tun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 203.10.100.1 --> 203.10.100.20 netmask 0xffffffff
tun3: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mtu 1500
tun3: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
</verb></tscreen>
この例ではトンネルデバイスが四つあって, うち二つに設定がおこなわれていて
現在使用中であることがわかります.
この例ではトンネルデバイスが四つ存在し, そのうち二つに設定が
おこなわれ, 使用中であることがわかります.
上の例で RUNNING フラグがオンになっているものがありますが, これは
そのインターフェースが何かに使用されていることを示しているだけである
ということに注意してください. つまり, RUNNING になっていない
インターフェースがあったとしても, それはエラーではありません.
<p>トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で
カーネルの再構築ができない場合でも, 方法がないわけではありません.
@ -178,12 +190,21 @@
$
</verb></tscreen>
まだ RUNNING フラグがセットされていない場合もあります.
その時は以下のような出力が得られるでしょう:
<tscreen><verb>
$ ifconfig tun0
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
$
</verb></tscreen>
<sect1><heading>名前の解決に関する設定</heading>
<p>リゾルバ (resolver) はシステムの一部分で, IP アドレスとホスト名との
変換をおこないます. IP アドレスとホスト名を対応させるためのマップを,
二つの場所のうちの一つから探すように設定できます.
一つめは<tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです.
一つめは <tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです.
二つめはインターネット ドメインネームサービス (DNS) と呼ばれる
分散データベースですが, これに関する議論は このドキュメントで扱う範囲を
越えていますので, これについての説明はおこないません.
@ -192,19 +213,20 @@
<p>リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし
どこからマッピング情報を見つけるのかは, 最初に指示しておく必要があります.
これは まず<tt>/etc/host.conf</tt>ファイルを編集することでおこないます.
混乱の元になりますので, このファイルを<tt>/etc/hosts.conf</tt>と
これは まず <tt>/etc/host.conf</tt> ファイルを編集することでおこないます.
混乱の元になりますので, このファイルを <tt>/etc/hosts.conf</tt>
呼んだりしては<bf>いけません</bf> (余分な ``s'' がついていますね).
<sect2><heading>/etc/host.conf ファイルの編集</heading>
<p>このファイルには 以下の 2 行が書かれているはずです:
<p>このファイルには 以下の 2 行が (この順番で) 書かれているはずです:
<tscreen><verb>
hosts
bind
</verb></tscreen>
これは, 最初に<tt>/etc/hosts</tt>ファイルを調べ, そこで目的の名前が
これは, 最初に <tt>/etc/hosts</tt> ファイルを調べ, そこで目的の名前が
見つけられなかった場合に DNS を引きにいくようリゾルバに指示します.
<sect2><heading>/etc/hosts(5) ファイルの編集</heading>
@ -212,7 +234,7 @@
<p>このファイルはローカルネットワーク上に存在するマシンの IP アドレスと
ホスト名を含んでいるはずです. 最低でも ppp を動作させるマシンのエントリが
含まれている必要があります. そのマシンのホスト名が foo.bar.com で,
IP アドレスが 10.0.0.1 であると仮定すると, <tt>/etc/hosts</tt>は
IP アドレスが 10.0.0.1 であると仮定すると, <tt>/etc/hosts</tt>
以下の行を含んでいなければいけません:
<tscreen><verb>
@ -230,7 +252,7 @@
<sect2><heading>/etc/resolv.conf ファイルの編集</heading>
<p><tt>/etc/resolv.conf</tt>はリゾルバの振舞いを指定します.
<p><tt>/etc/resolv.conf</tt> はリゾルバの振舞いを指定します.
もし自前の DNS サーバを走らせているのなら, このファイルは空のままに
しておくこともできます. 通常は, 以下のように書いておく必要があるでしょう:
@ -240,16 +262,23 @@
domain bar.com
</verb></tscreen>
<tt>x.x.x.x</tt> と <tt>y.y.y.y</tt> はプロバイダが指示するアドレスで,
<tt>x.x.x.x</tt> と <tt>y.y.y.y</tt> はプロバイダから指示されたアドレスで,
接続するプロバイダが提供している「ネームサーバ」を すべて書いてください.
``domain'' に指定するのは このマシンのデフォルトのドメイン名で, おそらく
書かなくても問題は無いでしょう. このファイルの各エントリの詳細については,
resolv.conf のマニュアルページを参照してください.
<p>バージョン 2 以降の ppp を使用している場合には,
``enable dns'' コマンドを使用してネームサーバのアドレスを
プロバイダに問い合わせるように指示することができます.
上の指定とは異なるアドレスをプロバイダが指定してきた場合
(または <tt>/etc/resolv.conf</tt> でネームサーバが指定されていない場合),
ppp はプロバイダが指定したアドレスで resolv.conf を書きかえます.
<sect1><heading>ppp の設定</heading>
<p>ユーザ ppp と pppd (カーネルレベルの PPP 実装) は
どちらも<tt>/etc/ppp</tt>ディレクトリに置かれた設定ファイルを使います.
どちらも <tt>/etc/ppp</tt> ディレクトリに置かれた設定ファイルを使います.
ここには設定ファイルのサンプルが用意されていて, ユーザ ppp の設定を
おこなう際に大変参考になりますので, 削除したりしないでください.
@ -262,7 +291,7 @@
<sect2><heading>静的 IP アドレスによる PPP 接続<label id="userppp:staticIP">
</heading>
<p>まず<tt>/etc/ppp/ppp.conf</tt>という設定ファイルを作成する必要があります.
<p>まず <tt>/etc/ppp/ppp.conf</tt> という設定ファイルを作成する必要があります.
これは以下の例とほとんど同じようなものになるでしょう. ``:'' で終る行は
1 カラム目から始め, その他の行はスペースまたはタブで以下の例のように
段をつける (インデントする) 必要があることに注意してください.
@ -275,12 +304,11 @@
\\dATDT\\T TIMEOUT 40 CONNECT"
5 provider:
6 set phone "(0123) 456 7890"
7 set login "TIMEOUT 10 gin:-BREAK-gin: foo word: bar col: ppp"
7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp"
8 set timeout 300
9 deny lqr
10 set ifaddr x.x.x.x y.y.y.y
11 delete ALL
12 add 0 0 HISADDR
9 set ifaddr x.x.x.x y.y.y.y 255.255.255.0 0.0.0.0
10 add default HISADDR
11 enable dns
</verb></tscreen>
ファイルでは行番号を取り除いておいてください.
これは解説の際に参照する行を示すためにつけたものです.
@ -290,15 +318,15 @@
ppp が起動された際に自動的に実行されます.
<tag/Line 2:/ モデムが接続されているデバイスを指定します.
COM1: は<tt>/dev/cuaa0</tt>に,
COM2: は<tt>/dev/cuaa1</tt>になります.
COM1: は <tt>/dev/cuaa0</tt> に,
COM2: は <tt>/dev/cuaa1</tt> になります.
<tag/Line 3:/ 通信速度 (DTE 速度) を指定します. もし 115200 が使えない
(最近のモデムなら大抵使えるはずですが) 場合には,
かわりに 38400 を指定してみてください.
<tag/Line 4:/ ダイアルスクリプトを指定します.
ユーザ ppp は<tt>chat(8)</tt>言語に似た, 受信待ち文字列と
ユーザ ppp は <tt>chat(8)</tt> 言語に似た, 受信待ち文字列と
送信文字列の対からなるスクリプトを使用します.
この言語の機能に関しては, マニュアルページを参照してください.
@ -327,9 +355,12 @@
protocol: ppp
</verb></tscreen>
このスクリプトは必要に応じて書きかえる必要があるでしょう.
PAP や CHAP を使うのなら, ここでログインは おこないませんので
ログイン文字列は空白のままにしておきます.
このスクリプトは必要に応じて書きかえなければならないでしょう.
初めてスクリプトを書く時には, 予想した通りに
処理が進んだかどうかを確認するため, ``chat'' ログを
とるようにしておいた方が良いでしょう.
<p>PAP や CHAP を使用する場合には, ここでログインすることは
ありませんから, ログイン文字列は空白のままにしておくべきです.
詳細については <ref id="userppp:PAPnCHAP"
name="PAP および CHAP による認証">を参照してください.
@ -338,24 +369,7 @@
自動的に接続を切るように指定しています.
タイムアウトさせたくない場合には, この値を 0 に設定します.
<tag/Line 9:/ Link Quality Report (LQR) パケットを交換するように
ppp を設定することもできます.
これらのパケットを使い, 物理リンクの品質を調査するのです.
LQR に対して ppp のとる戦略は, これらのパケットのうちの
いくつかが失われた時に接続を閉じるというものです.
この方法は, 2 台のマシンを直接シリアル回線で接続していて,
回線が接続されていることを示すために
モデムの DSR 信号が使えない場合に有効です.
回線がデータで飽和してしまうと LQR パケットが「失われ」るため,
ppp が早まって接続を閉じてしまうことがあります.
LQR の使用を拒否するように設定しておけば, このような問題は
起こりませんので, (モデムを介して接続する場合には) 用心のため
LQR 使用の提案を拒否するように設定しておくのが良いでしょう.
デフォルトの設定では, ppp は自分から LQR の使用を提案することは
ありませんが, 通信相手が LQR の使用を提案してくると, それを
受け入れてしまいます.
<tag/Line 10:/ インターフェースのアドレスを指定します. 文字列 x.x.x.x は
<tag/Line 9:/ インターフェースのアドレスを指定します. 文字列 x.x.x.x は
プロバイダに割り当てられた IP アドレスで置きかえてください.
文字列 y.y.y.y はプロバイダから指示されたゲートウェイ
(接続先となるマシン) の IP アドレスで置きかえてください.
@ -366,19 +380,20 @@
name="動的 IP アドレスによる PPP 接続">に関する指示に従って,
<tt>/etc/ppp/ppp.linkup</tt> にエントリを作成していることを
確認してください.
この行が省略されていると, ppp を <tt>-auto</tt> モードや
<tt>-dynamic</tt> モードで動作させることはできません.
この行が省略されている場合, ppp を <tt>-auto</tt> モードで
動作させることはできません.
<tag/Line 11:/ この PPP 接続で使用する tun デバイスに関する既存のエントリを
ルーティングテーブルから すべて削除します.
通常, これは必須というわけではありませんが,
クリーンな状態で ppp がスタートできるよう保証しておきます.
<tag/Line 12:/ プロバイダのゲートウェイへの経路をデフォルトルートとして
<tag/Line 10:/ プロバイダのゲートウェイへの経路をデフォルトルートとして
追加します. 特殊文字列 <tt>HISADDR</tt> は, 9 行目で指定された
ゲートウェイのアドレスで置きかえられます.
<tt>HISADDR</tt> は 9 行目までは初期化されていませんので,
その行よりも後でしか使えないことに注意してください.
<tag/Line 11:/ ネームサーバのアドレスが正しいかどうかを確認するため,
プロバイダに問い合わせをおこなうよう ppp に指示します.
プロバイダがこの機能をサポートしていれば, ppp は
<tt>/etc/resolv.conf</tt> のネームサーバエントリを
正しいアドレスに更新することができます.
</descrip>
<p>静的な IP アドレスを持っていて, 接続が完了する前にルーティングテーブルの
@ -388,14 +403,14 @@
プログラムを呼び出したいことがあるかもしれません.
これについては後ほど sendmail を例として説明します.
<p>これらの設定ファイルのサンプルが<tt>/etc/ppp</tt>ディレクトリに
<p>これらの設定ファイルのサンプルが <tt>/etc/ppp</tt> ディレクトリに
置かれています.
<sect2><heading>動的 IP アドレスによる PPP 接続<label id="userppp:dynamicIP">
</heading>
<p>プロバイダが静的な IP アドレスの割り当てをおこなっていない場合,
<tt>ppp</tt>が相手側のホスト (ゲートウェイ) と交渉して,
<tt>ppp</tt> が相手側のホスト (ゲートウェイ) と交渉して,
こちら側と相手側のアドレスを決めるように設定することができます.
これは, 起動時には「仮の」アドレスを使っておいて,
接続後に IP コンフィグレーション プロトコル (IPCP) を使用して
@ -404,7 +419,7 @@
以下の変更を加える以外は, <tt>ppp.conf</tt> の設定は同じです:
<tscreen><verb>
10 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0
9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
</verb></tscreen>
繰り返しますが, 行番号は取り除いておいてください.
@ -412,27 +427,22 @@
なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です.
<descrip>
<tag/Line 10:/ ``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたい
<tag/Line 9:/ ``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたい
ビットの数です. 場合によっては, もっと適切な IP アドレスを
指定しておきたいこともあるかもしれませんが,
ほとんどの場合には 上の例の通りで問題無いはずです.
相手側の PPP 実装が壊れていて この設定では動かない場合,
最後に <tt>0.0.0.0</tt> を追加すると うまく動くように
なることがあります:
ほとんどの場合には 上の例の通りで問題ありません.
<tscreen><verb>
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
</verb></tscreen>
このようにすると, ppp は <tt>10.0.0.1</tt> のかわりに
<tt>0.0.0.0</tt> を使用して交渉を開始します.
ここで <tt>set ifaddr</tt> コマンドの最初の引数として
最後の引数 (<tt>0.0.0.0</tt>) は, アドレスの交渉の際に
<tt>10.0.0.1</tt> ではなく <tt>0.0.0.0</tt> を使用するよう
ppp に指示するためのものです.
<tt>set ifaddr</tt> コマンドの最初の引数として
<tt>0.0.0.0/0</tt> を指定してはいけません.
さもないと, <tt>-auto</tt> モードや <tt>-ddial</tt> モードで
動作させる際に 初期経路を設定することができなくなります.
さもないと, <tt>-auto</tt> モードで動作させる際に
初期経路を設定することができなくなります.
</descrip>
<p><tt>/etc/ppp/ppp.linkup</tt> にもエントリを作成しておく必要があります.
<p>バージョン 1.X の ppp を使用する場合, <tt>/etc/ppp/ppp.linkup</tt> にも
エントリを作成しておく必要があります.
<tt>ppp.linkup</tt> は接続が確立された後に使用されます. この時点では,
ppp は<bf>実際に</bf>どの IP アドレスを使うべきなのか わかっているはずです.
以下のエントリは存在する仮の経路を削除し, 正しい経路を作成します:
@ -440,7 +450,7 @@
<tscreen><verb>
1 provider:
2 delete ALL
3 add 0 0 HISADDR
3 add default HISADDR
</verb></tscreen>
<descrip>
@ -457,34 +467,40 @@
ppp に指示します.
<tag/Line 3:/ この行は <tt>HISADDR</tt> への経路をデフォルトルートとして
追加するように ppp に指示します. <tt>HISADDR</tt> IPCP で
追加するように ppp に指示します. <tt>HISADDR</tt> IPCP で
決定されたゲートウェイの IP アドレスで置きかえられます.
</descrip>
<p>詳細なサンプルについては, <tt>/etc/ppp/ppp.conf.sample</tt> ファイル中の
pmdemand エントリと <tt>/etc/ppp/ppp.linkup.sample</tt> を参照してください.
<p>バージョン 2 の ppp から ``sticky routes'' が導入されました.
<tt>MYADDR</tt> や <tt>HISADDR</tt> を含む <tt>add</tt> コマンドと
<tt>delete</tt> コマンドを記憶して, <tt>MYADDR</tt> や <tt>HISADDR</tt> の
アドレスが変化した際には経路の再設定をおこないます.
したがって, これらのコマンドを <tt>ppp.linkup</tt> に
繰り返し記述する必要は無くなりました.
<sect2><heading>かかってきた電話を ppp で受けるには</heading>
<p>このセクションでは ppp をサーバとして設定する方法について説明します.
<p>かかってきた電話を<tt>ppp</tt>が受けるように設定する場合,
<tt>PPP</tt>接続についてだけパケットを転送するようにするのか,
すべてのインターフェースについて転送するようにするのか,
それとも一切転送をおこなわないのかを決定しなければいけません.
PPP 接続についてだけ転送をおこなうためには, <tt>ppp.conf</tt>ファイルに
以下の行を追加しておきます.
<p>かかってきた電話を <tt>ppp</tt> が受けるように設定する際に,
そのマシンが LAN に接続されているのであれば,
パケットを LAN に転送するかどうかを決定する必要があります.
転送をおこなう場合には, その LAN のサブネットから IP アドレスを
ppp クライアントに割り当て, 以下のコマンドを指定するのが良いでしょう.
<tscreen><verb>
enable proxy
</verb></tscreen>
すべてのインターフェースについてパケットの転送をおこなう場合には,
<tt>/etc/rc.conf</tt>で以下のオプションを指定してください. (このファイルは
以前のバージョンの FreeBSD では<tt>/etc/sysconfig</tt>と呼ばれていました)
また, <tt>/etc/rc.conf</tt> に以下のオプションが指定してあることを
確認しておいてください. (以前のバージョンの FreeBSD では,
このファイルは <tt>/etc/sysconfig</tt> と呼ばれていました):
<tscreen><verb>
gateway=YES
gateway_enable=YES
</verb></tscreen>
<sect3><heading>どの getty を使いますか?</heading>
@ -498,7 +514,7 @@
ダイアルアップ回線での使用を意図して設計されています.
<p>mgetty を使う場合の利点は, mgetty が積極的にモデムと<em>通信する</em>
ということです. つまり, もし<tt>/etc/ttys</tt>でポートを閉じている場合,
ということです. つまり, もし <tt>/etc/ttys</tt> でポートを閉じている場合,
モデムは電話をとらなくなります.
<p>最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの
@ -515,9 +531,19 @@
場合には, そのユーザを <tt>/etc/group</tt> の <tt>network</tt> グループに
追加して, ppp を実行する許可を与えておかなければいけません.
<p>また, そのユーザが設定ファイル内の目的のエントリにアクセスできるように,
以下のように <tt>allow</tt> コマンドで許可を与えておく必要があります:
<tscreen><verb>
allow users fred mary
</verb></tscreen>
このコマンドがデフォルトエントリに書かれている場合には, 指定されたユーザは
すべてのエントリをアクセスできるようになります.
<sect3><heading>動的 IP ユーザのための ppp シェルの設定</heading>
<p><tt>/etc/ppp/ppp-shell</tt>という名前で, 以下のような内容のファイルを
<p><tt>/etc/ppp/ppp-shell</tt> という名前で, 以下のような内容のファイルを
作成します:
<tscreen><verb>
@ -537,25 +563,25 @@
</verb></tscreen>
<p>このスクリプトには実行可能属性をつけておきます.
次に, 以下のコマンドを実行し, <tt>ppp-dialup</tt>という名前で
次に, 以下のコマンドを実行し, <tt>ppp-dialup</tt> という名前で
このスクリプトへのリンクを作成します:
<tscreen><verb>
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-dialup
# ln -s ppp-shell /etc/ppp/ppp-dialup
</verb></tscreen>
<p>すべてのダイアルアップ ppp ユーザのログイン<em>シェル</em>として
このスクリプトを使用します. 以下は pchilds というユーザ名の
ダイアルアップユーザを<tt>/etc/password</tt>へ登録した場合の例です.
ダイアルアップユーザを <tt>/etc/password</tt> へ登録した場合の例です.
(パスワードファイルを直接エディタで編集したりせず,
<tt>vipw</tt>を使ってください)
<tt>vipw</tt> を使ってください)
<tscreen><verb>
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
</verb></tscreen>
<p>任意のユーザが読むことのできる, <tt>/home/ppp</tt>ディレクトリを
作成します. <tt>/etc/motd</tt>が表示されないようにするため,
<p>任意のユーザが読むことのできる, <tt>/home/ppp</tt> ディレクトリを
作成します. <tt>/etc/motd</tt> が表示されないようにするため,
このディレクトリには以下のように大きさが 0 バイトのファイルを
作成しておきます.
@ -566,9 +592,9 @@
<sect3><heading>静的 IP ユーザのための PPP シェルの設定</heading>
<p>上記と同じように<tt>ppp-shell</tt>ファイルを作成し,
<p>上記と同じように <tt>ppp-shell</tt> ファイルを作成し,
静的な IP アドレスを割り当てるアカウントそれぞれについて
<tt>ppp-shell</tt>へのシンボリックリンクを作成します.
<tt>ppp-shell</tt> へのシンボリックリンクを作成します.
<p>例えば, クラス C ネットワークの経路制御を必要とする,
三人のダイアルアップユーザ fred, sam, mary がいるとすると,
@ -582,12 +608,12 @@
<p>これらのユーザのダイアルアップアカウントでは, 上で作成した
それぞれのシンボリックリンクをログインシェルとして設定しておきます.
(つまり, ユーザ mary のログインシェルは<tt>/etc/ppp/ppp-mary</tt>に
(つまり, ユーザ mary のログインシェルは <tt>/etc/ppp/ppp-mary</tt>
なります).
<sect3><heading>動的 IP ユーザのための ppp.conf の設定</heading>
<p><tt>/etc/ppp/ppp.conf</tt>ファイルは, 大体以下のような内容になるでしょう:
<p><tt>/etc/ppp/ppp.conf</tt> ファイルは, 大体以下のような内容になるでしょう:
<tscreen><verb>
default:
@ -606,14 +632,14 @@
<p>上の例のように段をつける (インデントする) 必要があることに注意してください.
<p><tt>default:</tt> エントリはセッションごとにロードされます.
<tt>/etc/ttys</tt>で有効にしてある各ダイアルアップ回線ごとに一つ,
上記の<tt>ttyd0:</tt>のようなエントリを作成します.
<tt>/etc/ttys</tt> で有効にしてある各ダイアルアップ回線ごとに一つ,
上記の <tt>ttyd0:</tt> のようなエントリを作成します.
各行の相手側アドレスとして, それぞれ別の IP アドレスを
動的 IP ユーザのための IP アドレスのプールから割り当てておく必要があります.
<sect3><heading>静的 IP ユーザのための ppp.conf の設定</heading>
<p>上のサンプルの<tt>/etc/ppp/ppp.conf</tt>の内容に加えて,
<p>上のサンプルの <tt>/etc/ppp/ppp.conf</tt> の内容に加えて,
静的に IP を割り当てられたダイアルアップユーザ
それぞれのためのエントリを追加する必要があります.
ここでも fred, sam, mary の例を使うことにしましょう.
@ -630,9 +656,9 @@
</verb></tscreen>
<p>必要であれば, それぞれの静的 IP ユーザに対する経路制御情報も
<tt>/etc/ppp/ppp.linkup</tt>ファイルに書いておくべきでしょう.
<tt>/etc/ppp/ppp.linkup</tt> ファイルに書いておくべきでしょう.
以下の例ではクライアントの PPP リンクを経由する,
クラス C の<tt>203.14.101.0</tt>ネットワークへの経路を追加しています.
クラス C の <tt>203.14.101.0</tt> ネットワークへの経路を追加しています.
<tscreen><verb>
fred:
@ -660,80 +686,76 @@
AUTO_PPP オプションつきの mgetty (v0.99beta またはそれ以降) の設定,
コンパイル, インストールができているものと仮定しています.
<p><tt>/usr/local/etc/mgetty+sendfax/login.config</tt>ファイルが
<p><tt>/usr/local/etc/mgetty+sendfax/login.config</tt> ファイルが
以下の行を含んでいることを確認してください:
<tscreen><verb>
/AutoPPP/ - - /etc/ppp/ppp-pap-dialup
</verb></tscreen>
<p>これにより, PPP 接続を検出したら mgetty が<tt>ppp-pap-dialup</tt>
<p>これにより, PPP 接続を検出したら mgetty が <tt>ppp-pap-dialup</tt>
スクリプトを実行するようになります.
<p><tt>/etc/ppp/ppp-pap-dialup</tt>という名前で, 以下のような内容のファイルを
<p><tt>/etc/ppp/ppp-pap-dialup</tt> という名前で, 以下のような内容のファイルを
作成します (このファイルには実行可能属性をつけておく必要があります):
<tscreen><verb>
#!/bin/sh
TTY=`tty`
IDENT=`basename $TTY`
exec /usr/sbin/ppp -direct pap$IDENT
exec /usr/sbin/ppp -direct pap
</verb></tscreen>
<p><tt>/etc/ttys</tt>で有効になっている各ダイアルアップ回線ごとに,
対応するエントリを一つ<tt>/etc/ppp/ppp.conf</tt>に作成します.
これは上で作成した定義と問題なく共存できるでしょう.
<p>さらに, かかってきた電話すべてを自分で扱うエントリを
<tt>/etc/ppp/ppp.conf</tt> に作成します:
<tscreen><verb>
papttyd0:
pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
papttyd1:
enable pap
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxy
</verb></tscreen>
<p>この方法でログインする それぞれのユーザは, PAP によるユーザ認証を
おこなうために<tt>/etc/ppp/ppp.secret</tt>ファイルにユーザ名とパスワードを
書いておくか, または<tt>/etc/password</tt>ファイルを使うように,
おこなうために <tt>/etc/ppp/ppp.secret</tt> ファイルにユーザ名とパスワードを
書いておくか, または <tt>/etc/password</tt> ファイルを使うように,
<tscreen><verb>
enable passwdauth
</verb></tscreen>
オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. (*)
オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう.
<p>(*) このオプションは 2.2-961014-SNAP および それ以降のシステムか,
または 2.1.x のシステムにおいて ppp のコードを更新している場合にだけ
使用可能だということに注意してください.
(詳細に関しては, 以下のマイクロソフト拡張を参照してください)
<p>ユーザに静的な IP アドレスを割り当てる場合には, そのアドレスを
<tt>/etc/ppp/ppp.secret</tt> の第三引数として指定することができます.
サンプルについては, <tt>/etc/ppp/ppp.secret.sample</tt> を参照してください.
<sect4><heading>マイクロソフト拡張</heading>
<p>2.2-961014-SNAP 以降では,
DNS と NetBIOS ネームサーバの自動交渉 (negotiation) をサポートしている
クライアント (例えば Win95/NT クライアント) との間で
この機能を使うことができます.
プロトコルの詳細については RFC1877 を参照してください.
<p>クライアントからの要求に応じて, ppp が DNS や NetBIOS ネームサーバの
アドレスを通知するように設定をおこなうこともできます.
<p>これらの拡張機能を<tt>/etc/ppp/ppp.conf</tt>ファイルで有効にした例を
以下に示します.
<p>バージョン 1.X の ppp で これらの拡張機能を有効にするには, 以下の行を
<tt>/etc/ppp/ppp.conf</tt> の適切なセクションに追加する必要があるでしょう.
<tscreen><verb>
default:
set debug phase lcp chat
set timeout 0
enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
</verb></tscreen>
バージョン 2 以降の ppp では, 以下のようになります:
<tscreen><verb>
accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
</verb></tscreen>
<p>これにより, クライアントはプライマリとセカンダリのネームサーバアドレス
および NetBIOS ネームサーバホストを知ることができます.
<p>バージョン 2 以降の ppp では, ``set dns'' の行を省略した場合には
<tt>/etc/resolv.conf</tt> に書かれているネームサーバのアドレスを使用します.
<sect2><heading>PAP および CHAP による認証<label id="userppp:PAPnCHAP">
</heading>
@ -754,8 +776,8 @@
<tscreen><verb>
7 set login
.....
13 set authname MyUserName
14 set authkey MyPassword
12 set authname MyUserName
13 set authkey MyPassword
</verb></tscreen>
これまでと同様に, 行番号は取り除いておいてください.
@ -767,12 +789,12 @@
ログインを必要としません. そのため, "set login" 文字列を
無効にしておかなければいけません.
<tag/Line 13:/ この行は PAP/CHAP ユーザ名を指定します. <tt>MyUserName</tt> に
<tag/Line 12:/ この行は PAP/CHAP ユーザ名を指定します. <tt>MyUserName</tt> に
正しい値を入れておく必要があります.
<tag/Line 14:/ この行は PAP/CHAP パスワードを指定します. <tt>MyPassword</tt> に
<tag/Line 13:/ この行は PAP/CHAP パスワードを指定します. <tt>MyPassword</tt> に
正しい値を入れておく必要があります.
PAP と CHAP はデフォルトで受け付けられるようになっていますが,
PAP や CHAP を使用するという意思を明示するために,
PAP と CHAP はデフォルトで両方とも受け付けられるようになって
いますが, PAP や CHAP を使用するという意思を明示するために,
<tscreen><verb>
15 accept PAP
</verb></tscreen>
@ -783,40 +805,20 @@
という行を追加しておくのも良いでしょう.
</descrip>
<p><bf>注:</bf>(<tt>set log +command</tt>で) コマンド記録をオンにしていると,
<tt>authkey</tt> も記録されてしまいます. ppp のログファイルの許可モードを
決定する際には, このことに注意しておいてください.
<sect2><heading>動作中の ppp の設定変更</heading>
<p>適切なパスワードさえ設定されていれば, バックグラウンドで動作している
<p>適切な診断ポートが設定されている場合には, バックグラウンドで動作中の
ppp プログラムと通信することができます.
<p>通常の設定では, ppp は 3000 + <tt>tunno</tt> 番の TCP ポートをモニタして
コマンドを待ちうけます. ここで <tt>tunno</tt> は, その ppp が使用する
tun デバイスの番号です.
ただし, ローカルマシン用のパスワードが <tt>/etc/ppp/ppp.secret</tt> で
設定されていなければ, その ppp サーバに接続することはできません.
パスワードを設定するためには, 以下の行を内容とするファイルを
<tt>/etc/ppp/ppp.secret</tt> として作成しておきます:
この設定をおこなうためには, 以下の行を設定ファイルに追加しておきます:
<tscreen><verb>
foo MyPassword
set server /var/run/ppp-tun%d DiagnosticPassword 0177
</verb></tscreen>
ここで <tt>foo</tt> はローカルのホスト名 (正しい名前を知るためには
<tt>hostname -s</tt> を実行してください) で, <tt>MyPassword</tt> は
暗号化されていないパスワードそのものです.
<tt>/etc/ppp/ppp.secret</tt> は ID 0 のユーザ (root) 以外の誰からも
アクセス可能であっては<bf>いけません</bf>.
つまり, <tt>/</tt>, <tt>/etc</tt> および <tt>/etc/ppp</tt> は
書き込み可能であってはならず, また <tt>ppp.secret</tt> は
ID 0 のユーザ (root) に所有され, 許可モード 0600 であるべきです.
<p>また, ppp が使用するポート番号を変更することや, TCP ソケットではなく
ローカル UNIX ドメインのソケットをモニタするように指定することも可能です.
詳細に関しては, マニュアルページの <tt>set socket</tt> コマンドを
参照してください.
これにより, ppp は指定された unix ドメインのソケットをモニタして,
クライアントから正しいパスワードを受け取った後にアクセスを許可します.
このソケット名に含まれる %d は, この ppp が使用している tun デバイスの
デバイス番号で置きかえられます.
<p>一旦ソケットの設定が終了したら, スクリプト中で <tt>pppctl(8)</tt> を
使用して, 動作中の ppp を操作することができるでしょう.
@ -826,9 +828,9 @@ foo MyPassword
<p>これで ppp の設定は終りました.
しかし ppp を動かす前に, まだ少し必要なことがあります.
それらの設定は, すべて<tt>/etc/rc.conf</tt>ファイルを
それらの設定は, すべて <tt>/etc/rc.conf</tt> ファイルを
編集することでおこないます.
(このファイルは以前には<tt>/etc/sysconfig</tt>と呼ばれていました)
(このファイルは以前には <tt>/etc/sysconfig</tt> と呼ばれていました)
このファイルを上から順に設定していきます.
まずは ``hostname='' の行が設定されていることを確認します.
@ -851,7 +853,7 @@ foo MyPassword
ifconfig_tun0=
</verb></tscreen>
<tt>ifconfig_tun0</tt>変数が空で, /etc/start_if.tun0 という名前の
<tt>ifconfig_tun0</tt> 変数が空で, /etc/start_if.tun0 という名前の
ファイルが作成されていなければならない ということに注意してください.
このファイルの内容は以下のようになります.
@ -873,9 +875,9 @@ foo MyPassword
router=NO (/etc/sysconfig)
</verb></tscreen>
<tt>routed</tt>は, ppp が作成したデフォルトのルーティングテーブル
<tt>routed</tt> は, ppp が作成したデフォルトのルーティングテーブル
エントリを削除してしまう場合がありますので,
(初期設定では起動されるようになっている) <tt>routed</tt>デーモンが
(初期設定では起動されるようになっている) <tt>routed</tt> デーモンが
起動されないようにしておくことが重要です.
<p>``sendmail_flags'' 行が ``-q'' オプションを含まないように
@ -937,11 +939,11 @@ foo MyPassword
<itemize>
<item>カーネルに tun デバイスが組み込まれていることを確認.
<item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが
<item><tt>/dev</tt> ディレクトリに tunX デバイスファイルが
存在することを確認.
<item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
<item><tt>/etc/ppp/ppp.conf</tt> にエントリを作成.
ほとんどのプロバイダでは, <tt>pmdemand</tt> の例で充分でしょう.
<item>動的 IP アドレスを使用するなら, <tt>/etc/ppp/ppp.linkup</tt>に
<item>動的 IP アドレスを使用するなら, <tt>/etc/ppp/ppp.linkup</tt>
エントリを作成.
<item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
<item>必要に応じてダイヤル (demand dialing) したいのであれば,
@ -951,21 +953,21 @@ foo MyPassword
<p>サーバ側:
<itemize>
<item>カーネルに tun デバイスが組み込まれていることを確認.
<item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが
<item><tt>/dev</tt> ディレクトリに tunX デバイスファイルが
存在することを確認.
<item>(vipw(8) コマンドを使って) /etc/passwd にエントリを作成.
<item>このユーザのホームディレクトリに
``ppp -direct direct-server'' か何かを実行するプロファイルを作成.
<item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
<tt>direct-server</tt>の例で充分でしょう.
<item><tt>/etc/ppp/ppp.linkup</tt>にエントリを作成.
<item><tt>/etc/ppp/ppp.conf</tt> にエントリを作成.
<tt>direct-server</tt> の例で充分でしょう.
<item><tt>/etc/ppp/ppp.linkup</tt> にエントリを作成.
<item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
</itemize>
<sect1><heading>謝辞</heading>
<p>ハンドブックの このセクションは, 1997 年 9 月 7 日に &a.brian によって
更新されました.
<p>ハンドブックの このセクションは, 1998 年 8 月 10 日 (月) に
&a.brian によって更新されました.
<p>以下の人々による情報提供, 批評そして提案に感謝します: