Merge the EN version changes, 1.18 -> 1.26.

Submitted by:	Takashi Saeki <saeki@saskg.semicon.sony.co.jp>
This commit is contained in:
Masafumi Max NAKANE 1997-09-22 18:31:20 +00:00
parent 8f82355112
commit 2eb47efb93
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=1983
2 changed files with 794 additions and 428 deletions

View file

@ -1,21 +1,21 @@
<!-- $Id: userppp.sgml,v 1.9 1997-08-24 21:09:50 max Exp $ --> <!-- $Id: userppp.sgml,v 1.10 1997-09-22 18:31:20 max Exp $ -->
<!-- The FreeBSD Japanese Documentation Project --> <!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.18 --> <!-- Original revision: 1.26 -->
<sect>ユーザ PPP の設定<label id="userppp"> <sect>ユーザ ppp の設定<label id="userppp">
<!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em>または <!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em>または
単に<em>ppp</em>としても知られている iijppp を, 単に<em>ppp</em>としても知られている ppp を,
あなたの FreeBSD 2.0.5 (以降) で動くようにすることを目的としています. あなたの FreeBSD 2.0.5 (以降) で動くようにすることを目的としています.
<p>また, iijppp を ppp サーバとして使う方法の概略についても述べています. <p>また, ユーザ ppp を PPP サーバとして使う方法の概略についても述べています.
<p>このドキュメントは もともと Nik Clayton によって書かれたものですが, <p>このドキュメントは もともと Nik Clayton によって書かれたものですが,
現在では何年にもわたる共同作業の成果となっています. 現在では何年にもわたる共同作業の成果となっています.
--> -->
<p>ユーザ PPP は FreeBSD 2.0.5-RELEASE において, <p>ユーザ ppp は FreeBSD 2.0.5-RELEASE において,
既存のカーネル実装版の PPP に加えて導入されました. 既存のカーネル実装版の PPP に加えて導入されました.
それでは, これまでの pppd との違い, すなわち それでは, これまでの pppd との違い, すなわち
この新しい PPP が追加された理由とは いったい何なのでしょうか? この新しい PPP が追加された理由とは いったい何なのでしょうか?
@ -35,9 +35,9 @@
使うことができるため, PPP インターフェースをカーネルに組み込んでおく 使うことができるため, PPP インターフェースをカーネルに組み込んでおく
必要がありません. 必要がありません.
以降では, ユーザ ppp と他の PPP クライアント/サーバソフトウェアとを 以降では, ユーザ ppp と pppd のような他の PPP クライアント/サーバ
区別する必要がありませんので, ユーザ ppp を単に ppp とだけ呼びます. ソフトウェアとを区別する必要がありませんので, ユーザ ppp を単に ppp とだけ
特に断らない限り, このセクションのすべてのコマンドは root 権限で 呼びます. 特に断らない限り, このセクションのすべてのコマンドは root 権限で
実行する必要があります. 実行する必要があります.
訳者注: 以前の日本語ハンドブックでは, iij-ppp のオリジナルアーカイブに 訳者注: 以前の日本語ハンドブックでは, iij-ppp のオリジナルアーカイブに
@ -60,40 +60,48 @@
以下の情報を手に入れておく必要があるでしょう: 以下の情報を手に入れておく必要があるでしょう:
<itemize> <itemize>
<item>プロバイダのゲートウェイの IP アドレス. <item><p>プロバイダの電話番号.
ゲートウェイとは, あなたがそこに接続をおこなって,
<tt>デフォルトルート</tt>として設定することになるマシンです.
<item>プロバイダのネットマスク設定. もし不明な場合には, <item><p>ログイン名とパスワード. これは通常の unix 形式のログイン名と
ネットマスクとして 0xffffff00 を仮定しておきます. パスワードの組かもしれませんし, PPP PAP または CHAP の
ログイン名とパスワードの組かもしれません.
<item>一つ以上のネームサーバの IP アドレス. 通常, 二つの IP アドレスが <item><p>プロバイダのゲートウェイの IP アドレス.
プロバイダから示されているはずです. ゲートウェイとは, あなたがそこに接続をおこなって,
<tt>デフォルトルート</tt>として設定することになるマシンです.
もしプロバイダがこのアドレスを明示していなくても大丈夫.
適当に設定しておいて, 接続時にプロバイダの PPP サーバから
教えてもらうことができます.
<p>このアドレスは, 以降<tt>HISADDR</tt>と呼ぶことにします.
<item>もしプロバイダが固定の IP アドレスとホスト名を割り当てているのなら, <item><p>プロバイダのネットマスク設定. 繰り返しますが, 不明な場合には
同様にそれも必要になるでしょう. そうでなければ, どのアドレス範囲から ネットマスクとして 255.255.255.0 を使用しておけば問題ありません.
IP アドレスの割り当てがおこなわれるかを知っておく必要があるでしょう.
<item><p>一つ以上のネームサーバの IP アドレス. 通常, IP アドレスが二つ
プロバイダから指示されているはずです. 自分でネームサーバを
動かしているのでなければ, この情報は<bf>絶対に</bf>必要です.
<item><p>もしプロバイダから固定の IP アドレスとホスト名の割り当てを
受けているのなら, 同様にそれも必要になるでしょう.
そうでなければ, どのアドレス範囲から IP アドレスの割り当てが
おこなわれるかを知っておく必要があるでしょう.
もし範囲が示されていないとしても, 任意の IP アドレスを もし範囲が示されていないとしても, 任意の IP アドレスを
受け入れるようにすることが可能です (後で説明します). 受け入れるようにすることが可能です (後で説明します).
</itemize> </itemize>
もしこれらの情報のうち不明なものがあれば, プロバイダに連絡して もし, これらの情報のうち不明なものがあれば, プロバイダに連絡して
確認しておいてください. 確認しておいてください.
これに加えて, インターネットへの接続は常時おこなわれているわけではなく,
そのためネームサーバ (<tt>named(8)</tt>) を立ち上げていないと仮定します.
ネームサーバを立ち上げているのであれば, <tt>/etc/resolv.conf</tt>ファイルの
設定に関する情報は無視してください.
<sect1><heading>ppp 対応カーネルの構築</heading> <sect1><heading>ppp 対応カーネルの構築</heading>
<p>説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います. <p>説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います.
そのため, このデバイスがカーネルに組み込まれているかどうか そのため, このデバイスがカーネルに組み込まれているかどうかを
確認しておかなくてはいけません. 確認しておかなくてはいけません.
これを確認するには, カーネルコンパイルディレクトリ これを確認するには, カーネルコンパイルディレクトリ
(おそらくは /sys/i386/conf) に移動して, カーネルコンフィグレーション (<tt>/sys/i386/conf</tt> または <tt>/sys/pc98/conf</tt>) に移動して,
ファイルを調べます. 以下の行がどこかに含まれている必要があります. カーネルコンフィグレーションファイルを調べます.
以下の行がどこかに含まれている必要があります.
<tscreen><verb> <tscreen><verb>
pseudo-device tun 1 pseudo-device tun 1
@ -102,9 +110,9 @@
元々の GENERIC カーネルは標準でこれを含んでいますので, 元々の GENERIC カーネルは標準でこれを含んでいますので,
カスタムカーネルをインストールしているのではなかったり, カスタムカーネルをインストールしているのではなかったり,
/sys ディレクトリが存在しないのであれば, 何も変更する必要はありません. /sys ディレクトリが存在しないのであれば, 何も変更する必要はありません.
この行がカーネルコンフィグレーションファイルに含まれていなかったり, <p>この行がカーネルコンフィグレーションファイルに含まれていなかったり,
tun デバイスが一つでは足りない場合 (例えば, 同時に 16 本の tun デバイスが一つでは足りない場合 (例えば, 同時に 16 本の
ダイアルアップ ppp 接続を処理できるサーバを立ち上げるとしたら, ダイアルアップ PPP 接続を処理できるサーバを立ち上げるとしたら,
``1'' のかわりに ``16'' を指定する必要があるでしょう), この行を追加して ``1'' のかわりに ``16'' を指定する必要があるでしょう), この行を追加して
カーネルの再コンパイルとインストールをおこなう必要があります. カーネルの再コンパイルとインストールをおこなう必要があります.
それからこの新しいカーネルを使ってブートしてください. それからこの新しいカーネルを使ってブートしてください.
@ -112,8 +120,8 @@
<ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション"> <ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション">
を参照してください. を参照してください.
<p>以下のコマンドを実行することで, 現在のカーネルに <p>以下のコマンドを実行することで, 現在のカーネルにトンネルデバイスが
いくつのトンネルデバイスが組み込まれているかを調べることができます: いくつ組み込まれているかを調べることができます:
<tscreen><verb> <tscreen><verb>
# ifconfig -a # ifconfig -a
@ -130,10 +138,10 @@
<p>トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で <p>トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で
カーネルの再構築ができない場合でも, 方法がないわけではありません. カーネルの再構築ができない場合でも, 方法がないわけではありません.
動的にデバイスをロードすることができるはずです. 詳細については 動的にデバイスをロードすることができるはずです. 詳細については
modload(8) や lkm(4) など, 適切なマニュアルを参照してください. modload(8) や lkm(4) など, 適切なマニュアルを参照してください.
<p>この機会にファイアウォールも設定したいと思っているのであれば, <p>この機会にファイアウォールも設定しておきたいと思っているのであれば,
詳細については<ref id="firewalls" name="ファイアウォール">セクションを 詳細については<ref id="firewalls" name="ファイアウォール">セクションを
参照してください. 参照してください.
@ -141,11 +149,11 @@
<p>ほとんどのユーザは ``tun'' デバイス (tun0) が一つあれば充分でしょう. <p>ほとんどのユーザは ``tun'' デバイス (tun0) が一つあれば充分でしょう.
より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション
ファイルで疑似デバイスの行に `1' 以外の数値を指定している場合), ファイルで tun 疑似デバイスの行に `1' 以外の数値を指定している場合),
以下の ``tun0'' に対する参照をすべて, あなたが使うデバイスの番号に 以下で ``tun0'' と書かれている部分をすべて, あなたが使うデバイスの番号に
あわせて読みかえてください. あわせて読みかえてください.
tun0 デバイスが正しく設定されていることを確認する最も簡単な方法は, tun0 デバイスが正しく作成されていることを確認する最も簡単な方法は,
それを作り直すことです. そのためには, 以下のコマンドを実行します: それを作り直すことです. そのためには, 以下のコマンドを実行します:
<tscreen><verb> <tscreen><verb>
@ -158,12 +166,11 @@
<tscreen><verb> <tscreen><verb>
# cd /dev # cd /dev
# ./MAKEDEV tun0 tun1 tun2 tun3 tun4 tun5 tun6 tun7 tun8 tun9 # ./MAKEDEV tun15
# ./MAKEDEV tun10 tun11 tun12 tun13 tun14 tun15
</verb></tscreen> </verb></tscreen>
<p>また, カーネルが正しく設定されているかどうか調べるために, <p>また, カーネルが正しく設定されているかどうか調べるために
以下のコマンドで このような出力が得られるかどうかを確認します: 以下のコマンドを実行して, このような出力が得られることを確認します:
<tscreen><verb> <tscreen><verb>
$ ifconfig tun0 $ ifconfig tun0
@ -171,35 +178,34 @@
$ $
</verb></tscreen> </verb></tscreen>
<sect1><heading>PPP の名前解決に関する設定</heading> <sect1><heading>名前解決に関する設定</heading>
<p>リゾルバ (resolver) はネットワーキングシステムの一部分で, IP アドレスと <p>リゾルバ (resolver) はシステムの一部分で, IP アドレスとホスト名との
ホスト名との変換をおこないます. これは, IP アドレスとホスト名を 変換をおこないます. IP アドレスとホスト名を対応させるためのマップを,
対応させるためのマップを, 二つの場所のうちの一つから探すように設定できます. 二つの場所のうちの一つから探すように設定できます.
一つめは<tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです. 一つめは<tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです.
二つめはインターネットドメインネームサービス (DNS) とよばれる 二つめはインターネット ドメインネームサービス (DNS) と呼ばれる
分散データベースですが, これに関する議論はこのドキュメントの扱える範囲を 分散データベースですが, これに関する議論は このドキュメントで扱う範囲を
越えていますので, これについての説明はおこないません. 越えていますので, これについての説明はおこないません.
<p>このセクションではリゾルバの設定方法について簡単に説明します. <p>このセクションではリゾルバの設定方法について簡単に説明します.
既に DNS を使用しているのであれば, このセクションは飛ばしてもかまいません.
<p>リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし <p>リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし
どこからマッピング情報を得るのかは, あなたが指示する必要があります. どこからマッピング情報を見つけるのかは, 最初に指示しておく必要があります.
これはまず<tt>/etc/host.conf</tt>ファイルを編集することでおこないます. これは まず<tt>/etc/host.conf</tt>ファイルを編集することでおこないます.
混乱の元すので, このファイルを<tt>/etc/hosts.conf</tt>と 混乱の元になりますので, このファイルを<tt>/etc/hosts.conf</tt>と
呼んだりしては<bf>いけません</bf> (余分な ``s'' がついていますね). 呼んだりしては<bf>いけません</bf> (余分な ``s'' がついていますね).
<sect2><heading>/etc/host.conf ファイルの編集</heading> <sect2><heading>/etc/host.conf ファイルの編集</heading>
<p>このファイルは以下の 2 行を含んでいるはずです: <p>このファイルには 以下の 2 行が書かれているはずです:
<tscreen><verb> <tscreen><verb>
hosts hosts
bind bind
</verb></tscreen> </verb></tscreen>
これは, 最初に<tt>/etc/hosts</tt>ファイルを調べ, これは, 最初に<tt>/etc/hosts</tt>ファイルを調べ, そこで目的の名前が
目指す名前が見つからなければ DNS を引きにいくようリゾルバに指示します. 見つけられなかった場合に DNS を引きにいくようリゾルバに指示します.
<sect2><heading>/etc/hosts(5) ファイルの編集</heading> <sect2><heading>/etc/hosts(5) ファイルの編集</heading>
@ -219,68 +225,65 @@
常に 127.0.0.1 でなければいけません. 二つめの行はホスト名 ``foo.bar.com'' 常に 127.0.0.1 でなければいけません. 二つめの行はホスト名 ``foo.bar.com''
(と, その省略形 ``foo'') を IP アドレス 10.0.0.1 にマップします. (と, その省略形 ``foo'') を IP アドレス 10.0.0.1 にマップします.
もしプロバイダから固定の IP アドレスを割り当てられているのであれば, もしプロバイダから固定の IP アドレスとホスト名を割り当てられて
それを 10.0.0.1 のかわりに使ってください. いるのであれば, それを 10.0.0.1 エントリのかわりに使ってください.
<sect2><heading>/etc/resolv.conf ファイルの編集</heading> <sect2><heading>/etc/resolv.conf ファイルの編集</heading>
<p><tt>/etc/resolv.conf</tt> はネームサーバをそのマシンで走らせていない場合に <p><tt>/etc/resolv.conf</tt>はリゾルバの振舞いを指定します.
必要になる特別な情報を含んでいます. これは実際のネームサーバの位置を もし自前の DNS サーバを走らせているのなら, このファイルは空のままに
リゾルバルーチンに示したり, その他いくつかの情報を指定したりします. しておくこともできます. 通常は, 以下のように書いておく必要があるでしょう:
<tt>/etc/resolv.conf</tt>には問い合わせが可能なネームサーバを少なくとも
一つ指定しておく必要がありますが, できれば二つ指定するのが望ましいでしょう.
これは (ホスト名ではなく) IP アドレスで書かなければいけません. 例えば:
<tscreen><verb> <tscreen><verb>
nameserver 1.2.3.4 nameserver x.x.x.x
nameserver 1.2.3.5 nameserver y.y.y.y
domain bar.com
</verb></tscreen> </verb></tscreen>
接続するプロバイダの「ネームサーバ」指定をすべて書いてください. <tt>x.x.x.x</tt> と <tt>y.y.y.y</tt> はプロバイダが指示するアドレスで,
このファイルの各エントリの詳細については, 接続するプロバイダが提供している「ネームサーバ」を すべて書いてください.
``domain'' に指定するのは このマシンのデフォルトのドメイン名で, おそらく
書かなくても問題は無いでしょう. このファイルの各エントリの詳細については,
resolv.conf のマニュアルページを参照してください. resolv.conf のマニュアルページを参照してください.
<sect1><heading>PPP の設定</heading> <sect1><heading>ppp の設定</heading>
<p>ユーザ ppp と pppd (カーネルレベルの PPP 実装) は <p>ユーザ ppp と pppd (カーネルレベルの PPP 実装) は
どちらも<tt>/etc/ppp</tt>ディレクトリに置かれた設定ファイルを使います. どちらも<tt>/etc/ppp</tt>ディレクトリに置かれた設定ファイルを使います.
設定ファイルのサンプルが提供されていて, ユーザ ppp の設定をおこなう際に ここには設定ファイルのサンプルが用意されていて, ユーザ ppp の設定を
大変参考になりますので, 削除したりしないでください. おこなう際に大変参考になりますので, 削除したりしないでください.
<p>ppp の設定をするためには, 必要に応じて三つまでのファイルを編集する必要が <p>ppp の設定をするためには, 必要に応じていくつかのファイルを編集する必要が
あります. 書き込む内容は, プロバイダが静的に IP アドレスを割り当てる あります. 書き込む内容は, プロバイダが静的に IP アドレスを割り当てる
(つまり, 固定の IP アドレスを一つ与えられて, 常にそれを使う) か, (つまり, 固定の IP アドレスを一つ与えられて, 常にそれを使う) か,
または動的に IP アドレスを割り当てる (つまり, PPP セッションごとに または動的に IP アドレスを割り当てる (つまり, PPP セッションごとに
IP アドレスが変化する可能性がある) かということに ある程度依存します. IP アドレスが変化する可能性がある) かということに ある程度依存します.
<sect2><heading>静的 IP アドレスによる PPP 接続</heading> <sect2><heading>静的 IP アドレスによる PPP 接続<label id="userppp:staticIP">
</heading>
<p><tt>/etc/ppp</tt>ディレクトリにファイルを三つ作成する必要があります. <p>まず<tt>/etc/ppp/ppp.conf</tt>という設定ファイルを作成する必要があります.
これは以下の例とほとんど同じようなものになるでしょう. ``:'' で終る行は
1 カラム目から始め, その他の行はスペースまたはタブで以下の例のように
段をつける (インデントする) 必要があることに注意してください.
<p>一つめのファイルは<tt>ppp.conf</tt>です. 以下の例とほぼ同じようなものに
なるでしょう. ``:'' で終る行は 1 カラム目から始まり, その他の行は
スペースまたはタブで以下の例のように段をつける (インデントする) 必要が
あることに注意してください.
<tt>/etc/ppp/ppp.conf</tt>
<tscreen><verb> <tscreen><verb>
1 default: 1 default:
2 set device /dev/cuaa0 2 set device /dev/cuaa0
3 set speed 38400 3 set speed 115200
4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK 4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK
\\dATDT\\T TIMEOUT 40 CONNECT" \\dATDT\\T TIMEOUT 40 CONNECT"
5 provider: 5 provider:
6 set phone 01234567890 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:-BREAK-gin: foo word: bar col: ppp"
8 set timeout 120 8 set timeout 300
9 set ifaddr x.x.x.x y.y.y.y 9 deny lqr
10 delete ALL 10 set ifaddr x.x.x.x y.y.y.y
11 add 0 0 y.y.y.y 11 delete ALL
12 set openmode active 12 add 0 0 HISADDR
</verb></tscreen> </verb></tscreen>
行番号はファイルに書かないでください. これは, 解説の際に ファイルでは行番号を取り除いておいてください.
参照する行を示すためにつけたものです. これは解説の際に参照する行を示すためにつけたものです.
<descrip> <descrip>
<tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは <tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは
@ -290,7 +293,9 @@
COM1: は<tt>/dev/cuaa0</tt>に, COM1: は<tt>/dev/cuaa0</tt>に,
COM2: は<tt>/dev/cuaa1</tt>になります. COM2: は<tt>/dev/cuaa1</tt>になります.
<tag/Line 3:/ 通信速度 (DTE 速度) を指定します. <tag/Line 3:/ 通信速度 (DTE 速度) を指定します. もし 115200 が使えない
(最近のモデムなら大抵使えるはずですが) 場合には,
かわりに 38400 を指定してみてください.
<tag/Line 4:/ ダイアルスクリプトを指定します. <tag/Line 4:/ ダイアルスクリプトを指定します.
ユーザ ppp は<tt>chat(8)</tt>言語に似た, 受信待ち文字列と ユーザ ppp は<tt>chat(8)</tt>言語に似た, 受信待ち文字列と
@ -300,13 +305,20 @@
<tag/Line 5:/ 接続するプロバイダの名前 ``provider'' を <tag/Line 5:/ 接続するプロバイダの名前 ``provider'' を
エントリ名として指定します. エントリ名として指定します.
<tag/Line 6:/ このプロバイダの電話番号を指定します. <tag/Line 6:/ このプロバイダの電話番号を指定します. 複数の電話番号を
複数の電話番号を `:' で区切って指定することができます. ``:'' や ``|'' で区切って指定することができます.
これら区切り文字の違いについては, ppp のマニュアルページに
詳しく書かれています.
要約すると, 毎回違う番号に かけたいのであれば ``:'' を使います.
常に まず先頭の番号にかけてみて, つながらない時にだけ
2 番目以降の番号に かけたいのであれば ``|'' を使います.
例に示されているように, 常に電話番号全体を引用符で
くくって (クォートして) おきます.
<tag/Line 7:/ ログインスクリプトを指定します. ログインスクリプトも <tag/Line 7:/ ダイアルスクリプトと同様に, ログインスクリプトも
ダイアルスクリプトと同様の記述方法になります. chat 言語風の記述をおこないます.
この例は, 以下のようなログインセッションを使用している この例は, 以下のようなログインセッションを使用
プロバイダのためのものです. プロバイダのためのものです:
<tscreen><verb> <tscreen><verb>
J. Random Provider J. Random Provider
@ -316,115 +328,169 @@
</verb></tscreen> </verb></tscreen>
このスクリプトは必要に応じて書きかえる必要があるでしょう. このスクリプトは必要に応じて書きかえる必要があるでしょう.
PAP や CHAP を使うのなら, ここでログインは おこないませんので
ログイン文字列は空白のままにしておきます.
詳細については <ref id="userppp:PAPnCHAP"
name="PAP および CHAP による認証">を参照してください.
<tag/Line 8:/ デフォルトの接続タイムアウト時間を (秒数で) 指定します. <tag/Line 8:/ デフォルトの接続タイムアウト時間を (秒数で) 指定します.
この例では, 120 秒間 通信がおこなわれなければ この例では, 300 秒間 通信がおこなわれなければ
自動的に接続を切るように指定しています. 自動的に接続を切るように指定しています.
タイムアウトさせたくない場合には, この値を 0 に設定します.
<tag/Line 9:/ インターフェースのアドレスを指定します. 文字列 x.x.x.x は <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 は
プロバイダに割り当てられた IP アドレスで置きかえてください. プロバイダに割り当てられた IP アドレスで置きかえてください.
文字列 y.y.y.y はプロバイダから指示されたゲートウェイ 文字列 y.y.y.y はプロバイダから指示されたゲートウェイ
(接続先となるマシン) の IP アドレスで置きかえてください. (接続先となるマシン) の IP アドレスで置きかえてください.
プロバイダがゲートウェイのアドレスを指示していない場合は,
<tt>10.0.0.2/0</tt> を使用しておいてください.
もし「仮の」アドレスを使用する必要がある場合には,
<ref id="userppp:dynamicIP"
name="動的 IP アドレスによる PPP 接続">に関する指示に従って,
<tt>/etc/ppp/ppp.linkup</tt> にエントリを作成していることを
確認してください.
この行が省略されていると, ppp を <tt>-auto</tt> モードや
<tt>-dynamic</tt> モードで動作させることはできません.
<tag/Line 10:/ この PPP 接続で使用する tun デバイスに関する, <tag/Line 11:/ この PPP 接続で使用する tun デバイスに関する既存のエントリを
既存のルーティングテーブルエントリをすべて削除します. ルーティングテーブルから すべて削除します.
通常, これは必須というわけではありませんが,
クリーンな状態で ppp がスタートできるよう保証しておきます.
<tag/Line 11:/ プロバイダ側の IP アドレスをデフォルトルートに指定します. <tag/Line 12:/ プロバイダのゲートウェイへの経路をデフォルトルートとして
この IP アドレスは常にプロバイダのゲートウェイの 追加します. 特殊文字列 <tt>HISADDR</tt> は, 9 行目で指定された
IP アドレスでなければいけません. ゲートウェイのアドレスで置きかえられます.
<tt>HISADDR</tt> は 9 行目までは初期化されていませんので,
<tag/Line 12:/ こちら側からネゴシエーションを開始するように指示します. その行よりも後でしか使えないことに注意してください.
これは接続相手が自分からネゴシエーションを開始するように
設定されている場合には必要ありませんが, 両側とも自分から
Line Control Protocol (LCP) を開始するように設定されていても
何も問題はありません.
</descrip> </descrip>
<p>二つめのファイルは<tt>/etc/ppp/ppp.linkup</tt>です: <p>静的な IP アドレスを持っていて, 接続が完了する前にルーティングテーブルの
エントリが正しく設定されているのであれば, <tt>ppp.linkup</tt> に
エントリを追加する必要はありません.
しかし, この場合でもエントリを追加して, 接続が完了した時点で
プログラムを呼び出したいことがあるかもしれません.
これについては後ほど sendmail を例として説明します.
<tscreen><verb> <p>これらの設定ファイルのサンプルが<tt>/etc/ppp</tt>ディレクトリに
x.x.x.x: 置かれています.
delete ALL
add 0 0 HISADDR
</verb></tscreen>
<p>先ほどと同じように, プロバイダに割り当てられた IP アドレスで x.x.x.x を <sect2><heading>動的 IP アドレスによる PPP 接続<label id="userppp:dynamicIP">
置きかえます. このファイルは, この PPP 接続に関する既存のルートをすべて </heading>
自動的に削除したり, プロバイダから このマシンへのルートを
デフォルトルートとして追加するのに使われます.
(HISADDR マクロは自動的にプロバイダ側のアドレスに置きかえられます)
<p>プロバイダが静的な IP アドレスを割り当ててくれるなら,
実は<tt>/etc/ppp.linkup</tt>ファイルにエントリを書く必要はありません.
しかし, 繰り返しになりますが, 書いてあっても何の問題もありません.
<p>最後は, 三つめのファイル<tt>/etc/ppp/ppp.secret</tt>です.
このファイルでは ppp サーバへのアクセスを制御するためのパスワードを
設定することができます. 複数の人がこの ppp システムを使うのであれば,
パスワードを設定したいと思う場合があるかもしれません.
<p>これらのファイルのサンプルが<tt>/etc/ppp</tt>ディレクトリに置かれています.
<sect2><heading>動的 IP アドレスによる PPP 接続</heading>
<p>プロバイダが静的な IP アドレスの割り当てをおこなっていない場合, <p>プロバイダが静的な IP アドレスの割り当てをおこなっていない場合,
<tt>ppp</tt>が相手側のホスト (ゲートウェイ) と交渉して, <tt>ppp</tt>が相手側のホスト (ゲートウェイ) と交渉して,
こちら側と相手側のアドレスを決めるように設定することができます. こちら側と相手側のアドレスを決めるように設定することができます.
これは, 起動時には「仮」のアドレスを使っておいて, これは, 起動時には「仮の」アドレスを使っておいて,
接続時に LCP により ppp が IP アドレスを正しく設定できるようにすることで 接続後に IP コンフィグレーション プロトコル (IPCP) を使用して
実現されます. その他の設定は, 静的な IP アドレスを使う場合と同じです. ppp が IP アドレスを正しく設定できるようにすることで実現されます.
<ref id="userppp:staticIP" name="静的 IP アドレスによる PPP 接続">に
<p>静的な IP アドレスを使う場合の<tt>ppp.conf</tt>ファイルの 以下の変更を加える以外は, <tt>ppp.conf</tt> の設定は同じです:
エントリの該当部分を以下のように変更します:
<tscreen><verb> <tscreen><verb>
ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 10 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0
delete ALL
add 0 0 10.0.0.2
</verb></tscreen> </verb></tscreen>
<p>こちら側と相手側, どちらの IP アドレスに対しても, 0 を指定するべきでは 繰り返しますが, 行番号は取り除いておいてください.
「ありません」. もし 0 を指定すると, ppp が正しい初期エントリを これは解説の際に参照する行を示すためにつけたものです.
ルーティングテーブルに設定することができなくなるでしょう. なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です.
<p>``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたいビット数です. <descrip>
<tag/Line 10:/ ``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたい
ビットの数です. 場合によっては, もっと適切な IP アドレスを
指定しておきたいこともあるかもしれませんが,
ほとんどの場合には 上の例の通りで問題無いはずです.
相手側の PPP 実装が壊れていて この設定では動かない場合,
最後に <tt>0.0.0.0</tt> を追加すると うまく動くように
なることがあります:
<p><tt>ppp.conf</tt> を読み込んだ時点では, まだ HISADDR マクロが <tscreen><verb>
使えないことにも注意してください. set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
このマクロが使えるのは<tt>ppp.linkup</tt>の中でだけです. </verb></tscreen>
<p>詳細なサンプルについては, このようにすると, ppp は <tt>10.0.0.1</tt> のかわりに
<tt>/etc/ppp/ppp.conf.sample</tt>ファイル中の pmdemand エントリと <tt>0.0.0.0</tt> を使用して交渉を開始します.
<tt>/etc/ppp/ppp.linkup.sample</tt>を参照してください. ここで <tt>set ifaddr</tt> コマンドの最初の引数として
<tt>0.0.0.0/0</tt> を指定してはいけません.
さもないと, <tt>-auto</tt> モードや <tt>-ddial</tt> モードで
動作させる際に 初期経路を設定することができなくなります.
</descrip>
<sect2><heading>かかってきた電話を PPP で受けるには</heading> <p><tt>/etc/ppp/ppp.linkup</tt> にもエントリを作成しておく必要があります.
<tt>ppp.linkup</tt> は接続が確立された後に使用されます. この時点では,
ppp は<bf>実際に</bf>どの IP アドレスを使うべきなのか わかっているはずです.
以下のエントリは存在する仮の経路を削除し, 正しい経路を作成します:
<p>このセクションでは iijppp をサーバとして設定する方法について説明します. <tscreen><verb>
1 provider:
2 delete ALL
3 add 0 0 HISADDR
</verb></tscreen>
<descrip>
<tag/Line 1:/ 接続を確立する際に, ppp は以下のルールに従って
<tt>ppp.linkup</tt> のエントリを検索します:
まず <tt>ppp.conf</tt> で使用されたのと同じラベルを探します.
もし見つからなければ, ゲートウェイの IP アドレスのエントリを
探します. このエントリは 4 オクテットの IP アドレス形式の
ラベルです. それでも まだエントリが見つからなければ,
<tt>MYADDR</tt> エントリを探します.
<tag/Line 2:/ この行は, 使用する tun インターフェースに関する既存の経路を
(ダイレクトルートのエントリを除き) すべて削除するよう
ppp に指示します.
<tag/Line 3:/ この行は <tt>HISADDR</tt> への経路をデフォルトルートとして
追加するように ppp に指示します. <tt>HISADDR</tt> は IPCP で
決定されたゲートウェイの IP アドレスで置きかえられます.
</descrip>
<p>詳細なサンプルについては, <tt>/etc/ppp/ppp.conf.sample</tt> ファイル中の
pmdemand エントリと <tt>/etc/ppp/ppp.linkup.sample</tt> を参照してください.
<sect2><heading>かかってきた電話を ppp で受けるには</heading>
<p>このセクションでは ppp をサーバとして設定する方法について説明します.
<p>かかってきた電話を<tt>ppp</tt>が受けるように設定する場合, <p>かかってきた電話を<tt>ppp</tt>が受けるように設定する場合,
<tt>ppp</tt>接続についてだけパケットをフォワードするようにしたいのか, <tt>PPP</tt>接続についてだけパケットを転送するようにするのか,
すべてのインターフェースについてフォワードするようにしたいのか, すべてのインターフェースについて転送するようにするのか,
それともまったくフォワードをおこないたくないのかを決めなければいけません. それとも一切転送をおこなわないのかを決定しなければいけません.
ppp 接続についてだけフォワードをおこなうためには, PPP 接続についてだけ転送をおこなうためには, <tt>ppp.conf</tt>ファイルに
以下の行を<tt>ppp.conf</tt>ファイルに追加しておきます. 以下の行を追加しておきます.
<tscreen><verb> <tscreen><verb>
enable proxy enable proxy
</verb></tscreen> </verb></tscreen>
すべてのインターフェースについてパケットの転送をおこないたい場合は, すべてのインターフェースについてパケットの転送をおこなう場合には,
以下のオプションを<tt>/etc/rc.conf</tt>に設定してください. (このファイルは <tt>/etc/rc.conf</tt>で以下のオプションを指定してください. (このファイルは
以前のバージョンの FreeBSD では<tt>/etc/sysconfig</tt>と呼ばれていました) 以前のバージョンの FreeBSD では<tt>/etc/sysconfig</tt>と呼ばれていました)
<tscreen><verb> <tscreen><verb>
gateway=YES gateway=YES
</verb></tscreen> </verb></tscreen>
<sect3><heading>どの getty を使おうか?</heading> <sect3><heading>どの getty を使いますか?</heading>
<p>getty を使ってダイアルアップサービスをおこなうための優れた解説が <p>getty でダイアルアップサービスをおこなう場合の優れた解説が <ref id="dialup"
<ref id="dialup" name="FreeBSD でダイアルアップサービスをおこなうための設定"> name="FreeBSD でダイアルアップサービスをおこなうための設定">にあります.
にあります.
<p>getty に代わるものとしては, <p>getty に代わるものとしては,
<url url="http://www.leo.org/~doering/mgetty/index.html" name="mgetty"> <url url="http://www.leo.org/~doering/mgetty/index.html" name="mgetty">
@ -432,18 +498,24 @@
ダイアルアップ回線での使用を意図して設計されています. ダイアルアップ回線での使用を意図して設計されています.
<p>mgetty を使う場合の利点は, mgetty が積極的にモデムと<em>通信する</em> <p>mgetty を使う場合の利点は, mgetty が積極的にモデムと<em>通信する</em>
ということです. つまり, もし<tt>/etc/ttys</tt>でポートを閉じ場合, ということです. つまり, もし<tt>/etc/ttys</tt>でポートを閉じている場合,
モデムは電話をとらないようになります. モデムは電話をとらななります.
<p>最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの <p>最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの
自動検出もサポートされています. これにより, クライアント側で 自動検出もサポートされています. これにより, クライアント側で
スクリプトを準備しなくもサーバにアクセスすることができます. スクリプトを準備しなくもサーバにアクセスすることができます.
<p>mgetty の入手方法と正しい設定については, このドキュメントの扱う範囲を <p>mgetty に関する, より詳細な情報については <ref id="userppp:mgetty"
越えています. name="Mgetty と AutoPPP"> を参照してください.
訳者注: 最近の ports および packages には mgetty+sendfax が含まれています.
<sect3><heading>動的 IP ユーザのための PPP シェルの設定</heading> <sect3><heading>ppp の実行許可</heading>
<p>ppp は通常, ID 0 のユーザ (root) として動作しなければいけませんが,
以下で説明するように, ppp を通常のユーザとしてサーバモードで実行させたい
場合には, そのユーザを <tt>/etc/group</tt> の <tt>network</tt> グループに
追加して, ppp を実行する許可を与えておかなければいけません.
<sect3><heading>動的 IP ユーザのための ppp シェルの設定</heading>
<p><tt>/etc/ppp/ppp-shell</tt>という名前で, 以下のような内容のファイルを <p><tt>/etc/ppp/ppp-shell</tt>という名前で, 以下のような内容のファイルを
作成します: 作成します:
@ -465,7 +537,7 @@
</verb></tscreen> </verb></tscreen>
<p>このスクリプトには実行可能属性をつけておきます. <p>このスクリプトには実行可能属性をつけておきます.
次に以下のコマンドを実行し, <tt>ppp-dialup</tt>という名前で 次に, 以下のコマンドを実行し, <tt>ppp-dialup</tt>という名前で
このスクリプトへのリンクを作成します: このスクリプトへのリンクを作成します:
<tscreen><verb> <tscreen><verb>
@ -484,7 +556,7 @@
<p>任意のユーザが読むことのできる, <tt>/home/ppp</tt>ディレクトリを <p>任意のユーザが読むことのできる, <tt>/home/ppp</tt>ディレクトリを
作成します. <tt>/etc/motd</tt>が表示されないようにするため, 作成します. <tt>/etc/motd</tt>が表示されないようにするため,
以下のように大きさが 0 バイトのファイルを このディレクトリの下に このディレクトリには以下のように大きさが 0 バイトのファイルを
作成しておきます. 作成しておきます.
<tscreen><verb> <tscreen><verb>
@ -495,12 +567,12 @@
<sect3><heading>静的 IP ユーザのための PPP シェルの設定</heading> <sect3><heading>静的 IP ユーザのための PPP シェルの設定</heading>
<p>上記と同じように<tt>ppp-shell</tt>ファイルを作成し, <p>上記と同じように<tt>ppp-shell</tt>ファイルを作成し,
静的に IP アドレスを割り当てる それぞれのアカウントごとに 静的な IP アドレスを割り当てるアカウントそれぞれについて
<tt>ppp-shell</tt>へのシンボリックリンクを作成します. <tt>ppp-shell</tt>へのシンボリックリンクを作成します.
<p>例えば, クラス C ネットワークの経路制御を必要とする, <p>例えば, クラス C ネットワークの経路制御を必要とする,
三人のダイアルアップ顧客 fred, sam, mary がいるとすると, 三人のダイアルアップユーザ fred, sam, mary がいるとすると,
以下のコマンドを実行することになるでしょう: 以下のコマンドを実行することになります:
<tscreen><verb> <tscreen><verb>
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
@ -515,7 +587,7 @@
<sect3><heading>動的 IP ユーザのための ppp.conf の設定</heading> <sect3><heading>動的 IP ユーザのための ppp.conf の設定</heading>
<p><tt>/etc/ppp/ppp.conf</tt>ファイルは 大体以下のような内容になるでしょう: <p><tt>/etc/ppp/ppp.conf</tt>ファイルは, 大体以下のような内容になるでしょう:
<tscreen><verb> <tscreen><verb>
default: default:
@ -533,7 +605,7 @@
<p>上の例のように段をつける (インデントする) 必要があることに注意してください. <p>上の例のように段をつける (インデントする) 必要があることに注意してください.
<p><tt>default:</tt> セクションはセッションごとにロードされます. <p><tt>default:</tt> エントリはセッションごとにロードされます.
<tt>/etc/ttys</tt>で有効にしてある各ダイアルアップ回線ごとに一つ, <tt>/etc/ttys</tt>で有効にしてある各ダイアルアップ回線ごとに一つ,
上記の<tt>ttyd0:</tt>のようなエントリを作成します. 上記の<tt>ttyd0:</tt>のようなエントリを作成します.
各行の相手側アドレスとして, それぞれ別の IP アドレスを 各行の相手側アドレスとして, それぞれ別の IP アドレスを
@ -543,7 +615,7 @@
<p>上のサンプルの<tt>/etc/ppp/ppp.conf</tt>の内容に加えて, <p>上のサンプルの<tt>/etc/ppp/ppp.conf</tt>の内容に加えて,
静的に IP を割り当てられたダイアルアップユーザ 静的に IP を割り当てられたダイアルアップユーザ
それぞれのためのセクションを追加する必要があります. それぞれのためのエントリを追加する必要があります.
ここでも fred, sam, mary の例を使うことにしましょう. ここでも fred, sam, mary の例を使うことにしましょう.
<tscreen><verb> <tscreen><verb>
@ -557,9 +629,9 @@
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
</verb></tscreen> </verb></tscreen>
<p>必要であれば, それぞれの静的 IP ユーザのための経路制御情報も <p>必要であれば, それぞれの静的 IP ユーザに対する経路制御情報も
<tt>/etc/ppp/ppp.linkup</tt>ファイルに含めておくべきでしょう. <tt>/etc/ppp/ppp.linkup</tt>ファイルに書いておくべきでしょう.
以下の例ではクライアントの ppp リンクを経由する 以下の例ではクライアントの PPP リンクを経由する,
クラス C の<tt>203.14.101.0</tt>ネットワークへの経路を追加しています. クラス C の<tt>203.14.101.0</tt>ネットワークへの経路を追加しています.
<tscreen><verb> <tscreen><verb>
@ -573,12 +645,13 @@
add 203.14.103.0 netmask 255.255.255.0 HISADDR add 203.14.103.0 netmask 255.255.255.0 HISADDR
</verb></tscreen> </verb></tscreen>
<sect3><heading>mgetty, AutoPPP, マイクロソフト拡張について さらに詳しく</heading> <sect3><heading>mgetty, AutoPPP, マイクロソフト拡張の詳細</heading>
<sect4><heading>Mgetty と AutoPPP</heading> <sect4><heading>Mgetty と AutoPPP<label id="userppp:mgetty">
</heading>
<p>AUTO_PPP オプションつきでコンパイルした mgetty を使えば, mgetty が <p>AUTO_PPP オプションつきでコンパイルした mgetty を使えば, mgetty が
PPP 接続の LCP フェーズを検出して, 自動的に ppp シェルを起動するように PPP 接続の LCP フェーズを検出して, 自動的に PPP シェルを起動するように
設定することができます. 設定することができます.
しかし この場合, デフォルトの login/password シーケンスは発生しないので, しかし この場合, デフォルトの login/password シーケンスは発生しないので,
ユーザの認証は PAP または CHAP を使っておこなう必要があります. ユーザの認証は PAP または CHAP を使っておこなう必要があります.
@ -598,7 +671,7 @@
スクリプトを実行するようになります. スクリプトを実行するようになります.
<p><tt>/etc/ppp/ppp-pap-dialup</tt>という名前で, 以下のような内容のファイルを <p><tt>/etc/ppp/ppp-pap-dialup</tt>という名前で, 以下のような内容のファイルを
作成します (このファイルは実行可能属性をつけておく必要があるでしょう): 作成します (このファイルは実行可能属性をつけておく必要があります):
<tscreen><verb> <tscreen><verb>
#!/bin/sh #!/bin/sh
@ -623,9 +696,9 @@
enable proxy enable proxy
</verb></tscreen> </verb></tscreen>
<p>この方法でログインする各ユーザは, PAP によるユーザ認証をおこなうために <p>この方法でログインする それぞれのユーザは, PAP によるユーザ認証を
<tt>/etc/ppp/ppp.secret</tt>ファイルにユーザ名とパスワードを書いておくか, おこなうために<tt>/etc/ppp/ppp.secret</tt>ファイルにユーザ名とパスワードを
または<tt>/etc/password</tt>ファイルを使うように 書いておくか, または<tt>/etc/password</tt>ファイルを使うように,
<tscreen><verb> <tscreen><verb>
enable passwdauth enable passwdauth
@ -633,7 +706,7 @@
オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. (*) オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. (*)
<p>(*) このオプションは 2.2-961014-SNAP およびそれ以降のシステムか, <p>(*) このオプションは 2.2-961014-SNAP および それ以降のシステムか,
または 2.1.x のシステムにおいて ppp のコードを更新している場合にだけ または 2.1.x のシステムにおいて ppp のコードを更新している場合にだけ
使用可能だということに注意してください. 使用可能だということに注意してください.
(詳細に関しては, 以下のマイクロソフト拡張を参照してください) (詳細に関しては, 以下のマイクロソフト拡張を参照してください)
@ -661,10 +734,98 @@
<p>これにより, クライアントはプライマリとセカンダリのネームサーバアドレス <p>これにより, クライアントはプライマリとセカンダリのネームサーバアドレス
および NetBIOS ネームサーバホストを知ることができます. および NetBIOS ネームサーバホストを知ることができます.
<sect1><heading>システムの最終設定</heading> <sect2><heading>PAP および CHAP による認証<label id="userppp:PAPnCHAP">
</heading>
<p>これで PPP の設定は終りました. <p>いくつかのプロバイダでは、PAP または CHAP のいずれかの認証メカニズムを
しかし PPP が動くようになる前に, もう少し必要なことがあります. 使用して接続時の認証をおこなうようにシステムを設定しています.
この場合, プロバイダは接続の際に <tt>login:</tt> プロンプトを送信せず,
最初から PPP で通信を始めようとするでしょう.
PAP ではパスワードがそのまま送られてしまうため, CHAP に比べると安全性が
低くなりますが, このパスワードはシリアル回線のみを通して送られます.
そのため, クラッカーが「盗み聞き」する余地は多くないので, 通常ここの
セキュリティは問題にはなりません.
<ref id="userppp:staticIP" name="静的 IP アドレスによる PPP 接続">または
<ref id="userppp:dynamicIP" name="動的 IP アドレスによる PPP 接続">の
セクションに戻って, 以下の変更をおこないます:
<tscreen><verb>
7 set login
.....
13 set authname MyUserName
14 set authname MyPassword
</verb></tscreen>
これまでと同様に, 行番号は取り除いておいてください.
これは解説の際に参照する行を示すためにつけたものです.
なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です.
<descrip>
<tag/Line 7:/ PAP または CHAP を使用する場合, 通常 プロバイダはサーバへの
ログインを必要としません. そのため, "set login" 文字列を
無効にしておかなければいけません.
<tag/Line 13:/ この行は PAP/CHAP ユーザ名を指定します. <tt>MyUserName</tt> に
正しい値を入れておく必要があります.
<tag/Line 14:/ この行は PAP/CHAP パスワードを指定します. <tt>MyPassword</tt> に
正しい値を入れておく必要があります.
PAP と CHAP はデフォルトで受け付けられるようになっていますが,
PAP や CHAP を使用するという意思を明示するために,
<tscreen><verb>
15 accept PAP
</verb></tscreen>
または
<tscreen><verb>
15 accept CHAP
</verb></tscreen>
という行を追加しておくのも良いでしょう.
</descrip>
<p><bf>注:</bf>(<tt>set log +command</tt>で) コマンド記録をオンにしていると,
<tt>authkey</tt> も記録されてしまいます. ppp のログファイルの許可モードを
決定する際には, このことに注意しておいてください.
<sect2><heading>動作中の ppp の設定変更</heading>
<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
</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> コマンドを
参照してください.
<p>一旦ソケットの設定が終了したら, スクリプト中で <tt>pppctl(8)</tt> を
使用して, 動作中の ppp を操作することができるでしょう.
<sect1><heading>システムの最終設定<label id="userppp:final">
</heading>
<p>これで ppp の設定は終りました.
しかし ppp を動かす前に, まだ少し必要なことがあります.
それらの設定は, すべて<tt>/etc/rc.conf</tt>ファイルを それらの設定は, すべて<tt>/etc/rc.conf</tt>ファイルを
編集することでおこないます. 編集することでおこないます.
(このファイルは以前には<tt>/etc/sysconfig</tt>と呼ばれていました) (このファイルは以前には<tt>/etc/sysconfig</tt>と呼ばれていました)
@ -677,6 +838,9 @@
hostname=foo.bar.com hostname=foo.bar.com
</verb></tscreen> </verb></tscreen>
<p>もしプロバイダが静的な IP アドレスとホスト名を割り当てているのなら,
ホスト名としてそれを使うのが おそらくベストでしょう.
<p>次に network_interfaces 変数を調べます. 必要に応じて (on demand) <p>次に network_interfaces 変数を調べます. 必要に応じて (on demand)
プロバイダにダイアルするようにシステムを設定したい場合には, プロバイダにダイアルするようにシステムを設定したい場合には,
tun0 デバイスがこのリストに追加されていることを確認しておきます. tun0 デバイスがこのリストに追加されていることを確認しておきます.
@ -697,6 +861,10 @@
このスクリプトはネットワークの設定時に実行され, このスクリプトはネットワークの設定時に実行され,
ppp デーモンを自動モードで立ち上げます. ppp デーモンを自動モードで立ち上げます.
このマシンがもし LAN のゲートウェイであれば,
<tt>-alias</tt> スイッチも使用したいと思うかもしれません.
詳細に関しては, マニュアルページを参照してください.
<p>以下のようにルータプログラムを ``NO'' に設定します. <p>以下のようにルータプログラムを ``NO'' に設定します.
@ -706,8 +874,9 @@
</verb></tscreen> </verb></tscreen>
<tt>routed</tt>は, ppp が作成したデフォルトのルーティングテーブル <tt>routed</tt>は, ppp が作成したデフォルトのルーティングテーブル
エントリを削除してしまう場合がありますので, <tt>routed</tt>デーモンが エントリを削除してしまう場合がありますので,
起動されないようにしておくことが重要です. (これは初期設定の状態です) (初期設定では起動されるようになっている) <tt>routed</tt>デーモンが
起動されないようにしておくことが重要です.
<p>``sendmail_flags'' 行が ``-q'' オプションを含まないように <p>``sendmail_flags'' 行が ``-q'' オプションを含まないように
設定しておいた方がよいでしょう. さもないと, sendmail が 設定しておいた方がよいでしょう. さもないと, sendmail が
@ -718,23 +887,33 @@
sendmail_flags="-bd" sendmail_flags="-bd"
</verb></tscreen> </verb></tscreen>
この結果, PPP リンクを立ち上げた時には いつでも この結果, PPP リンクを立ち上げた時には
以下のコマンドを実行して, キューにたまっているメールを いつでも以下のコマンドを実行して, キューにたまっているメールを
sendmail に送信させる作業が必要になるでしょう. sendmail に送信させる作業が必要になるでしょう.
<tscreen><verb> <tscreen><verb>
# /usr/sbin/sendmail -q # /usr/sbin/sendmail -q
</verb></tscreen> </verb></tscreen>
こうするのが嫌であれば, SMTP トラフィックをブロックするように <p>ppp.linkup 中で <tt>!bg</tt> コマンドを使用することで, これを自動的に
おこなうこともできます:
<tscreen><verb>
1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30m
</verb></tscreen>
<p>こうするのが嫌であれば, SMTP トラフィックをブロックするように
"dfilter" を設定しておくこともできます. "dfilter" を設定しておくこともできます.
詳細についてはサンプルファイルを参照してください. 詳細についてはサンプルファイルを参照してください.
また, <tt>ppp.linkup</tt>ファイルの中で
このコマンドを実行するスクリプトを起動することもできます.
後はマシンをリブートするだけです. <p>後はマシンをリブートするだけです.
<p>リブートが終ったら,
さて, これで
<tscreen><verb> <tscreen><verb>
# ppp # ppp
</verb></tscreen> </verb></tscreen>
@ -760,10 +939,11 @@
<item>カーネルに tun デバイスが組み込まれていることを確認. <item>カーネルに tun デバイスが組み込まれていることを確認.
<item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが <item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが
存在することを確認. 存在することを確認.
<item><tt>/etc/ppp.conf</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
ほとんどのプロバイダでは, <tt>pmdemand</tt> の例で充分でしょう. ほとんどのプロバイダでは, <tt>pmdemand</tt> の例で充分でしょう.
<item><tt>/etc/ppp.linkup</tt>にエントリを作成. <item>動的 IP アドレスを使用するなら, <tt>/etc/ppp/ppp.linkup</tt>に
<item>rc.conf (または sysconfig) ファイルを更新. エントリを作成.
<item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
<item>必要に応じてダイヤル (demand dialing) したいのであれば, <item>必要に応じてダイヤル (demand dialing) したいのであれば,
start_if.tun0 スクリプトを作成. start_if.tun0 スクリプトを作成.
</itemize> </itemize>
@ -776,15 +956,18 @@
<item>(vipw(8) コマンドを使って) /etc/passwd にエントリを作成. <item>(vipw(8) コマンドを使って) /etc/passwd にエントリを作成.
<item>このユーザのホームディレクトリに <item>このユーザのホームディレクトリに
``ppp -direct direct-server'' か何かを実行するプロファイルを作成. ``ppp -direct direct-server'' か何かを実行するプロファイルを作成.
<item><tt>/etc/ppp.conf</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
<tt>direct-server</tt>の例で充分でしょう. <tt>direct-server</tt>の例で充分でしょう.
<item><tt>/etc/ppp.linkup</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.linkup</tt>にエントリを作成.
<item>rc.conf (または sysconfig) ファイルを更新. <item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
</itemize> </itemize>
<sect1><heading>謝辞</heading> <sect1><heading>謝辞</heading>
<p>批評と提案に感謝します: <p>ハンドブックの このセクションは, 1997 年 9 月 7 日に &a.brian によって
更新されました.
<p>以下の人々による情報提供, 批評そして提案に感謝します:
<p>&a.nik <p>&a.nik
<p>&a.dirkvangulik <p>&a.dirkvangulik

View file

@ -1,21 +1,21 @@
<!-- $Id: userppp.sgml,v 1.9 1997-08-24 21:09:50 max Exp $ --> <!-- $Id: userppp.sgml,v 1.10 1997-09-22 18:31:20 max Exp $ -->
<!-- The FreeBSD Japanese Documentation Project --> <!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.18 --> <!-- Original revision: 1.26 -->
<sect>ユーザ PPP の設定<label id="userppp"> <sect>ユーザ ppp の設定<label id="userppp">
<!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em>または <!-- この FAQ あるいは手引は, <em>ユーザレベル ppp</em>または
単に<em>ppp</em>としても知られている iijppp を, 単に<em>ppp</em>としても知られている ppp を,
あなたの FreeBSD 2.0.5 (以降) で動くようにすることを目的としています. あなたの FreeBSD 2.0.5 (以降) で動くようにすることを目的としています.
<p>また, iijppp を ppp サーバとして使う方法の概略についても述べています. <p>また, ユーザ ppp を PPP サーバとして使う方法の概略についても述べています.
<p>このドキュメントは もともと Nik Clayton によって書かれたものですが, <p>このドキュメントは もともと Nik Clayton によって書かれたものですが,
現在では何年にもわたる共同作業の成果となっています. 現在では何年にもわたる共同作業の成果となっています.
--> -->
<p>ユーザ PPP は FreeBSD 2.0.5-RELEASE において, <p>ユーザ ppp は FreeBSD 2.0.5-RELEASE において,
既存のカーネル実装版の PPP に加えて導入されました. 既存のカーネル実装版の PPP に加えて導入されました.
それでは, これまでの pppd との違い, すなわち それでは, これまでの pppd との違い, すなわち
この新しい PPP が追加された理由とは いったい何なのでしょうか? この新しい PPP が追加された理由とは いったい何なのでしょうか?
@ -35,9 +35,9 @@
使うことができるため, PPP インターフェースをカーネルに組み込んでおく 使うことができるため, PPP インターフェースをカーネルに組み込んでおく
必要がありません. 必要がありません.
以降では, ユーザ ppp と他の PPP クライアント/サーバソフトウェアとを 以降では, ユーザ ppp と pppd のような他の PPP クライアント/サーバ
区別する必要がありませんので, ユーザ ppp を単に ppp とだけ呼びます. ソフトウェアとを区別する必要がありませんので, ユーザ ppp を単に ppp とだけ
特に断らない限り, このセクションのすべてのコマンドは root 権限で 呼びます. 特に断らない限り, このセクションのすべてのコマンドは root 権限で
実行する必要があります. 実行する必要があります.
訳者注: 以前の日本語ハンドブックでは, iij-ppp のオリジナルアーカイブに 訳者注: 以前の日本語ハンドブックでは, iij-ppp のオリジナルアーカイブに
@ -60,40 +60,48 @@
以下の情報を手に入れておく必要があるでしょう: 以下の情報を手に入れておく必要があるでしょう:
<itemize> <itemize>
<item>プロバイダのゲートウェイの IP アドレス. <item><p>プロバイダの電話番号.
ゲートウェイとは, あなたがそこに接続をおこなって,
<tt>デフォルトルート</tt>として設定することになるマシンです.
<item>プロバイダのネットマスク設定. もし不明な場合には, <item><p>ログイン名とパスワード. これは通常の unix 形式のログイン名と
ネットマスクとして 0xffffff00 を仮定しておきます. パスワードの組かもしれませんし, PPP PAP または CHAP の
ログイン名とパスワードの組かもしれません.
<item>一つ以上のネームサーバの IP アドレス. 通常, 二つの IP アドレスが <item><p>プロバイダのゲートウェイの IP アドレス.
プロバイダから示されているはずです. ゲートウェイとは, あなたがそこに接続をおこなって,
<tt>デフォルトルート</tt>として設定することになるマシンです.
もしプロバイダがこのアドレスを明示していなくても大丈夫.
適当に設定しておいて, 接続時にプロバイダの PPP サーバから
教えてもらうことができます.
<p>このアドレスは, 以降<tt>HISADDR</tt>と呼ぶことにします.
<item>もしプロバイダが固定の IP アドレスとホスト名を割り当てているのなら, <item><p>プロバイダのネットマスク設定. 繰り返しますが, 不明な場合には
同様にそれも必要になるでしょう. そうでなければ, どのアドレス範囲から ネットマスクとして 255.255.255.0 を使用しておけば問題ありません.
IP アドレスの割り当てがおこなわれるかを知っておく必要があるでしょう.
<item><p>一つ以上のネームサーバの IP アドレス. 通常, IP アドレスが二つ
プロバイダから指示されているはずです. 自分でネームサーバを
動かしているのでなければ, この情報は<bf>絶対に</bf>必要です.
<item><p>もしプロバイダから固定の IP アドレスとホスト名の割り当てを
受けているのなら, 同様にそれも必要になるでしょう.
そうでなければ, どのアドレス範囲から IP アドレスの割り当てが
おこなわれるかを知っておく必要があるでしょう.
もし範囲が示されていないとしても, 任意の IP アドレスを もし範囲が示されていないとしても, 任意の IP アドレスを
受け入れるようにすることが可能です (後で説明します). 受け入れるようにすることが可能です (後で説明します).
</itemize> </itemize>
もしこれらの情報のうち不明なものがあれば, プロバイダに連絡して もし, これらの情報のうち不明なものがあれば, プロバイダに連絡して
確認しておいてください. 確認しておいてください.
これに加えて, インターネットへの接続は常時おこなわれているわけではなく,
そのためネームサーバ (<tt>named(8)</tt>) を立ち上げていないと仮定します.
ネームサーバを立ち上げているのであれば, <tt>/etc/resolv.conf</tt>ファイルの
設定に関する情報は無視してください.
<sect1><heading>ppp 対応カーネルの構築</heading> <sect1><heading>ppp 対応カーネルの構築</heading>
<p>説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います. <p>説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います.
そのため, このデバイスがカーネルに組み込まれているかどうか そのため, このデバイスがカーネルに組み込まれているかどうかを
確認しておかなくてはいけません. 確認しておかなくてはいけません.
これを確認するには, カーネルコンパイルディレクトリ これを確認するには, カーネルコンパイルディレクトリ
(おそらくは /sys/i386/conf) に移動して, カーネルコンフィグレーション (<tt>/sys/i386/conf</tt> または <tt>/sys/pc98/conf</tt>) に移動して,
ファイルを調べます. 以下の行がどこかに含まれている必要があります. カーネルコンフィグレーションファイルを調べます.
以下の行がどこかに含まれている必要があります.
<tscreen><verb> <tscreen><verb>
pseudo-device tun 1 pseudo-device tun 1
@ -102,9 +110,9 @@
元々の GENERIC カーネルは標準でこれを含んでいますので, 元々の GENERIC カーネルは標準でこれを含んでいますので,
カスタムカーネルをインストールしているのではなかったり, カスタムカーネルをインストールしているのではなかったり,
/sys ディレクトリが存在しないのであれば, 何も変更する必要はありません. /sys ディレクトリが存在しないのであれば, 何も変更する必要はありません.
この行がカーネルコンフィグレーションファイルに含まれていなかったり, <p>この行がカーネルコンフィグレーションファイルに含まれていなかったり,
tun デバイスが一つでは足りない場合 (例えば, 同時に 16 本の tun デバイスが一つでは足りない場合 (例えば, 同時に 16 本の
ダイアルアップ ppp 接続を処理できるサーバを立ち上げるとしたら, ダイアルアップ PPP 接続を処理できるサーバを立ち上げるとしたら,
``1'' のかわりに ``16'' を指定する必要があるでしょう), この行を追加して ``1'' のかわりに ``16'' を指定する必要があるでしょう), この行を追加して
カーネルの再コンパイルとインストールをおこなう必要があります. カーネルの再コンパイルとインストールをおこなう必要があります.
それからこの新しいカーネルを使ってブートしてください. それからこの新しいカーネルを使ってブートしてください.
@ -112,8 +120,8 @@
<ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション"> <ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション">
を参照してください. を参照してください.
<p>以下のコマンドを実行することで, 現在のカーネルに <p>以下のコマンドを実行することで, 現在のカーネルにトンネルデバイスが
いくつのトンネルデバイスが組み込まれているかを調べることができます: いくつ組み込まれているかを調べることができます:
<tscreen><verb> <tscreen><verb>
# ifconfig -a # ifconfig -a
@ -130,10 +138,10 @@
<p>トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で <p>トンネルデバイスがカーネルに組み込まれておらず, 何らかの理由で
カーネルの再構築ができない場合でも, 方法がないわけではありません. カーネルの再構築ができない場合でも, 方法がないわけではありません.
動的にデバイスをロードすることができるはずです. 詳細については 動的にデバイスをロードすることができるはずです. 詳細については
modload(8) や lkm(4) など, 適切なマニュアルを参照してください. modload(8) や lkm(4) など, 適切なマニュアルを参照してください.
<p>この機会にファイアウォールも設定したいと思っているのであれば, <p>この機会にファイアウォールも設定しておきたいと思っているのであれば,
詳細については<ref id="firewalls" name="ファイアウォール">セクションを 詳細については<ref id="firewalls" name="ファイアウォール">セクションを
参照してください. 参照してください.
@ -141,11 +149,11 @@
<p>ほとんどのユーザは ``tun'' デバイス (tun0) が一つあれば充分でしょう. <p>ほとんどのユーザは ``tun'' デバイス (tun0) が一つあれば充分でしょう.
より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション
ファイルで疑似デバイスの行に `1' 以外の数値を指定している場合), ファイルで tun 疑似デバイスの行に `1' 以外の数値を指定している場合),
以下の ``tun0'' に対する参照をすべて, あなたが使うデバイスの番号に 以下で ``tun0'' と書かれている部分をすべて, あなたが使うデバイスの番号に
あわせて読みかえてください. あわせて読みかえてください.
tun0 デバイスが正しく設定されていることを確認する最も簡単な方法は, tun0 デバイスが正しく作成されていることを確認する最も簡単な方法は,
それを作り直すことです. そのためには, 以下のコマンドを実行します: それを作り直すことです. そのためには, 以下のコマンドを実行します:
<tscreen><verb> <tscreen><verb>
@ -158,12 +166,11 @@
<tscreen><verb> <tscreen><verb>
# cd /dev # cd /dev
# ./MAKEDEV tun0 tun1 tun2 tun3 tun4 tun5 tun6 tun7 tun8 tun9 # ./MAKEDEV tun15
# ./MAKEDEV tun10 tun11 tun12 tun13 tun14 tun15
</verb></tscreen> </verb></tscreen>
<p>また, カーネルが正しく設定されているかどうか調べるために, <p>また, カーネルが正しく設定されているかどうか調べるために
以下のコマンドで このような出力が得られるかどうかを確認します: 以下のコマンドを実行して, このような出力が得られることを確認します:
<tscreen><verb> <tscreen><verb>
$ ifconfig tun0 $ ifconfig tun0
@ -171,35 +178,34 @@
$ $
</verb></tscreen> </verb></tscreen>
<sect1><heading>PPP の名前解決に関する設定</heading> <sect1><heading>名前解決に関する設定</heading>
<p>リゾルバ (resolver) はネットワーキングシステムの一部分で, IP アドレスと <p>リゾルバ (resolver) はシステムの一部分で, IP アドレスとホスト名との
ホスト名との変換をおこないます. これは, IP アドレスとホスト名を 変換をおこないます. IP アドレスとホスト名を対応させるためのマップを,
対応させるためのマップを, 二つの場所のうちの一つから探すように設定できます. 二つの場所のうちの一つから探すように設定できます.
一つめは<tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです. 一つめは<tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれるファイルです.
二つめはインターネットドメインネームサービス (DNS) とよばれる 二つめはインターネット ドメインネームサービス (DNS) と呼ばれる
分散データベースですが, これに関する議論はこのドキュメントの扱える範囲を 分散データベースですが, これに関する議論は このドキュメントで扱う範囲を
越えていますので, これについての説明はおこないません. 越えていますので, これについての説明はおこないません.
<p>このセクションではリゾルバの設定方法について簡単に説明します. <p>このセクションではリゾルバの設定方法について簡単に説明します.
既に DNS を使用しているのであれば, このセクションは飛ばしてもかまいません.
<p>リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし <p>リゾルバは名前のマッピングをおこなうシステムコールの集合体です. ただし
どこからマッピング情報を得るのかは, あなたが指示する必要があります. どこからマッピング情報を見つけるのかは, 最初に指示しておく必要があります.
これはまず<tt>/etc/host.conf</tt>ファイルを編集することでおこないます. これは まず<tt>/etc/host.conf</tt>ファイルを編集することでおこないます.
混乱の元すので, このファイルを<tt>/etc/hosts.conf</tt>と 混乱の元になりますので, このファイルを<tt>/etc/hosts.conf</tt>と
呼んだりしては<bf>いけません</bf> (余分な ``s'' がついていますね). 呼んだりしては<bf>いけません</bf> (余分な ``s'' がついていますね).
<sect2><heading>/etc/host.conf ファイルの編集</heading> <sect2><heading>/etc/host.conf ファイルの編集</heading>
<p>このファイルは以下の 2 行を含んでいるはずです: <p>このファイルには 以下の 2 行が書かれているはずです:
<tscreen><verb> <tscreen><verb>
hosts hosts
bind bind
</verb></tscreen> </verb></tscreen>
これは, 最初に<tt>/etc/hosts</tt>ファイルを調べ, これは, 最初に<tt>/etc/hosts</tt>ファイルを調べ, そこで目的の名前が
目指す名前が見つからなければ DNS を引きにいくようリゾルバに指示します. 見つけられなかった場合に DNS を引きにいくようリゾルバに指示します.
<sect2><heading>/etc/hosts(5) ファイルの編集</heading> <sect2><heading>/etc/hosts(5) ファイルの編集</heading>
@ -219,68 +225,65 @@
常に 127.0.0.1 でなければいけません. 二つめの行はホスト名 ``foo.bar.com'' 常に 127.0.0.1 でなければいけません. 二つめの行はホスト名 ``foo.bar.com''
(と, その省略形 ``foo'') を IP アドレス 10.0.0.1 にマップします. (と, その省略形 ``foo'') を IP アドレス 10.0.0.1 にマップします.
もしプロバイダから固定の IP アドレスを割り当てられているのであれば, もしプロバイダから固定の IP アドレスとホスト名を割り当てられて
それを 10.0.0.1 のかわりに使ってください. いるのであれば, それを 10.0.0.1 エントリのかわりに使ってください.
<sect2><heading>/etc/resolv.conf ファイルの編集</heading> <sect2><heading>/etc/resolv.conf ファイルの編集</heading>
<p><tt>/etc/resolv.conf</tt> はネームサーバをそのマシンで走らせていない場合に <p><tt>/etc/resolv.conf</tt>はリゾルバの振舞いを指定します.
必要になる特別な情報を含んでいます. これは実際のネームサーバの位置を もし自前の DNS サーバを走らせているのなら, このファイルは空のままに
リゾルバルーチンに示したり, その他いくつかの情報を指定したりします. しておくこともできます. 通常は, 以下のように書いておく必要があるでしょう:
<tt>/etc/resolv.conf</tt>には問い合わせが可能なネームサーバを少なくとも
一つ指定しておく必要がありますが, できれば二つ指定するのが望ましいでしょう.
これは (ホスト名ではなく) IP アドレスで書かなければいけません. 例えば:
<tscreen><verb> <tscreen><verb>
nameserver 1.2.3.4 nameserver x.x.x.x
nameserver 1.2.3.5 nameserver y.y.y.y
domain bar.com
</verb></tscreen> </verb></tscreen>
接続するプロバイダの「ネームサーバ」指定をすべて書いてください. <tt>x.x.x.x</tt> と <tt>y.y.y.y</tt> はプロバイダが指示するアドレスで,
このファイルの各エントリの詳細については, 接続するプロバイダが提供している「ネームサーバ」を すべて書いてください.
``domain'' に指定するのは このマシンのデフォルトのドメイン名で, おそらく
書かなくても問題は無いでしょう. このファイルの各エントリの詳細については,
resolv.conf のマニュアルページを参照してください. resolv.conf のマニュアルページを参照してください.
<sect1><heading>PPP の設定</heading> <sect1><heading>ppp の設定</heading>
<p>ユーザ ppp と pppd (カーネルレベルの PPP 実装) は <p>ユーザ ppp と pppd (カーネルレベルの PPP 実装) は
どちらも<tt>/etc/ppp</tt>ディレクトリに置かれた設定ファイルを使います. どちらも<tt>/etc/ppp</tt>ディレクトリに置かれた設定ファイルを使います.
設定ファイルのサンプルが提供されていて, ユーザ ppp の設定をおこなう際に ここには設定ファイルのサンプルが用意されていて, ユーザ ppp の設定を
大変参考になりますので, 削除したりしないでください. おこなう際に大変参考になりますので, 削除したりしないでください.
<p>ppp の設定をするためには, 必要に応じて三つまでのファイルを編集する必要が <p>ppp の設定をするためには, 必要に応じていくつかのファイルを編集する必要が
あります. 書き込む内容は, プロバイダが静的に IP アドレスを割り当てる あります. 書き込む内容は, プロバイダが静的に IP アドレスを割り当てる
(つまり, 固定の IP アドレスを一つ与えられて, 常にそれを使う) か, (つまり, 固定の IP アドレスを一つ与えられて, 常にそれを使う) か,
または動的に IP アドレスを割り当てる (つまり, PPP セッションごとに または動的に IP アドレスを割り当てる (つまり, PPP セッションごとに
IP アドレスが変化する可能性がある) かということに ある程度依存します. IP アドレスが変化する可能性がある) かということに ある程度依存します.
<sect2><heading>静的 IP アドレスによる PPP 接続</heading> <sect2><heading>静的 IP アドレスによる PPP 接続<label id="userppp:staticIP">
</heading>
<p><tt>/etc/ppp</tt>ディレクトリにファイルを三つ作成する必要があります. <p>まず<tt>/etc/ppp/ppp.conf</tt>という設定ファイルを作成する必要があります.
これは以下の例とほとんど同じようなものになるでしょう. ``:'' で終る行は
1 カラム目から始め, その他の行はスペースまたはタブで以下の例のように
段をつける (インデントする) 必要があることに注意してください.
<p>一つめのファイルは<tt>ppp.conf</tt>です. 以下の例とほぼ同じようなものに
なるでしょう. ``:'' で終る行は 1 カラム目から始まり, その他の行は
スペースまたはタブで以下の例のように段をつける (インデントする) 必要が
あることに注意してください.
<tt>/etc/ppp/ppp.conf</tt>
<tscreen><verb> <tscreen><verb>
1 default: 1 default:
2 set device /dev/cuaa0 2 set device /dev/cuaa0
3 set speed 38400 3 set speed 115200
4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK 4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK
\\dATDT\\T TIMEOUT 40 CONNECT" \\dATDT\\T TIMEOUT 40 CONNECT"
5 provider: 5 provider:
6 set phone 01234567890 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:-BREAK-gin: foo word: bar col: ppp"
8 set timeout 120 8 set timeout 300
9 set ifaddr x.x.x.x y.y.y.y 9 deny lqr
10 delete ALL 10 set ifaddr x.x.x.x y.y.y.y
11 add 0 0 y.y.y.y 11 delete ALL
12 set openmode active 12 add 0 0 HISADDR
</verb></tscreen> </verb></tscreen>
行番号はファイルに書かないでください. これは, 解説の際に ファイルでは行番号を取り除いておいてください.
参照する行を示すためにつけたものです. これは解説の際に参照する行を示すためにつけたものです.
<descrip> <descrip>
<tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは <tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは
@ -290,7 +293,9 @@
COM1: は<tt>/dev/cuaa0</tt>に, COM1: は<tt>/dev/cuaa0</tt>に,
COM2: は<tt>/dev/cuaa1</tt>になります. COM2: は<tt>/dev/cuaa1</tt>になります.
<tag/Line 3:/ 通信速度 (DTE 速度) を指定します. <tag/Line 3:/ 通信速度 (DTE 速度) を指定します. もし 115200 が使えない
(最近のモデムなら大抵使えるはずですが) 場合には,
かわりに 38400 を指定してみてください.
<tag/Line 4:/ ダイアルスクリプトを指定します. <tag/Line 4:/ ダイアルスクリプトを指定します.
ユーザ ppp は<tt>chat(8)</tt>言語に似た, 受信待ち文字列と ユーザ ppp は<tt>chat(8)</tt>言語に似た, 受信待ち文字列と
@ -300,13 +305,20 @@
<tag/Line 5:/ 接続するプロバイダの名前 ``provider'' を <tag/Line 5:/ 接続するプロバイダの名前 ``provider'' を
エントリ名として指定します. エントリ名として指定します.
<tag/Line 6:/ このプロバイダの電話番号を指定します. <tag/Line 6:/ このプロバイダの電話番号を指定します. 複数の電話番号を
複数の電話番号を `:' で区切って指定することができます. ``:'' や ``|'' で区切って指定することができます.
これら区切り文字の違いについては, ppp のマニュアルページに
詳しく書かれています.
要約すると, 毎回違う番号に かけたいのであれば ``:'' を使います.
常に まず先頭の番号にかけてみて, つながらない時にだけ
2 番目以降の番号に かけたいのであれば ``|'' を使います.
例に示されているように, 常に電話番号全体を引用符で
くくって (クォートして) おきます.
<tag/Line 7:/ ログインスクリプトを指定します. ログインスクリプトも <tag/Line 7:/ ダイアルスクリプトと同様に, ログインスクリプトも
ダイアルスクリプトと同様の記述方法になります. chat 言語風の記述をおこないます.
この例は, 以下のようなログインセッションを使用している この例は, 以下のようなログインセッションを使用
プロバイダのためのものです. プロバイダのためのものです:
<tscreen><verb> <tscreen><verb>
J. Random Provider J. Random Provider
@ -316,115 +328,169 @@
</verb></tscreen> </verb></tscreen>
このスクリプトは必要に応じて書きかえる必要があるでしょう. このスクリプトは必要に応じて書きかえる必要があるでしょう.
PAP や CHAP を使うのなら, ここでログインは おこないませんので
ログイン文字列は空白のままにしておきます.
詳細については <ref id="userppp:PAPnCHAP"
name="PAP および CHAP による認証">を参照してください.
<tag/Line 8:/ デフォルトの接続タイムアウト時間を (秒数で) 指定します. <tag/Line 8:/ デフォルトの接続タイムアウト時間を (秒数で) 指定します.
この例では, 120 秒間 通信がおこなわれなければ この例では, 300 秒間 通信がおこなわれなければ
自動的に接続を切るように指定しています. 自動的に接続を切るように指定しています.
タイムアウトさせたくない場合には, この値を 0 に設定します.
<tag/Line 9:/ インターフェースのアドレスを指定します. 文字列 x.x.x.x は <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 は
プロバイダに割り当てられた IP アドレスで置きかえてください. プロバイダに割り当てられた IP アドレスで置きかえてください.
文字列 y.y.y.y はプロバイダから指示されたゲートウェイ 文字列 y.y.y.y はプロバイダから指示されたゲートウェイ
(接続先となるマシン) の IP アドレスで置きかえてください. (接続先となるマシン) の IP アドレスで置きかえてください.
プロバイダがゲートウェイのアドレスを指示していない場合は,
<tt>10.0.0.2/0</tt> を使用しておいてください.
もし「仮の」アドレスを使用する必要がある場合には,
<ref id="userppp:dynamicIP"
name="動的 IP アドレスによる PPP 接続">に関する指示に従って,
<tt>/etc/ppp/ppp.linkup</tt> にエントリを作成していることを
確認してください.
この行が省略されていると, ppp を <tt>-auto</tt> モードや
<tt>-dynamic</tt> モードで動作させることはできません.
<tag/Line 10:/ この PPP 接続で使用する tun デバイスに関する, <tag/Line 11:/ この PPP 接続で使用する tun デバイスに関する既存のエントリを
既存のルーティングテーブルエントリをすべて削除します. ルーティングテーブルから すべて削除します.
通常, これは必須というわけではありませんが,
クリーンな状態で ppp がスタートできるよう保証しておきます.
<tag/Line 11:/ プロバイダ側の IP アドレスをデフォルトルートに指定します. <tag/Line 12:/ プロバイダのゲートウェイへの経路をデフォルトルートとして
この IP アドレスは常にプロバイダのゲートウェイの 追加します. 特殊文字列 <tt>HISADDR</tt> は, 9 行目で指定された
IP アドレスでなければいけません. ゲートウェイのアドレスで置きかえられます.
<tt>HISADDR</tt> は 9 行目までは初期化されていませんので,
<tag/Line 12:/ こちら側からネゴシエーションを開始するように指示します. その行よりも後でしか使えないことに注意してください.
これは接続相手が自分からネゴシエーションを開始するように
設定されている場合には必要ありませんが, 両側とも自分から
Line Control Protocol (LCP) を開始するように設定されていても
何も問題はありません.
</descrip> </descrip>
<p>二つめのファイルは<tt>/etc/ppp/ppp.linkup</tt>です: <p>静的な IP アドレスを持っていて, 接続が完了する前にルーティングテーブルの
エントリが正しく設定されているのであれば, <tt>ppp.linkup</tt> に
エントリを追加する必要はありません.
しかし, この場合でもエントリを追加して, 接続が完了した時点で
プログラムを呼び出したいことがあるかもしれません.
これについては後ほど sendmail を例として説明します.
<tscreen><verb> <p>これらの設定ファイルのサンプルが<tt>/etc/ppp</tt>ディレクトリに
x.x.x.x: 置かれています.
delete ALL
add 0 0 HISADDR
</verb></tscreen>
<p>先ほどと同じように, プロバイダに割り当てられた IP アドレスで x.x.x.x を <sect2><heading>動的 IP アドレスによる PPP 接続<label id="userppp:dynamicIP">
置きかえます. このファイルは, この PPP 接続に関する既存のルートをすべて </heading>
自動的に削除したり, プロバイダから このマシンへのルートを
デフォルトルートとして追加するのに使われます.
(HISADDR マクロは自動的にプロバイダ側のアドレスに置きかえられます)
<p>プロバイダが静的な IP アドレスを割り当ててくれるなら,
実は<tt>/etc/ppp.linkup</tt>ファイルにエントリを書く必要はありません.
しかし, 繰り返しになりますが, 書いてあっても何の問題もありません.
<p>最後は, 三つめのファイル<tt>/etc/ppp/ppp.secret</tt>です.
このファイルでは ppp サーバへのアクセスを制御するためのパスワードを
設定することができます. 複数の人がこの ppp システムを使うのであれば,
パスワードを設定したいと思う場合があるかもしれません.
<p>これらのファイルのサンプルが<tt>/etc/ppp</tt>ディレクトリに置かれています.
<sect2><heading>動的 IP アドレスによる PPP 接続</heading>
<p>プロバイダが静的な IP アドレスの割り当てをおこなっていない場合, <p>プロバイダが静的な IP アドレスの割り当てをおこなっていない場合,
<tt>ppp</tt>が相手側のホスト (ゲートウェイ) と交渉して, <tt>ppp</tt>が相手側のホスト (ゲートウェイ) と交渉して,
こちら側と相手側のアドレスを決めるように設定することができます. こちら側と相手側のアドレスを決めるように設定することができます.
これは, 起動時には「仮」のアドレスを使っておいて, これは, 起動時には「仮の」アドレスを使っておいて,
接続時に LCP により ppp が IP アドレスを正しく設定できるようにすることで 接続後に IP コンフィグレーション プロトコル (IPCP) を使用して
実現されます. その他の設定は, 静的な IP アドレスを使う場合と同じです. ppp が IP アドレスを正しく設定できるようにすることで実現されます.
<ref id="userppp:staticIP" name="静的 IP アドレスによる PPP 接続">に
<p>静的な IP アドレスを使う場合の<tt>ppp.conf</tt>ファイルの 以下の変更を加える以外は, <tt>ppp.conf</tt> の設定は同じです:
エントリの該当部分を以下のように変更します:
<tscreen><verb> <tscreen><verb>
ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 10 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0
delete ALL
add 0 0 10.0.0.2
</verb></tscreen> </verb></tscreen>
<p>こちら側と相手側, どちらの IP アドレスに対しても, 0 を指定するべきでは 繰り返しますが, 行番号は取り除いておいてください.
「ありません」. もし 0 を指定すると, ppp が正しい初期エントリを これは解説の際に参照する行を示すためにつけたものです.
ルーティングテーブルに設定することができなくなるでしょう. なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です.
<p>``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたいビット数です. <descrip>
<tag/Line 10:/ ``/'' 文字の後ろの数字は, アドレス交渉の際に固定しておきたい
ビットの数です. 場合によっては, もっと適切な IP アドレスを
指定しておきたいこともあるかもしれませんが,
ほとんどの場合には 上の例の通りで問題無いはずです.
相手側の PPP 実装が壊れていて この設定では動かない場合,
最後に <tt>0.0.0.0</tt> を追加すると うまく動くように
なることがあります:
<p><tt>ppp.conf</tt> を読み込んだ時点では, まだ HISADDR マクロが <tscreen><verb>
使えないことにも注意してください. set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
このマクロが使えるのは<tt>ppp.linkup</tt>の中でだけです. </verb></tscreen>
<p>詳細なサンプルについては, このようにすると, ppp は <tt>10.0.0.1</tt> のかわりに
<tt>/etc/ppp/ppp.conf.sample</tt>ファイル中の pmdemand エントリと <tt>0.0.0.0</tt> を使用して交渉を開始します.
<tt>/etc/ppp/ppp.linkup.sample</tt>を参照してください. ここで <tt>set ifaddr</tt> コマンドの最初の引数として
<tt>0.0.0.0/0</tt> を指定してはいけません.
さもないと, <tt>-auto</tt> モードや <tt>-ddial</tt> モードで
動作させる際に 初期経路を設定することができなくなります.
</descrip>
<sect2><heading>かかってきた電話を PPP で受けるには</heading> <p><tt>/etc/ppp/ppp.linkup</tt> にもエントリを作成しておく必要があります.
<tt>ppp.linkup</tt> は接続が確立された後に使用されます. この時点では,
ppp は<bf>実際に</bf>どの IP アドレスを使うべきなのか わかっているはずです.
以下のエントリは存在する仮の経路を削除し, 正しい経路を作成します:
<p>このセクションでは iijppp をサーバとして設定する方法について説明します. <tscreen><verb>
1 provider:
2 delete ALL
3 add 0 0 HISADDR
</verb></tscreen>
<descrip>
<tag/Line 1:/ 接続を確立する際に, ppp は以下のルールに従って
<tt>ppp.linkup</tt> のエントリを検索します:
まず <tt>ppp.conf</tt> で使用されたのと同じラベルを探します.
もし見つからなければ, ゲートウェイの IP アドレスのエントリを
探します. このエントリは 4 オクテットの IP アドレス形式の
ラベルです. それでも まだエントリが見つからなければ,
<tt>MYADDR</tt> エントリを探します.
<tag/Line 2:/ この行は, 使用する tun インターフェースに関する既存の経路を
(ダイレクトルートのエントリを除き) すべて削除するよう
ppp に指示します.
<tag/Line 3:/ この行は <tt>HISADDR</tt> への経路をデフォルトルートとして
追加するように ppp に指示します. <tt>HISADDR</tt> は IPCP で
決定されたゲートウェイの IP アドレスで置きかえられます.
</descrip>
<p>詳細なサンプルについては, <tt>/etc/ppp/ppp.conf.sample</tt> ファイル中の
pmdemand エントリと <tt>/etc/ppp/ppp.linkup.sample</tt> を参照してください.
<sect2><heading>かかってきた電話を ppp で受けるには</heading>
<p>このセクションでは ppp をサーバとして設定する方法について説明します.
<p>かかってきた電話を<tt>ppp</tt>が受けるように設定する場合, <p>かかってきた電話を<tt>ppp</tt>が受けるように設定する場合,
<tt>ppp</tt>接続についてだけパケットをフォワードするようにしたいのか, <tt>PPP</tt>接続についてだけパケットを転送するようにするのか,
すべてのインターフェースについてフォワードするようにしたいのか, すべてのインターフェースについて転送するようにするのか,
それともまったくフォワードをおこないたくないのかを決めなければいけません. それとも一切転送をおこなわないのかを決定しなければいけません.
ppp 接続についてだけフォワードをおこなうためには, PPP 接続についてだけ転送をおこなうためには, <tt>ppp.conf</tt>ファイルに
以下の行を<tt>ppp.conf</tt>ファイルに追加しておきます. 以下の行を追加しておきます.
<tscreen><verb> <tscreen><verb>
enable proxy enable proxy
</verb></tscreen> </verb></tscreen>
すべてのインターフェースについてパケットの転送をおこないたい場合は, すべてのインターフェースについてパケットの転送をおこなう場合には,
以下のオプションを<tt>/etc/rc.conf</tt>に設定してください. (このファイルは <tt>/etc/rc.conf</tt>で以下のオプションを指定してください. (このファイルは
以前のバージョンの FreeBSD では<tt>/etc/sysconfig</tt>と呼ばれていました) 以前のバージョンの FreeBSD では<tt>/etc/sysconfig</tt>と呼ばれていました)
<tscreen><verb> <tscreen><verb>
gateway=YES gateway=YES
</verb></tscreen> </verb></tscreen>
<sect3><heading>どの getty を使おうか?</heading> <sect3><heading>どの getty を使いますか?</heading>
<p>getty を使ってダイアルアップサービスをおこなうための優れた解説が <p>getty でダイアルアップサービスをおこなう場合の優れた解説が <ref id="dialup"
<ref id="dialup" name="FreeBSD でダイアルアップサービスをおこなうための設定"> name="FreeBSD でダイアルアップサービスをおこなうための設定">にあります.
にあります.
<p>getty に代わるものとしては, <p>getty に代わるものとしては,
<url url="http://www.leo.org/~doering/mgetty/index.html" name="mgetty"> <url url="http://www.leo.org/~doering/mgetty/index.html" name="mgetty">
@ -432,18 +498,24 @@
ダイアルアップ回線での使用を意図して設計されています. ダイアルアップ回線での使用を意図して設計されています.
<p>mgetty を使う場合の利点は, mgetty が積極的にモデムと<em>通信する</em> <p>mgetty を使う場合の利点は, mgetty が積極的にモデムと<em>通信する</em>
ということです. つまり, もし<tt>/etc/ttys</tt>でポートを閉じ場合, ということです. つまり, もし<tt>/etc/ttys</tt>でポートを閉じている場合,
モデムは電話をとらないようになります. モデムは電話をとらななります.
<p>最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの <p>最近のバージョンの mgetty (0.99beta 以降) では, PPP ストリームの
自動検出もサポートされています. これにより, クライアント側で 自動検出もサポートされています. これにより, クライアント側で
スクリプトを準備しなくもサーバにアクセスすることができます. スクリプトを準備しなくもサーバにアクセスすることができます.
<p>mgetty の入手方法と正しい設定については, このドキュメントの扱う範囲を <p>mgetty に関する, より詳細な情報については <ref id="userppp:mgetty"
越えています. name="Mgetty と AutoPPP"> を参照してください.
訳者注: 最近の ports および packages には mgetty+sendfax が含まれています.
<sect3><heading>動的 IP ユーザのための PPP シェルの設定</heading> <sect3><heading>ppp の実行許可</heading>
<p>ppp は通常, ID 0 のユーザ (root) として動作しなければいけませんが,
以下で説明するように, ppp を通常のユーザとしてサーバモードで実行させたい
場合には, そのユーザを <tt>/etc/group</tt> の <tt>network</tt> グループに
追加して, ppp を実行する許可を与えておかなければいけません.
<sect3><heading>動的 IP ユーザのための ppp シェルの設定</heading>
<p><tt>/etc/ppp/ppp-shell</tt>という名前で, 以下のような内容のファイルを <p><tt>/etc/ppp/ppp-shell</tt>という名前で, 以下のような内容のファイルを
作成します: 作成します:
@ -465,7 +537,7 @@
</verb></tscreen> </verb></tscreen>
<p>このスクリプトには実行可能属性をつけておきます. <p>このスクリプトには実行可能属性をつけておきます.
次に以下のコマンドを実行し, <tt>ppp-dialup</tt>という名前で 次に, 以下のコマンドを実行し, <tt>ppp-dialup</tt>という名前で
このスクリプトへのリンクを作成します: このスクリプトへのリンクを作成します:
<tscreen><verb> <tscreen><verb>
@ -484,7 +556,7 @@
<p>任意のユーザが読むことのできる, <tt>/home/ppp</tt>ディレクトリを <p>任意のユーザが読むことのできる, <tt>/home/ppp</tt>ディレクトリを
作成します. <tt>/etc/motd</tt>が表示されないようにするため, 作成します. <tt>/etc/motd</tt>が表示されないようにするため,
以下のように大きさが 0 バイトのファイルを このディレクトリの下に このディレクトリには以下のように大きさが 0 バイトのファイルを
作成しておきます. 作成しておきます.
<tscreen><verb> <tscreen><verb>
@ -495,12 +567,12 @@
<sect3><heading>静的 IP ユーザのための PPP シェルの設定</heading> <sect3><heading>静的 IP ユーザのための PPP シェルの設定</heading>
<p>上記と同じように<tt>ppp-shell</tt>ファイルを作成し, <p>上記と同じように<tt>ppp-shell</tt>ファイルを作成し,
静的に IP アドレスを割り当てる それぞれのアカウントごとに 静的な IP アドレスを割り当てるアカウントそれぞれについて
<tt>ppp-shell</tt>へのシンボリックリンクを作成します. <tt>ppp-shell</tt>へのシンボリックリンクを作成します.
<p>例えば, クラス C ネットワークの経路制御を必要とする, <p>例えば, クラス C ネットワークの経路制御を必要とする,
三人のダイアルアップ顧客 fred, sam, mary がいるとすると, 三人のダイアルアップユーザ fred, sam, mary がいるとすると,
以下のコマンドを実行することになるでしょう: 以下のコマンドを実行することになります:
<tscreen><verb> <tscreen><verb>
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
@ -515,7 +587,7 @@
<sect3><heading>動的 IP ユーザのための ppp.conf の設定</heading> <sect3><heading>動的 IP ユーザのための ppp.conf の設定</heading>
<p><tt>/etc/ppp/ppp.conf</tt>ファイルは 大体以下のような内容になるでしょう: <p><tt>/etc/ppp/ppp.conf</tt>ファイルは, 大体以下のような内容になるでしょう:
<tscreen><verb> <tscreen><verb>
default: default:
@ -533,7 +605,7 @@
<p>上の例のように段をつける (インデントする) 必要があることに注意してください. <p>上の例のように段をつける (インデントする) 必要があることに注意してください.
<p><tt>default:</tt> セクションはセッションごとにロードされます. <p><tt>default:</tt> エントリはセッションごとにロードされます.
<tt>/etc/ttys</tt>で有効にしてある各ダイアルアップ回線ごとに一つ, <tt>/etc/ttys</tt>で有効にしてある各ダイアルアップ回線ごとに一つ,
上記の<tt>ttyd0:</tt>のようなエントリを作成します. 上記の<tt>ttyd0:</tt>のようなエントリを作成します.
各行の相手側アドレスとして, それぞれ別の IP アドレスを 各行の相手側アドレスとして, それぞれ別の IP アドレスを
@ -543,7 +615,7 @@
<p>上のサンプルの<tt>/etc/ppp/ppp.conf</tt>の内容に加えて, <p>上のサンプルの<tt>/etc/ppp/ppp.conf</tt>の内容に加えて,
静的に IP を割り当てられたダイアルアップユーザ 静的に IP を割り当てられたダイアルアップユーザ
それぞれのためのセクションを追加する必要があります. それぞれのためのエントリを追加する必要があります.
ここでも fred, sam, mary の例を使うことにしましょう. ここでも fred, sam, mary の例を使うことにしましょう.
<tscreen><verb> <tscreen><verb>
@ -557,9 +629,9 @@
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
</verb></tscreen> </verb></tscreen>
<p>必要であれば, それぞれの静的 IP ユーザのための経路制御情報も <p>必要であれば, それぞれの静的 IP ユーザに対する経路制御情報も
<tt>/etc/ppp/ppp.linkup</tt>ファイルに含めておくべきでしょう. <tt>/etc/ppp/ppp.linkup</tt>ファイルに書いておくべきでしょう.
以下の例ではクライアントの ppp リンクを経由する 以下の例ではクライアントの PPP リンクを経由する,
クラス C の<tt>203.14.101.0</tt>ネットワークへの経路を追加しています. クラス C の<tt>203.14.101.0</tt>ネットワークへの経路を追加しています.
<tscreen><verb> <tscreen><verb>
@ -573,12 +645,13 @@
add 203.14.103.0 netmask 255.255.255.0 HISADDR add 203.14.103.0 netmask 255.255.255.0 HISADDR
</verb></tscreen> </verb></tscreen>
<sect3><heading>mgetty, AutoPPP, マイクロソフト拡張について さらに詳しく</heading> <sect3><heading>mgetty, AutoPPP, マイクロソフト拡張の詳細</heading>
<sect4><heading>Mgetty と AutoPPP</heading> <sect4><heading>Mgetty と AutoPPP<label id="userppp:mgetty">
</heading>
<p>AUTO_PPP オプションつきでコンパイルした mgetty を使えば, mgetty が <p>AUTO_PPP オプションつきでコンパイルした mgetty を使えば, mgetty が
PPP 接続の LCP フェーズを検出して, 自動的に ppp シェルを起動するように PPP 接続の LCP フェーズを検出して, 自動的に PPP シェルを起動するように
設定することができます. 設定することができます.
しかし この場合, デフォルトの login/password シーケンスは発生しないので, しかし この場合, デフォルトの login/password シーケンスは発生しないので,
ユーザの認証は PAP または CHAP を使っておこなう必要があります. ユーザの認証は PAP または CHAP を使っておこなう必要があります.
@ -598,7 +671,7 @@
スクリプトを実行するようになります. スクリプトを実行するようになります.
<p><tt>/etc/ppp/ppp-pap-dialup</tt>という名前で, 以下のような内容のファイルを <p><tt>/etc/ppp/ppp-pap-dialup</tt>という名前で, 以下のような内容のファイルを
作成します (このファイルは実行可能属性をつけておく必要があるでしょう): 作成します (このファイルは実行可能属性をつけておく必要があります):
<tscreen><verb> <tscreen><verb>
#!/bin/sh #!/bin/sh
@ -623,9 +696,9 @@
enable proxy enable proxy
</verb></tscreen> </verb></tscreen>
<p>この方法でログインする各ユーザは, PAP によるユーザ認証をおこなうために <p>この方法でログインする それぞれのユーザは, PAP によるユーザ認証を
<tt>/etc/ppp/ppp.secret</tt>ファイルにユーザ名とパスワードを書いておくか, おこなうために<tt>/etc/ppp/ppp.secret</tt>ファイルにユーザ名とパスワードを
または<tt>/etc/password</tt>ファイルを使うように 書いておくか, または<tt>/etc/password</tt>ファイルを使うように,
<tscreen><verb> <tscreen><verb>
enable passwdauth enable passwdauth
@ -633,7 +706,7 @@
オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. (*) オプションを (/etc/ppp/ppp.conf に) 追加しておく必要があるでしょう. (*)
<p>(*) このオプションは 2.2-961014-SNAP およびそれ以降のシステムか, <p>(*) このオプションは 2.2-961014-SNAP および それ以降のシステムか,
または 2.1.x のシステムにおいて ppp のコードを更新している場合にだけ または 2.1.x のシステムにおいて ppp のコードを更新している場合にだけ
使用可能だということに注意してください. 使用可能だということに注意してください.
(詳細に関しては, 以下のマイクロソフト拡張を参照してください) (詳細に関しては, 以下のマイクロソフト拡張を参照してください)
@ -661,10 +734,98 @@
<p>これにより, クライアントはプライマリとセカンダリのネームサーバアドレス <p>これにより, クライアントはプライマリとセカンダリのネームサーバアドレス
および NetBIOS ネームサーバホストを知ることができます. および NetBIOS ネームサーバホストを知ることができます.
<sect1><heading>システムの最終設定</heading> <sect2><heading>PAP および CHAP による認証<label id="userppp:PAPnCHAP">
</heading>
<p>これで PPP の設定は終りました. <p>いくつかのプロバイダでは、PAP または CHAP のいずれかの認証メカニズムを
しかし PPP が動くようになる前に, もう少し必要なことがあります. 使用して接続時の認証をおこなうようにシステムを設定しています.
この場合, プロバイダは接続の際に <tt>login:</tt> プロンプトを送信せず,
最初から PPP で通信を始めようとするでしょう.
PAP ではパスワードがそのまま送られてしまうため, CHAP に比べると安全性が
低くなりますが, このパスワードはシリアル回線のみを通して送られます.
そのため, クラッカーが「盗み聞き」する余地は多くないので, 通常ここの
セキュリティは問題にはなりません.
<ref id="userppp:staticIP" name="静的 IP アドレスによる PPP 接続">または
<ref id="userppp:dynamicIP" name="動的 IP アドレスによる PPP 接続">の
セクションに戻って, 以下の変更をおこないます:
<tscreen><verb>
7 set login
.....
13 set authname MyUserName
14 set authname MyPassword
</verb></tscreen>
これまでと同様に, 行番号は取り除いておいてください.
これは解説の際に参照する行を示すためにつけたものです.
なお, 少なくともスペース 1 個分の段づけ (インデント) が必要です.
<descrip>
<tag/Line 7:/ PAP または CHAP を使用する場合, 通常 プロバイダはサーバへの
ログインを必要としません. そのため, "set login" 文字列を
無効にしておかなければいけません.
<tag/Line 13:/ この行は PAP/CHAP ユーザ名を指定します. <tt>MyUserName</tt> に
正しい値を入れておく必要があります.
<tag/Line 14:/ この行は PAP/CHAP パスワードを指定します. <tt>MyPassword</tt> に
正しい値を入れておく必要があります.
PAP と CHAP はデフォルトで受け付けられるようになっていますが,
PAP や CHAP を使用するという意思を明示するために,
<tscreen><verb>
15 accept PAP
</verb></tscreen>
または
<tscreen><verb>
15 accept CHAP
</verb></tscreen>
という行を追加しておくのも良いでしょう.
</descrip>
<p><bf>注:</bf>(<tt>set log +command</tt>で) コマンド記録をオンにしていると,
<tt>authkey</tt> も記録されてしまいます. ppp のログファイルの許可モードを
決定する際には, このことに注意しておいてください.
<sect2><heading>動作中の ppp の設定変更</heading>
<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
</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> コマンドを
参照してください.
<p>一旦ソケットの設定が終了したら, スクリプト中で <tt>pppctl(8)</tt> を
使用して, 動作中の ppp を操作することができるでしょう.
<sect1><heading>システムの最終設定<label id="userppp:final">
</heading>
<p>これで ppp の設定は終りました.
しかし ppp を動かす前に, まだ少し必要なことがあります.
それらの設定は, すべて<tt>/etc/rc.conf</tt>ファイルを それらの設定は, すべて<tt>/etc/rc.conf</tt>ファイルを
編集することでおこないます. 編集することでおこないます.
(このファイルは以前には<tt>/etc/sysconfig</tt>と呼ばれていました) (このファイルは以前には<tt>/etc/sysconfig</tt>と呼ばれていました)
@ -677,6 +838,9 @@
hostname=foo.bar.com hostname=foo.bar.com
</verb></tscreen> </verb></tscreen>
<p>もしプロバイダが静的な IP アドレスとホスト名を割り当てているのなら,
ホスト名としてそれを使うのが おそらくベストでしょう.
<p>次に network_interfaces 変数を調べます. 必要に応じて (on demand) <p>次に network_interfaces 変数を調べます. 必要に応じて (on demand)
プロバイダにダイアルするようにシステムを設定したい場合には, プロバイダにダイアルするようにシステムを設定したい場合には,
tun0 デバイスがこのリストに追加されていることを確認しておきます. tun0 デバイスがこのリストに追加されていることを確認しておきます.
@ -697,6 +861,10 @@
このスクリプトはネットワークの設定時に実行され, このスクリプトはネットワークの設定時に実行され,
ppp デーモンを自動モードで立ち上げます. ppp デーモンを自動モードで立ち上げます.
このマシンがもし LAN のゲートウェイであれば,
<tt>-alias</tt> スイッチも使用したいと思うかもしれません.
詳細に関しては, マニュアルページを参照してください.
<p>以下のようにルータプログラムを ``NO'' に設定します. <p>以下のようにルータプログラムを ``NO'' に設定します.
@ -706,8 +874,9 @@
</verb></tscreen> </verb></tscreen>
<tt>routed</tt>は, ppp が作成したデフォルトのルーティングテーブル <tt>routed</tt>は, ppp が作成したデフォルトのルーティングテーブル
エントリを削除してしまう場合がありますので, <tt>routed</tt>デーモンが エントリを削除してしまう場合がありますので,
起動されないようにしておくことが重要です. (これは初期設定の状態です) (初期設定では起動されるようになっている) <tt>routed</tt>デーモンが
起動されないようにしておくことが重要です.
<p>``sendmail_flags'' 行が ``-q'' オプションを含まないように <p>``sendmail_flags'' 行が ``-q'' オプションを含まないように
設定しておいた方がよいでしょう. さもないと, sendmail が 設定しておいた方がよいでしょう. さもないと, sendmail が
@ -718,23 +887,33 @@
sendmail_flags="-bd" sendmail_flags="-bd"
</verb></tscreen> </verb></tscreen>
この結果, PPP リンクを立ち上げた時には いつでも この結果, PPP リンクを立ち上げた時には
以下のコマンドを実行して, キューにたまっているメールを いつでも以下のコマンドを実行して, キューにたまっているメールを
sendmail に送信させる作業が必要になるでしょう. sendmail に送信させる作業が必要になるでしょう.
<tscreen><verb> <tscreen><verb>
# /usr/sbin/sendmail -q # /usr/sbin/sendmail -q
</verb></tscreen> </verb></tscreen>
こうするのが嫌であれば, SMTP トラフィックをブロックするように <p>ppp.linkup 中で <tt>!bg</tt> コマンドを使用することで, これを自動的に
おこなうこともできます:
<tscreen><verb>
1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30m
</verb></tscreen>
<p>こうするのが嫌であれば, SMTP トラフィックをブロックするように
"dfilter" を設定しておくこともできます. "dfilter" を設定しておくこともできます.
詳細についてはサンプルファイルを参照してください. 詳細についてはサンプルファイルを参照してください.
また, <tt>ppp.linkup</tt>ファイルの中で
このコマンドを実行するスクリプトを起動することもできます.
後はマシンをリブートするだけです. <p>後はマシンをリブートするだけです.
<p>リブートが終ったら,
さて, これで
<tscreen><verb> <tscreen><verb>
# ppp # ppp
</verb></tscreen> </verb></tscreen>
@ -760,10 +939,11 @@
<item>カーネルに tun デバイスが組み込まれていることを確認. <item>カーネルに tun デバイスが組み込まれていることを確認.
<item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが <item><tt>/dev</tt>ディレクトリに tunX デバイスファイルが
存在することを確認. 存在することを確認.
<item><tt>/etc/ppp.conf</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
ほとんどのプロバイダでは, <tt>pmdemand</tt> の例で充分でしょう. ほとんどのプロバイダでは, <tt>pmdemand</tt> の例で充分でしょう.
<item><tt>/etc/ppp.linkup</tt>にエントリを作成. <item>動的 IP アドレスを使用するなら, <tt>/etc/ppp/ppp.linkup</tt>に
<item>rc.conf (または sysconfig) ファイルを更新. エントリを作成.
<item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
<item>必要に応じてダイヤル (demand dialing) したいのであれば, <item>必要に応じてダイヤル (demand dialing) したいのであれば,
start_if.tun0 スクリプトを作成. start_if.tun0 スクリプトを作成.
</itemize> </itemize>
@ -776,15 +956,18 @@
<item>(vipw(8) コマンドを使って) /etc/passwd にエントリを作成. <item>(vipw(8) コマンドを使って) /etc/passwd にエントリを作成.
<item>このユーザのホームディレクトリに <item>このユーザのホームディレクトリに
``ppp -direct direct-server'' か何かを実行するプロファイルを作成. ``ppp -direct direct-server'' か何かを実行するプロファイルを作成.
<item><tt>/etc/ppp.conf</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.conf</tt>にエントリを作成.
<tt>direct-server</tt>の例で充分でしょう. <tt>direct-server</tt>の例で充分でしょう.
<item><tt>/etc/ppp.linkup</tt>にエントリを作成. <item><tt>/etc/ppp/ppp.linkup</tt>にエントリを作成.
<item>rc.conf (または sysconfig) ファイルを更新. <item><tt>/etc/rc.conf</tt> (または <tt>sysconfig</tt>) ファイルを更新.
</itemize> </itemize>
<sect1><heading>謝辞</heading> <sect1><heading>謝辞</heading>
<p>批評と提案に感謝します: <p>ハンドブックの このセクションは, 1997 年 9 月 7 日に &a.brian によって
更新されました.
<p>以下の人々による情報提供, 批評そして提案に感謝します:
<p>&a.nik <p>&a.nik
<p>&a.dirkvangulik <p>&a.dirkvangulik