8.4 オプションファイルの使用・ 145 用しようとします。そして、双方が自分のアドレスを互いに宣言します。 通常、このデフォルトで問題は何もありません。マシンがイーサネット上にあって も、同じ IP アドレスをイーサネットと PPP インタフェースの両方で使用できます。 あるいは pppd は別のアドレスを使用できるし、相手に特定のアドレスを使用するよ う要求することさえできます。これらのオプションについては、「 8.7 IP 設定オプ ション」で議論します。 IPCP セットアップフェーズの後、 pppd は、ホストのネットワーク層が PPP 接続 を使うよう準備をします。まず PPP ネットワークインタフェースを二地点間リンク に設定します。第 1 番目のアクテイプな PPP リンクを pppO に、 2 番目は pppl に といった具合に割りあてます。次に、リンクの向う側のホストを示す経路情報をテー プルに加えます。上記の例では、 defaultroute オプションを指定したので、 pppd はデフォルトネットワーク経路を c3po 経由にします注 6 。これによって、ローカルネ ットワーク上にないホストへのデータグラムはすべて c3po に送られます。 pppd が サポートする経路制御方式にはいろいろあります。これは、「 8.8 リンク制御オプシ ョン」で詳しく解説します。 8.4 オプションファイルの使用 pppd はコマンド行引数を解析する前に、デフォルトオプションを得るためにいく つかのファイルを読み込みます。これらのファイルには、有効なコマンド引数は何で も書けますし、それが何行にまたがってもかまいません。ハッシュ記号 ( # ) を付け るとコメントになります。 第 1 のオプションファイルは、 pppd 起動時に必ず読まれる / etc / ppp / options で す。ューザがセキュリティ上問題のあることをしないように、グローバルなデフォル トを設定しておくとよいでしよう。たとえば、このファイルに auth オプションを追 加して pppd が相手からある種の認証 (PAP か CHAP のどちらか ) を必要とするよ うにします。このオプションは、ユーザが変更できないので、認証データベースにな 注 6 何もまだ存在していない場合にだけ、デフォルトネットワーク経路が設定されます。 いシステムとの PPP 接続は不可能になります。
94 ・ 5 章 TCP / 旧ネットワークの設定 は、通常、カーネルが直近の割り込みを処理する前にバケットが入ってくるとき起こ ります。 ifconfig の出力するフラグの値は、コマンド行オプションの名前とだいたい 対応しています。オプションについては、以下で説明します。 以下は、 ifconfig で使われるパラメータとそれに対応するフラグ名のリストです。 また、そのままパラメータとして渡せばその機能がオンになり、頭にダッシュ ( ー ) を付ければその機能をオフにすることができます。 ・ up これはインタフェースが IP 層にアクセスできるようにします。コマンド行に ad- dress が与えられているとき、このオプションは省略可能です。また、一時的に、 down オプションを使用してアクセスできなくなったインタフェースを再び有効にするとき にも使用されます。 ( このオプションは、 UP フラグと RUNNING フラグに対応します ) 。 ・ down これはインタフェースが IP 層にアクセスできないようにします。結果として、そ のインタフェースには IP トラフィックがなくなります。このオプションを使っても、 このインタフェースを使用する経路情報が削除されるわけではないことに注意してく ださい。インタフェースをずっと無効にしたいのであれば、そのインタフェースに対 応した経路情報を削除し、できれば、代替ルートを割り当てるべきです。 ・ netmask mask これは、インタフェースが使用するサプネットマスクを割り当てます。サプネット マスクは 0x を先頭につけた 32 ビットの 16 進数か、または 10 進数のドット区切り 己法で与えます。 ・ pointopoint address このオプションは、 2 台のホストだけの二地点間 IP 接続に使用されます。 このオ プションは、 SLIP や PLIP インタフェースなどの設定に必要です。 ( 二地点間アドレスが設定されたとき、 ifconfig は POINTOPO 工 NT フラグを表 示します ) 。 ・ broadcast address 通常、プロードキャストアドレスは、ネットワーク番号からホスト部分のすべての ビットをオンにすることによって作られます。しかし一部の版の IP ( たとえば、 BSD 一三ロ
8.9 一般的なセキュリティの問題・ 155 など、相談プロセスの動作全体を設定する LCP オプションがあります。このあたり の扱いが完全にわかるまでは、この辺のオプションはそのままにしておきましよう。 最後に、 LCP 工コーメッセージに適用される 2 つのオプションがあります。 PPP は 2 つのメッセージ、エコー要求 (Echo Request) とエコー応答 (Echo Response) を定義しています。 pppd はこの機能を使用して、リンクがまだ動作中であるかどう かをチェックします。 lcp-echo-iterval オプションと、時間を秒で指定することで これを有効にできます。指定したインターバルの間にフレームをリモートホストから 受信しないとき、 pppd は、エコー要求を発り、相手側からのエコー応答を待ちます。 相手側が応答しないならば、一定数のリクエストを送信後にリンクを切断します。 の数は、 lcp ー echo ー failure オプションを使用して設定できます。デフォルトでは、 この機能はすべて無効です。 8.9 一般的なセキュリティの問題 PPP デーモンの設定を誤ると、とんでもないセキュリティ上の盲点をつくり出す 可能性があります。それは、誰彼かまわずィーサネットにマシンを接続させてしまう ( これはきわめてよくないことです ) のに匹敵するくらいの大問題になりかねません。 この節では、 PPP の設定を安全にするためのいくつかの方法について議論します。 pppd のひとつの問題は、ネットワークデバイスとルーティングテープル を設定するのに root 権限が必要であることです。通常は、 pppd を setuid root して対応するでしよう。しかし、 pppd でユーザは種々のセキュリティ関連オプ ションを設定できます。これらのオプションを操作してユーザが行えるすべての攻撃 から自衛するために、「 8.4 オプションファイルの使用」のサンプルファイルで示し いくつかのデフォルト値をグローバルファイル /etc/ppp/options に設定 たように、 しておくとよいでしよう。このうち認証オプションなどは、ユーザが変更できません。 ですから、小細工に対するそれなりの保護となります。 もちろん、 PPP で通信する相手のシステムからも自分を保護しなければいけませ ん。ほかの誰かのふりをするホストから自衛するために、相手側から何らかの認証を 必ず要求すべきです。さらに、ほかのホストに勝手な IP アドレスを選ばせてはいけ ません。選択範囲はせいぜい 2 、 3 程度に制限すべきです。以下の節では、これらの 0
150 ・ 8 章ポイントトウ・ポイントプロトコル ( PPP ) ッセージを、 2 はすべての受信 HDLC フレームの内容を出力します。 4 は、すべての 送信 HDLC フレームの内容を出力します。カーネルのデバッグメッセージを得るに は、 /proc/kmsg ファイルを読み込む syslogd デーモン、または klogd デーモンを 走らせなければいけません。どちらもカーネルのデバッグを syslog の kernel 機能 に送ります。 8.7 旧設定オプション IPCP は、リンク設定時にいくつかの IP パラメータを相談するのに使用されます。 通常、どのパラメータについて何の値に変えたいかを示す、 IPCP 設定要求 (Configu- ration Request) バケットを両者が送ります。受け取りしだい、相手方は順番に各オ プションを調べ、要求を承認するか拒否するかします。 pppd は、どの IPCP オプションを相談するか制御することができます。以下で解 説するさまざまなコマンド行オプションで、これを調整します。 8.7.1 IP アドレスの選択 上記の例では、 pppd で c3po にダイアルアップし、 IP リンクを確立しました。リ ンクのどちらかの側に特定の IP アドレスを割りつけるようなことは何もしませんで した。その代わり、ローカル IP アドレスとして vlager のアドレスを選択し、 c3P0 には自分のアドレスを使ってもらいました。しかし、どちらかの側で使われるアドレ スを指定できると便利なこともあります。 pppd はこのためのオプションをいくつか サポートしています。 一般に、特定のアドレスを指定するには、次のオプションを pppd に付けます。 あ 0 〃 / 〃 d の - マ夜加〃 d の - 10Ca1 addr と remote addr は、ドット区切り記法かホスト名のいず れかで指定します注 8 。 pppd は、このオプションのコロンの前のアドレス pppd(8) 注 8 このオプションでホスト名を使用すると、 CHAP 認証の際に影響が出ます。本章の CHAP の 節を参照してください。
3.2 カーネルの設定・ 53 TCP/IP networking (CONFIG INET) Cy] * Networking options なネットワークオプションに関する質問が続きます。 ットワークサポートを必要とするかどうかを尋ねてきます。そのあとには、 が多少変更されました。次に、一般的なオプション設定のセクションで、一般的なネ Linux 1.1.14 以降では、 IPX のアルフアサポートが追加されたために、設定手順 3.2.2 Linux 1 . 1 . 14 以降のカーネルのオプション さまざま 効にしても、一般の UNIX マシンと通信できますが、遅い回線を使う場合などには TCP とは、 DOS べースの PC 用の製品版 TCP / IP のことです。このオプションを有 このオプションは、いくつかの版の PC/TCP の非互換性を回避する機能です。 PC/ PC/TCP compatibility mode (CONFIG_INET_PCTCP) Cn] * ()t is safe tO leave these untouched) 内部のマシンは外部の攻撃から保護されます。 トサービスを利用できます。外部からはファイアウォールを超えて接続できないので、 使用されることが多いです。ューザはファイアウォールにログインしてインターネッ 安全性を保持しながら、ユーザがインターネットにアクセスできるようにするために ィックを転送するものではありません。ファイアウォールは、内側のネットワークの ォールは 2 つ以上のネットワークに接続するホストですが、ネットワーク間のトラフ となるホストを設定するために、あえて無効にする場合も考えられます。ファイアウ えずこれを有効にしておくこともできますが、いわゆるファイアウォール (firewall) の機能をもたせたいならば、このオプションを有効にしなければなりません。とりあ ィーサネット間、またはイーサネットと SLIP リンク間などのゲートウェイとして IP forwarding/gatewaying (CONFIG_IP FORWARD) Cn] しかし、 n と答えても、 IPX サポートを持つカーネルを設定することができます。 TCP/IP ネットワークを使用するには、この質問に y と答えなければなりません。
96 ・ 5 章 TCP / 旧ネットワークの設定 ・—arp このインタフェースでは ARP を使わないようにします。 ・ prormsc インタフェースを無差別モードにします。プロードキャストネットワーク上でこの オプションを使うと、ほかのホストに対するバケットであっても、このインタフェー スはすべてのバケットを受け取るようになります。これを使うと、バケットフィルタ を使用してネットワークトラフィックの分析が可能になります。いわゆるイーサネッ ト解析 (Ethernet sno 叩 ing) といわれるものです。これは、検出が困難なネットワ ークの問題をみつけ出すよい技法です。 一方で、このオプションを使うとパスワード情報を求めてネットワーク上のトラフ ィックを調べるなど、いろいろ悪いこともできるようになります。この種の攻撃から 守るひとつの方法は、イーサネットに接続させる人間をちゃんと選ぶことです。もう ひとつのオプションは、 Kerberos や SRA ログインなどの安全な認証プロトコルを 使用することです注 13 。 ( このオプションは PROMISC フラグに対応しています ) 。 ・—promisc 無差別モードをオフにします。 ・ allmulti マルチキャストアドレスは、同じサプネット上に必ずしもないホストグループへの プロードキャストのようなものです。 Linux カーネルはまだマルチキャストアドレス をサポートしていません。 ( このオプションはフラグ ALLMULTI に対応しています ) 。 注 13 SRA は、 ftp.tamu.edu の /pub/sec/TAMU から入手することができます。 マルチキャストアドレスをオフにします。 ・ -allmulti
162 ・ 8 章ポイントトウ・ポイントプロトコル ( PPP ) インを制御するようにします。モデムで pppd を使用するときは、必ずこのオプショ ンを付けるべきです。 crtscts オプションはハードウェアハンドシェイクを設定しま す。 これらのオプションのほかに たとえば、 auth を pppd コマンド行やグローバル オプションファイルに指定して、何らかの認証を強制したほうがいいでしよう。また、 マニュアルページを見ると、個々の認証プロトコルをオン / オフするための細かいオ プションについて説明があります。
6. 1 をコメントにします。以下のオプションが利用可能です。 ・ 0 て de て リゾルバライプラリ・ 107 これはどの順番でリゾルバサービスを試みるかを決定します。有効なオプションは、 ネームサーバに問合せを行う bind 、 /etc/hosts を参照する hosts 、および NIS 参 照のための nis です。それぞれ単独でも組み合わせても指定できます。行に書かれた 順番で、それぞれのサービスが試みられます。 ・ multi オプションとして on または off をとります。これは、 /etc/hosts に書かれたホ ストが複数の IP アドレスを持てるかどうかを指定します。通常、複数の IP を持っ ことを「マルチホーム」といいます。このフラグは DNS や NIS の問い合わせには 関係がありません。 ・れ 0SP00 { 前章で説明したように、 DNS を使えば、 in-addr. arpa ドメインを使用して IP ア ドレスに属するホスト名をみつけることができます。しかしネームサーバが誤ったホ スト名を与える場合があり、これは、「スプーフ行為」 (spoofing) と呼ばれます。 これに対する自衛策として、 IP アドレスが得られたホスト名と本当に対応するかど うかをチェックするようにリゾルバを設定できます。対応していなければ、ネームは はねられて、エラーが返されます。この機能は、 nospoof を on に設定することによ って有効となります。 ・ alert このオプションは引数として on または off をとります。オンにすると、 syslog 機能を利用してリゾルバがすべてのスプーフ行為に関連した記録をとるようになりま す。 ・ trim このオプションは引数としてドメイン名をとります。このドメイン名は、参照前に す。 trim オプションは複数書けるので、複数のローカルドメインのホストにも対処 は、ローカルドメイン名が取り除かれ、 /etc/hosts の参照がうまくいくようにしま ローカルドメイン名付きのホスト名参照で ホスト名から取り除かれます。これは、ローカルドメインなしのホスト名を指定して おきたい hosts 工ントリーで使えます。
3.2 カーネルの設定・ 5 1 について解説します。 make config を実行すると、まず一般的な設定について質問されます。たとえば、 カーネルに数値演算ェミュレーションが必要かどうかなどです。これらの質問の中に は、 TCP/IP ネットワークをサポートするかどうかを尋ねるものがあります。カーネ ルにネットワーク機能をもたせるために、 y と答えてください。 3.2.1 Linux 1 . 0 以降のカーネルオプション 一般的なオプションの設定がすんだら、 SCSI ドライバなどのさまざまな機能の設 定に進むことになります。以下の質問リストはネットワークサポートに関するもので す。設定オプションは開発中であるために流動的です。カーネルのバージョン 1.0 と 1.1 の多くで提供される典型的なオプションのリストは、次のようなものです。 * Network device support Network device support? (CONFIG_ETHERCARDS) Cy] 括弧内に表示されるマクロ名にはまどわされずに、イーサネットや SLIP 、 PPP な どのどんなタイプのネットワークデバイスを使用したいと考えていても、この質問に は y と答えてください。この質問に y と答えると、イーサネット型のデバイスをサ ポートする機能が自動的に有効となります。ほかのタイプのネットワークドライバの サポートについては、それぞれ個々に有効にしなければなりません。 SLIP (serial line) support? (CONFIG SLIP) Cy] SLIP compressed headers ()L COMPRESSED) Cy] PPP (point-to-point) support (CONFIG PPP) Cy] PLIP (parallel port) support (CONFIG PLIP) Cn] これらの質問は、 Linux でサポートされるさまざまなリンク層プロトコルに関する ものでの。 SLIP では、シリアルラインを通して IP データグラムを流すことができ ます。 TCP/IP ヘッダを 3 バイト程度に圧縮する技法を使用する CSLIP では、ヘッ ダの圧縮オプションがサポートされます。このカーネルオプションは CSLIP を自動 的に付加するわけではなく、カーネルに対して必要な機能を提供するだけであること に注意してください。
146 ・ 8 章ポイント・トウ・ポイントプロトコル ( PPP ) もうひとつのオプションファイルは、ユーザのホームディレクトリの . ppprc です。 このファイルは /etc/ppp/options の後に読み込まれます。このファイルには、各ユ ーザのデフォルトのオプションセットを指定します。 /etc/PPP/options の例は、次のようなものです。 # Global options for pppd running on vlager.vbrew.com auth usehostname lock # require authentication # use 10Ca1 hostname for CHAP # use UUCP-style device locking domain vbrew.com # our domain name 最初の 2 つのオプションは認証に関するもので、後ほど説明します。 lock キーワ ードを使うと、 pppd はデバイスをロックするのに標準の UUCP 手法を使います。 この方法では、シリアルデバイス /dev/cua3 などをアクセスする各プロセスが UUCP スプールディレクトリに LCK.. cua3 という名前のロックファイルを作り、デ バイスが使用中であることを示します。これは、 minicom や uucico などのほかのプ ログラムが PPP が使用しているシリアルデバイスをオープンするのを防ぐために必 要です。 グローバルな設定ファイルにこれらのオプションを用意する理由は、上記のオプシ ョンなどは変更できないようになっているので、ある程度のセキュリティを提供して くれるということです。しかし、いくつかのオプションはあとで変更できることに注 意してください。そのような例のひとつに connect 文字列があります。 8.5 chat によるダイアル 上記の例で不便だなと思えるのは、 pppd を起動する前に、手作業で接 続を確立しなければならなかったということです。 dip とは違い、 pppd 文献目録〔 4 〕 にはリモートシステムにダイアルしてログインするためのスクリプト言語 がありません。外部プログラムやシェルスクリプトを利用します。実行するコマンド は、 pppd にコマンド行の connect オプションで渡すことができます。 pppd は、コ マンドの標準入出力をシリアルラインにリダイレクトします。 グラムが expect で、 Don Libes 氏によって書かれました。 このために有益なプロ これは TcI べースの非