Linux IP Masquerade mini HOWTO Ambrose Au, ambrose@writeme.com; David Ranch, dranch@trin- net.net v1.50, 7 February 1999 水原 文、mizuhara@acm.org この文書では、Linux ホストで IP マスカレードを行なう方法について説明し ます。 IP マスカレードを使えば、IP アドレスがインターネットに登録され ていないコンピュータでも、Linux マシンを介してインターネットに接続でき るようになります。 ______________________________________________________________________ 目次 1. はじめに 1.1 はじめに 1.2 序文、フィードバックとクレジット 1.3 Copyright & Disclaimer 2. 必要となる知識 2.1 IP マスカレードとは 2.2 現在の状況 2.3 IP マスカレードが有用な場合 2.4 IP マスカレードが必要ない場合 2.5 どのようにして IP マスカレードは動作するか 2.6 IP マスカレードを Linux 2.2.x で使うための必要条件 2.7 IP マスカレードを Linux 2.0.x で使うための必要条件 3. IP マスカレードの設定 3.1 IP マスカレードを組み込んだカーネルのコンパイル 3.1.1 Linux カーネル 2.2.x 3.1.2 Linux カーネル 2.0.x 3.2 プライベートネットワーク IP アドレスの割当 3.3 クライアントマシンの設定 3.3.1 Windows 95 の設定 3.3.2 Windows for Workgroup 3.11 の設定 3.3.3 Windows NT の設定 3.3.4 UNIX ベースのシステムの設定 3.3.5 NCSA Telnet パッケージを使用した DOS の設定 3.3.6 MacTCP の動作している MacOS ベースのシステム 3.3.7 Open Transport の動作している MacOS ベースのシステムの設定 3.3.8 DNS を使用した Novell ネットワークの設定 3.3.9 OS/2 Warp の設定 3.3.10 それ以外のシステムの設定 3.4 IP フォワーディングポリシーの設定 3.4.1 Linux カーネル 2.2.x 3.4.2 Linux カーネル 2.0.x 3.5 IP マスカレードをテストする 4. その他の IP マスカレードの問題とソフトウェアサポート 4.1 IP マスカレードの問題 4.2 外部から到来するサービスの受付 4.3 サポートされているクライアントソフトウェアと設定メモ 4.3.1 動作するクライアント 4.3.2 動作しないクライアント 4.3.3 クライアントとしてテストされたプラットフォーム/OS 4.4 IP ファイヤウォールの管理 (ipfwadm) 4.5 IP ファイヤウォールチェーン (ipchains) 4.6 IP マスカレードとデマンドダイヤルアップ 4.7 IPautofw パケットフォワーダ 4.8 CU-SeeMe and Linux IP-Masquerade Teeny How-To 4.8.1 はじめに 4.8.2 動かしてみる 4.8.3 制限事項/警告 4.8.3.1 パスワードによって保護されたリフレクタ 4.8.3.2 リフレクタを動かす 4.8.3.3 複数の CU-SeeMe ユーザ 4.8.3.4 CU-SeeMe の設定に関するヘルプ 4.9 その他のツール 5. よくある質問 (FAQ) 5.1 IP マスカレードは、動的に割り当てられた IP でもちゃんと動きますか? 5.2 ケーブルモデムや DSL、衛星リンクなどでインターネットに接続し、IP マスカレードを使うことができますか? 5.3 IP マスカレードでは、どんなアプリケーションがサポートされていますか? 5.4 Redhat、Debian、Slackware などで IP マスカレードを動かすにはどうすればいいのでしょう? 5.5 カーネルを 2.2.x にアップグレードしたら、IP マスカレードが動かなくなりました。なぜでしょう? 5.6 カーネルを 2.0.30 (あるいはそれ以降) にアップグレードしたら、IP マスカレードが動かなくなりました。なぜでしょう? 5.7 IP マスカレードが動きません! Windows プラットフォームでは同じようなことはできないのでしょうか? 5.8 設定をすべてチェックしましたが、それでもまだ IP マスカレードが動きません。どうすればいいでしょうか? 5.9 IP マスカレードメーリングリストに参加するにはどうすればいいのですか? 5.10 IP マスカレードの開発に協力したいのですが、どうすればいいでしょう? 5.11 もっと IP マスカレードに関する情報が欲しいのですが、どこで得られるでしょう? 5.12 この HOWTO を別の言語に翻訳したいのですが、どうすればいいでしょう? 5.13 この HOWTO の内容は古いですね、ちゃんと更新していますか? …に関する情報を追加してもらえますか? この HOWTO を改善する予定はありますか? 5.14 IP マスカレードが動きました。素晴らしい! 感謝の気持ちをどうやって示せばいいですか? 6. 各種の情報 6.1 有用な情報限 6.2 Linux IP Masquerade Resource 6.3 謝辞 6.4 参考文献 ______________________________________________________________________ 1. はじめに 1.1. はじめに この文書では、Linux ホストで IP マスカレードを行なう方法について説明し ます。 IP マスカレードを使えば、IP アドレスがインターネットに登録され ていないコンピュータでも、Linux マシンを介してインターネットに接続でき るようになります。これらのマシンと Linux ホストは、イーサネット、ある いはダイヤルアップ ppp リンクなど、いろいろな形態で接続することが可能 ですが、この文書ではもっとも一般的なイーサネット接続について主に説明し ます。 この文書は安定版カーネル 2.2.x および 2.0.x のユーザー向けに 書かれています。1.2.x などの古いバージョンのカーネルは取り 扱っていません。 1.2. 序文、フィードバックとクレジット 新しいユーザーにとって、最新の(つまり 2.x の)カーネルで IP マスカレー ドを設定することは、かなりやっかいなことです。 FAQ やメーリングリスト にも、この点を専門に解説した文書はありません。また、メーリングリストに は、そのような HOWTO を求める声が何度か寄せられていました。そこで私 は、新しいユーザーのための手がかりとして、またもっと知識のあるユーザー に文書を書いてもらうための叩き台として、この文書を書くことを決心したの です。この文書の出来があまりよくないと思われたら、遠慮なく私にそう言っ てください。改善していきたいと思います。 この文書は、Ken Eves 氏による FAQ と、IP マスカレードメーリングリスト に流れたたくさんの有益なメッセージに多くを負っています。また私が IP マ スカレードを設定し、最終的にはこの文書を書くきっかけとなったメッセージ をメーリングリストで送ってくれた Matthew Driver 氏には、特別な感謝の意 を表したいと思います。 情報が間違っていたり、抜け落ちている場合には、遠慮なくメールを ambrose@writeme.com および dranch@trinnet.net に送ってください。あなた の貴重なフィードバックは、きっとこの HOWTO に反映されます! 訳注: 日本語訳に関するコメントは、訳者 mizuhara@acm.org に送ってくださ い。 この HOWTO は、できるだけ短時間で IP マスカレードを使えるようにするた めの簡単なガイドとして書かれたものです。私はテクニカルライターではあり ませんから、この文書中の情報は一般的でなかったり、客観性に欠けているこ ともあるでしょう。最新のニュースや情報は、我々がメンテナンスしている IP Masquerade Resource ウェブページにありま す。 IP マスカレードに関する技術的な質問がある場合には、私にメールを送 らずに IP マスカレードメーリングリストに参加してください。私の時間は限 られていますし、IP マスカレードの開発者たちの方がより適切に質問に答え ることができるでしょう。 この文書の最新バージョンは、以下の IP Masquerade Resource にあります。ここには、HTML とポストスクリプト のバージョンもあります。 o http://ipmasq.cjb.net/ o http://ipmasq2.cjb.net/ o 利用可能なミラーサイトに関しては、 IP Masquerade Resource Mirror Sites Listing を参照して ください。 1.3. Copyright & Disclaimer 訳注: この部分は原文をそのまま示します。 This document is copyright(c) 1999 Ambrose Au, and it's a free document. You can redistribute it under the terms of the GNU General Public License. The information and other contents in this document are to the best of my knowledge. However, IP Masquerade is experimental, and there is chance that I make mistakes as well; so you should determine if you want to follow the information in this document. Nobody is responsible for any damage on your computers and any other losses by using the information on this document. i.e. THE AUTHOR AND MAINTAINERS ARE NOT RESPONSIBLE FOR ANY DAM- AGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION IN THIS DOCUMENT. 2. 必要となる知識 2.1. IP マスカレードとは IP マスカレードとは、Linux のネットワーキング機能のひとつです。 IP マ スカレード機能を持った Linux ホストがインターネットに接続されていれ ば、そのホストに(同一 LAN 上で、あるいはモデムによって)接続しているコ ンピュータが公式に割り当てられた IP アドレスを持っていなくても、インタ ーネットを利用することができるのです。 これによって、一群のマシンがゲートウェイシステムの背後に隠れて、インタ ーネットにアクセスすることができるようになります。インターネットに接続 しているのはゲートウェイだけとしか見えません。適切に設定されたマスカレ ードシステムのセキュリティを破ることは、良いパケットフィルタベースの ファイヤウォールを破ることよりもかなり難しいはずです (いずれにもバグが ないと仮定した場合)。 2.2. 現在の状況 IP マスカレードは何年もの間使われ続けており、Linux カーネルの 2.2.x へ の進化にともなって成熟を続けています。 1.3.x 以降のカーネルには、すで にサポートが組み込まれています。多くの個人あるいはビジネスユーザーが IP マスカレードを使っており、満足すべき結果が得られています。 Web ページの閲覧や telnet 接続は、IP マスカレード上でうまく動作するこ とが報告されています。FTP や IRC、それに Real Audio の再生も、モジュー ルをロードすることによって可能です。 True Speech や Internet Wave な ど、その他のネットワークストリーミングオーディオも動きます。テレビ会議 ソフトウェアを試してみたメーリングリストのユーザーもいます。今では ping も動いています。新しい ICMP パッチが必要です。 サポートされているソフトウェアについては、セクション 4.3 を参照してく ださい。 IP マスカレードは、各種の OS やプラットフォームの「クライアントマシ ン」との組合せで良好に動作します。 Unix、Windows 95、Windows NT、Windows Workgroup (TCP/IP パッケージが必要)、 OS/2、Mac TCP の載っ たマッキントッシュシステム、MAC Open Transport、 NCSA Telnet パッケー ジの載った DOS、VAX、Linux の載った Alpha、それに AmiTCP または AS225 スタックの載った Amiga でも動作が確認されています。このリストはまだま だ続きます。要するに TCP/IP を話す OS プラットフォームであれば、IP マ スカレードと一緒に使えるはずなのです。 2.3. IP マスカレードが有用な場合 o インターネットに接続された Linux ホストがあり、 o その Linux マシンにローカルサブネット上で TCP/IP 接続されたコンピュ ータを持っているか、 o Linux ホストにモデムが接続されていて、PPP あるいは SLIP サーバーと して他のコンピュータに接続しており、 o それらクライアントマシンが公式な IP アドレスを割り当てられていない 場合。 (これらのマシンのことを、これ以降クライアントマシンと呼ぶこ とにします) o そしてもちろん、余分なお金を使わずに :) それらのクライアントマシン からインターネットを利用したい場合。 2.4. IP マスカレードが必要ない場合 o インターネットに接続されているマシンがスタンドアロンの Linux ホスト である場合、IP マスカレードを動かすことは無意味です。あるいは、 o クライアントマシンについてもすでに公式な IP アドレスを割り当ててい る場合、IP マスカレードは必要ありません。 o そしてもちろん、「ただ乗り」するという考えが好きではない場合。 2.5. どのようにして IP マスカレードは動作するか Ken Eves 氏の IP マスカレード FAQ から引用します。 これはもっとも簡単な構成図です。 SLIP/PPP +------------+ +-------------+ to provider | Linux | SLIP/PPP | Anybox | <---------- modem1| |modem2 ----------- modem | | 111.222.333.444 | | 192.168.1.100 | | +------------+ +-------------+ 上の図で、IP マスカレードが組み込まれて動作している Linux マシンは、 modem1 によって SLIP または PPP 経由でインターネットに接続されています。 このマシンには 111.222.333.444 という IP アドレスが割り当てられています。 また、modem2 からこのマシンにログインして、SLIP または PPP 接続が開始 できるように設定されています。 二つめのシステム(Linux が動いている必要はありません)は、Linux マシンに 電話をかけ、SLIP または PPP 接続を開始します。このマシンはインターネット 上に割り当てられた IP アドレスをもっていないため、192.168.1.100 という IP アドレスを使います(下記参照)。 IP マスカレードとルーティングの設定が適切であれば、マシン Anybox は インターネットに本当に接続されているのと同じように振舞うことができます (いくつかの例外はありますが)。 Pauline Middelink 氏からの引用: Linux マシンを ANYBOX のゲートウェイとして設定しなければならないことを 書き忘れないでください。これができない場合には、Linux マシンはすべての ルーティングされたアドレスについて代理 arp をしなければなりませんが、 代理 arp の設定はこの文書の範囲外です。 次にあげるのは comp.os.linux.networking からの抜粋で、上の例に合わせて 名前を書き換えたものです。 o ANYBOX に Linux マシンがゲートウェイだと教えておきます。 o ANYBOX から Linux マシンへパケットが届いた時、新しいポート番号が 割り当てられ、パケットヘッダの IP アドレスが Linux マシンのアドレスに 書き換えられます。元のポート番号とアドレスは別に保存されます。 変更されたパケットは、SLIP または PPP インターフェースを介して インターネットへ送られます。 o パケットがインターネットから Linux マシンへ届いた時、ポート番号が 上で割り当てたものであった場合には、元のポート番号と IP アドレスを パケットヘッダに書き戻し、パケットは ANYBOX に送られます。 o パケットを送るホストは、全く違いに気付きません。 IP マスカレードの例 典型的な例を下図に示します。 +----------+ | | Ethernet | abox |:::::: | |2 :192.168.1.x +----------+ : : +----------+ PPP +----------+ : 1| Linux | link | | ::::| masq-gate|:::::::::// Internet | bbox |:::::: | | | |3 : +----------+ +----------+ : : +----------+ : | | : | cbox |:::::: | |4 +----------+ <-Internal Network-> この例では、4台のコンピュータシステムが接続されています (おそらくその 他に、図のもっと右側にインターネットへの IP コネクションを提供するホス トが、そしてさらにその右側には情報を交換すべきインターネット上のホスト が存在するのでしょう)。 Linux システム masq-gate は IP マスカレードを 行なうゲートウェイで、マシン abox、bbox および cbox から構成される内部 ネットワークからインターネットへの接続を行ないます。内部ネットワークは RFC1918 によって割り当てられたプライベートネットワークアドレスの一つ (この例では 192.168.1.0) を使っており、masq-gate は 192.168.1.1、その 他のホストは図示のアドレスを持っています。 3台のマシン abox、bbox およ び cbox (ところで、これらのマシンは、Windows 95、Macintosh MacTCP ある いは別の Linux マシンなど、IP を話すものであれば、どんなオペレーティン グシステムが走っていても構いません) は、インターネット上のマシンに接続 することができますが、その際マスカレードを行なうシステム masq-gate は、すべてのコネクションが masq-get から発しているかのように変換し、さ らにマスカレードされたコネクションへ戻ってくるデータが中継されて発信元 のシステムに戻ってくるように処理するのです。内部ネットワーク上のシステ ムからはインターネットへの直接経路があるように見え、データがマスカレー ドされていることは意識しません。 2.6. IP マスカレードを Linux 2.2.x で使うための必要条件 ** 最新の情報については、IP Masquerade Resource を参照してください。** o カーネル 2.2.x のソース。http://www.kernel.org/ から入手可能です。 (RedHat 5.2 - これはカーネル 2.0.36ですが - のような最近の Linux ディストリビューションの多くは、すべての IP マスカレードカーネルオ プションを組み込んでコンパイルされたモジュラーカーネルを持っていま す。そのような場合には、再コンパイルの必要はありません。カーネルを アップグレードする際に必要なことは、この HOWTO の後の方に書いてあり ます) o ローダブルカーネルモジュール。2.1.121 あるいはそれ以降が望ましい。 o 正しく設定された TCP/IP ネットワーク 設定に関しては Linux NET-3 HOWTO および Network Administrator's Guide を参照してください。 また、Trinity OS Doc は Linux ネットワーキングの総合的なガイドです。これも参照すると良いでしょ う。 o Linux ホストからインターネットへの接続 Linux ISP Hookup HOWTO 、 Linux PPP HOWTO 、 Linux DHCP mini-HOWTO や Linux Cable Modem mini-HOWTO などに取り 扱われています。 o IP Chains 1.3.8 あるいはそれ以降。 http://www.rustcorp.com/linux/ipchains/ から入手可能です。 バージョンの必要条件については、 Linux IP Firewalling Chains page に詳しい情報があります。 o その他のオプションについては、Linux IP Masquerade Resource を参照してください。 2.7. IP マスカレードを Linux 2.0.x で使うための必要条件 ** 最新の情報については、IP Masquerade Resource を参照してください。** o カーネル 2.0.x のソース。http://www.kernel.org/ から入手可能。 (RedHat 5.2 のような最近の Linux ディストリビューションの多くは、す べての IP マスカレードカーネルオプションを組み込んでコンパイルされ たモジュラーカーネルを持っています。そのような場合には、再コンパイ ルの必要はありません。カーネルをアップグレードする際に必要なこと は、この HOWTO の後の方に書いてあります) o カーネルモジュール、2.0.0 あるいはそれ以降が望ましい。 http://www.pi.se/blox/modules/modules-2.0.0.tar.gz から入手可能。 (modules-1.3.57 が最低限必要です) o 正しく設定された TCP/IP ネットワーク 設定に関しては Linux NET-3 HOWTO および Network Administrator's Guide を参照してください。 また、Trinity OS Doc は Linux ネットワーキングの総合的なガイドです。これも参照すると良いでしょ う。 o Linux ホストからインターネットへの接続 Linux ISP Hookup HOWTO 、 Linux PPP HOWTO 、 Linux DHCP mini-HOWTO や Linux Cable Modem mini-HOWTO などに取り 扱われています。 o Ipfwadm 2.3 あるいはそれ以降。 ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz から入手可 能。 バージョンの必要条件については、Linux IPFWADM page に詳しい情報があります。 o 必要に応じて、追加機能を使用可能にするため IP マスカレードパッチを 当てることができます。より詳しい情報は、IP Masquerade Resources を参照してください (これらのパッチはカーネ ル 2.0.x すべてに適用可能です)。 3. IP マスカレードの設定 プライベートネットワーク上に重要な情報がある場合には、IP マ スカレードを使う前に慎重に検討してください。IP マスカレード はあなたがインターネットへ出てゆくゲートウェイともなります が、逆に外側の世界にいる誰かがあなたのネットワークに侵入する ゲートウェイともなるのです。 3.1. IP マスカレードを組み込んだカーネルのコンパイル お使いの Linux ディストリビューションが、下記の必要な機能とモジュール を組み込んでコンパイルされている (大部分のモジュラーカーネルには必要な ものはすべて含まれています) ならば、カーネルの再コンパイルは必要ありま せん。その場合でも、このセクションには役立つ情報が含まれていますので、 ぜひお読みになることをお勧めします。 3.1.1. Linux カーネル 2.2.x o まず最初に、カーネルのソースが必要です。 o カーネルをコンパイルするのがはじめてでも、恐がらないでください。カ ーネルのコンパイルは比較的簡単ですし、Linux Kernel HOWTO などに詳しい説 明があります。 o 次のコマンドを使って、カーネルのソースを /usr/src/ に展開しま す。tar xvzf linux-2.2.x.tar.gz -C /usr/src、ここで x は 2.2 以降の パッチレベルです。 (linux というディレクトリまたはシンボリックリンクがあることを確認し てください) 訳注: 例えばカーネルバージョン 2.2.6 の場合は、 tar xvzf linux-2.2.6.tar.gz -C /usr/src とします。tar の引数の x はカーネルのバージョンとは関係なく、そのままです。 o 適当なパッチを当てます。新しいパッチが続々と発行されているので、詳 細はここでは述べません。最新の情報については、IP Masquerade Resources を参照してください。 o カーネルをコンパイルするためのこれ以降の手順は、Kernel HOWTO やカー ネルソースディレクトリの README ファイルを参照してください。 o 以下のオプションを組み込んでコンパイルする必要があります。 以下の質問には YES と答えてください。 * Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL - これによって実験段階の IP マスカレードのコードを選択してカーネルに 組み込むことが可能になります。 * Enable loadable module support CONFIG_MODULES - ip_masq_ftp.o のような IP マスカレードモジュールをロードできるように なります。 * Networking support CONFIG_NET * Network firewalls CONFIG_FIREWALL * TCP/IP networking CONFIG_INET * IP: forwarding/gatewaying CONFIG_IP_FORWARD * IP: firewalling CONFIG_IP_FIREWALL * IP: masquerading CONFIG_IP_MASQUERADE * IP: ipportfw masq support CONFIG_IP_MASQUERADE_IPPORTFW - 推奨します。 * IP: ipautofw masquerade support CONFIG_IP_MASQUERADE_IPAUTOFW - 必要に応じて組み込んでください。 * IP: ICMP masquerading CONFIG_IP_MASQUERADE_ICMP - ICMP パケットのマスカレードをサポートします。推奨します。 * IP: always defragment CONFIG_IP_ALWAYS_DEFRAG - 強く推奨します。 * Dummy net driver support CONFIG_DUMMY - 推奨します。 * IP: ip fwmark masq-forwarding support CONFIG_IP_MASQUERADE_MFW - 必要に応じて組み込んでください。 原注: 上に示したのは IP マスカレードに必要なものだけです。その他のオプ ションは、必要に応じて指定してください。 o カーネルをコンパイルした後、モジュールをコンパイルしてインストール します。 make modules; make modules_install o ブート時自動的に /lib/modules/2.2.x/ipv4/ 中の必要なモジュールをロ ードするために、/etc/rc.d/rc.local (またはそれ以外の適当と思われる ファイル) に、以下の行を追加します。 . . . /sbin/depmod -a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc (パッチを当てた場合には、ip_masq_cuseeme や ip_masq_vdolive のような その他のモジュールも書き加えてください) . . . 重要: カーネル 2.2.x のデフォルトでは、IP フォワーディングはディセーブ ルにされています。以下のコマンドを実行し、IP フォワーディングをイネー ブルにすることを忘れないでください。 echo "1" > /proc/sys/net/ipv4/ip_forwarding Redhat のユーザは、/etc/sysconfig/network ファイル中の FOR- WARD_IPV4=false を FORWARD_IPV4=true に書き換えることもできます。 o Linux マシンをリブートします。 3.1.2. Linux カーネル 2.0.x o まず最初に、カーネルのソースが必要です (バージョン 2.0.36 以上の最 新のカーネルが望ましい)。 o カーネルをコンパイルするのがはじめてでも、恐がらないでください。カ ーネルのコンパイルは比較的簡単ですし、Linux Kernel HOWTO などに詳しい説 明があります。 o 次のコマンドを使って、カーネルのソースを /usr/src/ に展開しま す。tar xvzf linux-2.0.x.tar.gz -C /usr/src、ここで x は 2.0 以降の パッチレベルです。 (linux というディレクトリあるいはシンボリックリンクがあることを確認 してください) 訳注: 例えばカーネルバージョン 2.0.36 の場合は、 tar xvzf linux-2.0.36.tar.gz -C /usr/src とします。tar の引数の x はカーネルのバージョンとは関係なく、そのままです。 o 適当なパッチを当てます。新しいパッチが続々と発行されているので、詳 細はここでは述べません。最新の情報については、IP Masquerade Resources を参照してください。 o カーネルをコンパイルするためのこれ以降の手順は、Kernel HOWTO やカー ネルソースディレクトリの README ファイルを参照してください。 o 以下のオプションを組み込んでコンパイルする必要があります。 以下の質問には YES と答えてください。 * Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL - これによって実験段階の IP マスカレードのコードを選択してカーネルに 組み込むことが可能になります。 * Enable loadable module support CONFIG_MODULES - ロードモジュールが使えるようになります。 * Networking support CONFIG_NET * Network firewalls CONFIG_FIREWALL * TCP/IP networking CONFIG_INET * IP: forwarding/gatewaying CONFIG_IP_FORWARD * IP: firewalling CONFIG_IP_FIREWALL * IP: masquerading (EXPERIMENTAL) CONFIG_IP_MASQUERADE - 実験段階ですが、*不可欠*です。 * IP: ipautofw masquerade support (EXPERIMENTAL) CONFIG_IP_MASQUERADE_IPAUTOFW - 推奨します。 * IP: ICMP masquerading CONFIG_IP_MASQUERADE_ICMP - ICMP パケットのマスカレードをサポートします。 必要に応じて組み込んでください。 * IP: always defragment CONFIG_IP_ALWAYS_DEFRAG - 強く推奨します。 * Dummy net driver support CONFIG_DUMMY - 推奨します。 原注: 上に示したのは IP マスカレードに必要なものだけです。その他のオプ ションは、必要に応じて指定してください。 o カーネルをコンパイルした後、モジュールをコンパイルしてインストール します。 make modules; make modules_install o ブート時自動的に /lib/modules/2.2.x/ipv4/ 中の必要なモジュールをロ ードするために、/etc/rc.d/rc.local (またはそれ以外の適当と思われる ファイル) に、以下の行を追加します。 . . . /sbin/depmod -a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc (パッチを当てた場合には、ip_masq_cuseeme や ip_masq_vdolive のような その他のモジュールも書き加えてください) . . . 重要: カーネル 2.0.34 から、デフォルトで IP フォワーディングはディセ ーブルにされています。以下のコマンドを実行し、IP フォワーディングをイ ネーブルにすることを忘れないでください。 echo "1" > /proc/sys/net/ipv4/ip_forward Redhat のユーザは、/etc/sysconfig/network ファイル中の FOR- WARD_IPV4=false を FORWARD_IPV4=true に書き換えることもできます。 o Linux マシンをリブートします。 3.2. プライベートネットワーク IP アドレスの割当 クライアントマシンには公式にはアドレスが割り当てられていないわけですか ら、これらのマシンに適切な方法でアドレスを割り当てなければなりません。 IP マスカレード FAQ からの引用: 外部に接続されていないネットワークでどのような IP アドレスを使うべきか について、RFC (#1597、今はもう古くなっているかもしれません) が発行され ています。 訳注: 現在は RFC1918 が最新です。 この目的のために、3つのブロックが予約されています。私が使っているの は、この中の 192.168.1.n から 192.168.255.n までの255個のクラス C サブ ネットです。 RFC 1597 からの引用: Section 3: プライベートアドレス空間 Internet Assigned Numbers Authority (IANA) は、IP アドレス空間のうち 以下の3つのブロックをプライベートネットワーク用に予約しています。 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 最初のブロックは「24ビットブロック」、2番目のブロックは「20ビット ブロック」、3番目のブロックは「16ビット」ブロックと呼ばれます。 最初のブロックは単一のクラス A ネットワーク番号以外のなにものでもなく、 2番目のブロックは連続する16個のクラス B ネットワーク番号の集合であり、 3番目のブロックは連続する255個のクラス C ネットワーク番号の集合であることに 注意してください。 従って、クラス C ネットワークを使っている場合、マシンのアドレスは 192.168.1.1、192.168.1.2、192.168.1.3、…、192.168.1.x と割り当てるこ とになります。 192.168.1.1 は通常ゲートウェイマシン、つまりインターネットに接続された Linux ホストとなります。 192.168.1.0 と 192.168.1.255 はネットワークア ドレスとブロードキャストアドレスとして予約されています。これらのアドレ スをマシンに割り当てることは避けてください。 3.3. クライアントマシンの設定 適切な IP アドレスを設定したら、次は適切なゲートウェイを設定しなければ なりません。普通はそう難しいことではありません。Linux ホストのアドレス (普通は 192.168.1.1)をゲートウェイとして入力すればいいのです。 DNS には任意のサーバーを指定することができますが、 Linux マシンと同じ サーバーを指定するのが分かりやすいでしょう。また、ドメインサーチサ フィックスを追加することもできます。 訳注: Linux マシンが 0.0.0.0 または 127.0.0.1 (どちらも自分自身を示す アドレスです) を DNS サーバーとして指定している場合、これをこのままク ライアントマシンに指定してはいけません!この場合には、Linux マシンの IP アドレス(この例では 192.168.1.1)を指定します。 IP アドレスを設定し直した後、適当なサービスを再起動するか、リブートす ることを忘れないでください。 以下の設定方法は、クラス C ネットワークを使い、Linux ホストのアドレス が 192.168.1.1 であると仮定しています。192.168.1.0 と 192.168.1.255 は 予約されていることに注意してください。 3.3.1. Windows 95 の設定 1. ネットワークカードやドライバをインストールしていない場合には、イン ストールする。 2. 「コントロールパネル」/「ネットワーク」を開く。 3. 「TCP/IP」 がない場合には、追加する。 4. 「TCP/IP のプロパティ」 の中で「IP アドレス」を開き、 IP アドレスを 192.168.1.x (1 < x < 255) に設定する。サブネットマスクを 255.255.255.0 に設定する。 5. 「ゲートウェイ」 の項目に、192.168.1.1 を指定する。 6. 「DNS 設定」/「DNS サーバーの検索順」 に、Linux ホストが使っている DNS サーバーを追加する(通常 /etc/resolv.conf にあります)。必要に応 じて「ドメインサフィックスの検索順」を追加する。 7. その他の項目は、特に必要がない限り変更しないこと。 8. すべてのダイアログボックスの 「OK」 ボタンをクリックし、システムを 再起動する。 9. Linux マシンに ping し、ネットワーク接続をテストする。「ファイル名 を指定して実行」 を選択し、ping 192.168.1.1 と入力する。 (これは LAN の接続をテストしているだけです。まだ外の世界に ping す ることはできません。) 10. 必要に応じて HOSTS ファイルを windows ディレクトリに作成すれば、 LAN 上のマシンをホスト名で参照できるようになります。 windows ディレ クトリには、HOSTS.SAM という名前のサンプルファイルがあります。 3.3.2. Windows for Workgroup 3.11 の設定 訳注: 日本語版の Windows for Workgroup 3.11 は、発売されていません。 1. ネットワークカードやドライバをインストールしていない場合には、イン ストールする。 2. TCP/IP 32b パッケージをインストールしていない場合には、インストール する。 3. 「Main」/「Windows Setup」/「Network Setup」で、「Drivers」をクリッ クする。 4. 「Network Drivers」セクションで、「Microsoft TCP/IP-32 3.11b」を選 択し、「Setup」をクリックする。 5. IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを 192.168.1.1 に設定する。 6. 「Automatic DHCP Configuration」をイネーブルしないこと。ま た、Windows NT のドメインに参加していて特に必要のある場合以外には、 「WINS Server」には何も入力しないこと。 7. 「DNS」 をクリックし、「Windows 95 の設定」のステップ6で説明したよ うに情報を入力する。設定し終ったら 「OK」 をクリックする。 8. 「Advanced」 をクリックし、「Enable DNS for Windows Name Resolution」 をチェックする。「Windows 95 の設定」のステップ10で説 明したようにホストファイルを参照したければ、「Enable LMHOSTS lookup」 をチェックする。 9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、システムを 再起動する。 10. Linux マシンに ping し、ネットワーク接続をテストする。「Start/Run」 を選択し、 ping 192.168.1.1 と入力する。 (これは LAN の接続をテストしているだけです。まだ外の世界に ping す ることはできません。) 3.3.3. Windows NT の設定 1. ネットワークカードやドライバをインストールしていない場合には、イン ストールする。 2. 「メイン」/「コントロールパネル」/「ネットワーク」 を開く。 3. TCP/IP サービスをインストールしていない場合には、「ソフトウェアの追 加」 メニューを使って TCP/IP プロトコルと関連するコンポーネントを追 加する。 4. 「ネットワークソフトウェアとアダプターカード」 で「組み込まれている ネットワークソフトウェア」セレクションボックス中の「TCP/IP プロトコ ル」 を選択する。 5. 「構成」ボタンをクリックし、「TCP/IP の構成」ウィンドウで、適切なア ダプタを選択する。例えば、[1]Novell NE2000 Adapter。 IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、 デフォルトゲートウェイを 192.168.1.1 に設定する。 6. 「DHCP 自動構成を有効にする」をイネーブルしないこと。また、Windows NT のドメインに参加していて、特に必要のある場合以外は、「WINS サー バー」には何も入力しないこと。 7. 「DNS」ボタンをクリックし、「Windows 95 の設定」のステップ6で説明し たように適切な情報を入力する。入力し終ったら、「OK」ボタンをクリッ クする。 8. 「詳細」ボタンをクリックし、「Windows 名前解決に DNS を使用する」を クリックする。「Windows 95 の設定」のステップ10で説明したようにホス トファイルを参照したければ、「LMHOSTS の参照を行なう」をクリックす る。 9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、システムを 再起動する。 10. Linux マシンに ping し、ネットワーク接続をテストする。「ファイ ル/ファイル名を指定して実行」 を選択し、 ping 192.168.1.1 と入力す る。 (これは LAN の接続をテストしているだけです。まだ外の世界に ping す ることはできません。) 3.3.4. UNIX ベースのシステムの設定 1. ネットワークカードをインストールしていなかったり、適切なアダプタド ライバを組み込んでカーネルをリコンパイルしていない場合には、それを 行なう。 2. nettools パッケージのような TCP/IP ネットワーキングをインストールし ていない場合には、インストールする。 3. IPADDR を 192.168.1.x (1 < x < 255) に、NETMASK を 255.255.255.0 に、GATEWAY を 192.168.1.1 に、BROADCAST を 192.168.1.255 に設定す る。 例えば Red Hat Linux システムの場合には、 /etc/sysconfig/network- scripts/ifcfg-eth0 ファイルを編集するか、コントロールパネルを使って 上の設定を行ないます。 (SunOS や BSDi、Slackware Linux などでは別の設定方法があります…) 4. /etc/resolv.conf に DNS サーバーとドメインサーチサフィックスを追加 する。 5. You may want to update your /etc/networks file depending on your settings. 6. 適切なサービスを再起動するか、システムを再起動する。 7. ping コマンドを発行し、ゲートウェイマシンへの接続をテストする。 ping 192.168.1.1 (これは LAN の接続をテストしているだけです。まだ外の世界に ping す ることはできません。) 3.3.5. NCSA Telnet パッケージを使用した DOS の設定 1. ネットワークカードをインストールしていない場合には、インストールす る。 2. 適切なパケットドライバをロードする。 IRQ が 10、ハードウェアアドレ スが 0x300 に設定されている NE2000 カードの場合、nwpd 0x60 10 0x300 を実行する。 3. 新しいディレクトリを作成し、次のコマンドを実行して NCSA telnet パッ ケージを展開する。 pkunzip tel2308b.zip 4. テキストエディタで config.tel ファイルをオープンする。 5. myip=192.168.1.x (1 < x < 255)、netmask=255.255.255.0 と設定する。 6. この例では、hardware=packet, interrupt=10, ioaddr=60 と設定する。 7. 少なくとも一台のマシンをゲートウェイとして設定する必要があります。 これはつまり Linux ホストのことです。 name=default host=yourlinuxhostname hostip=192.168.1.1 gateway=1 8. DNS の設定をする。 name=dns.domain.com ; hostip=123.123.123.123; nameserver=1 原注: Linux ホストが使用している DNS 情報で置き換えてください。 9. config.tel ファイルをセーブする。 10. Linux マシンに telnet して、ネットワーク接続をテストする。 telnet 192.168.1.1 3.3.6. MacTCP の動作している MacOS ベースのシステム 1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインスト ールしていない場合には、今すぐインストールしましょう。 2. MacTCP コントロールパネルを開く。適当なネットワークドライバ (EtherTalk ではなく Ethernet) を選択し、「More...」ボタンをクリック する。 3. 「アドレスの取得:」で、「手入力」をクリックする。 4. 「IP アドレス:」で、ポップアップメニューからClass C を選択する。ダ イアログボックス中のこのセクションの残りは無視する。 5. 「ドメインネームサーバ:」に、適当な情報を入力する。 6. 「ゲートウェイアドレス:」に、192.168.1.1 を入力する。 7. 「OK」をクリックし、設定を保存する。 MacTCP コントロールパネルのメ インウィンドウで、「IP アドレス:」ボックスに Mac の IP アドレス (192.168.1.x、1 < x < 255) を入力する。 8. MacTCP コントロールパネルを閉じる。再起動を促すダイアログボックスが 現れた場合、システムを再起動する。 9. Linux マシンに ping して、ネットワーク接続をテストすることができま す。フリーウェアプログラム MacTCP Watcher をお使いの場合、「Ping」 ボタンをクリックし、Linux マシンのアドレス (192.168.1.1) をポップ アップダイアログボックスに入力します (これは LAN の接続をテストして いるだけなので、まだ外の世界に ping することはできません)。 10. HOSTS ファイルをシステムフォルダに作成すれば、 LAN 上のマシンをホス ト名で参照できるようになります。このファイルはすでにシステムフォル ダに存在し、必要に応じて変更できるようにいくつかのコメントアウトさ れたサンプルエントリを含んでいます。 3.3.7. Open Transport の動作している MacOS ベースのシステムの設定 1. 2. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインスト ールしていない場合には、今すぐインストールしましょう。 3. TCPIP コントロールパネル/を開き、「利用者モード...」を編集 メニュー から開く。利用者モードが少なくとも「詳しい情報も指定」に設定されて いることを確認し、「OK」 ボタンをクリックする。 4. 「ファイル」 メニューから、「設定...」を選択する。「省略時設定」 設 定を選択し、「複製...」ボタンをクリックする。「設定の複製」ダイアロ グにはおそらく「省略時設定のコピー」と表示されているが、これを「IP Masq」(あるいはこれが特別な設定であることが分かるような名前) に書き 換える。そして「OK」ボタン、「済み」ボタンををクリックする。 5. 「経由先:」ポップアップから「Ethernet」を選択する。 6. 「Configure:」ポップアップから、適当なものを選ぶ。どのオプションを 選択して良いか分からなければ、おそらく「Default」設定を再度選んで終 了するのが良いでしょう。私は「Manually」を選びました。 7. 「IP アドレス:」ボックスに Mac の IP アドレス (192.168.1.x、1 < x < 255) を入力する。 8. 「サブネットマスク:」ボックスに 255.255.255.0 を入力する。 9. 「ルータアドレス:」ボックスに 192.168.1.1 を入力する。 10. 「ネームサーバアドレス:」ボックスにドメインネームサーバの IP アドレ スを入力する。 11. 「インプリシット・サーチ:」の「自分のドメイン名」ボックスにインター ネットドメイン (例えば「microsoft.com」) を入力する。 12. 以下の手順は必要に応じて行なってください。不正確な値を入力すると動 作が不安定になることがあります。確信が持てない場合には、おそらく何 も入力せず、チェックやセレクトもしないのが良いでしょう。必要であれ ば、これらのフィールドからすべての情報を消去してください。私の知る 限り、以前に選択されていた非標準の Hosts ファイルを使用しないように システムに指示して TCP/IP ダイアログを終了する方法はありません。も しその方法をご存知の方は、ぜひ教えてください。 ネットワークが 802.3 フレームタイプを必要とする場合、「802.3 を使 用」をチェックしてください。 訳注: この設定が必要になることは、まず絶対にありません。 13. 「オプション」ボタンをクリックし、TCP/IP がアクティブであることを確 認します。私は「必要な時にのみロード」オプションを使用しています。 マシンをリブートせず TCP/IP アプリケーションを何度も起動しては終了 するような使い方をする場合には、「必要な時にのみロード」オプション をチェックしない方が、メモリ管理への影響を防止あるいは減少すること ができるでしょう。このオプションをチェックしないと、TCP/IP プロトコ ルスタックは常にロードされているので、いつでも使うことができます。 チェックした場合には、 TCP/IP スタックは必要な時に自動的にロードさ れ、必要なくなるとアンロードされます。このローディングとアンロー ディングのプロセスが、マシンのメモリを断片化させるのです。 14. Linux マシンに ping して、ネットワーク接続をテストすることができま す。フリーウェアプログラム MacTCP Watcher をお使いの場合、「Ping」 ボタンをクリックし、Linux マシンのアドレス (192.168.1.1) をポップ アップダイアログボックスに入力します (これは LAN の接続をテストして いるだけなので、まだ外の世界に ping することはできません)。 15. HOSTS ファイルをシステムフォルダに作成すれば、 LAN 上のマシンをホス ト名で参照できるようになります。このファイルはすでにシステムフォル ダに存在するかもしれないし、ないかもしれません。存在する場合には、 必要に応じて変更できるようにいくつかのコメントアウトされたサンプル エントリを含んでいます。存在しない場合には、MacTCP が動作しているシ ステムからこのファイルのコピーを取得することもできますし、自分で作 成することもできます (このファイルのフォーマットは、RFC952 に記述さ れている Unix の /etc/hosts ファイルと同じです)。このファイルを作成 したら、 TCP/IP コントロールパネル を開き、「Hosts ファイルの選 択...」ボタンをクリックし、Hosts ファイルをオープンします。 16. クローズボックスをクリックするか、ファイル メニューから「閉じる」ま たは「終了」を選択し、「保存」ボタンをクリックして変更内容をセーブ します。 17. 変更はただちに有効となりますが、リブートしても問題はありません。 3.3.8. DNS を使用した Novell ネットワークの設定 1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインスト ールしていない場合には、今すぐインストールしましょう。 2. から tcpip16.exe をダウ ンロード 3. c:\nwclient\startnet.bat (これは私の場合です) SET NWLANGUAGE=ENGLISH LH LSL.COM LH KTC2000.COM LH IPXODI.COM LH tcpip LH VLM.EXE F: 4. c:\nwclient\net.cfg (リンクドライバをお使いのもの、例えば NE2000 に変更してください) Link Driver KTC2000 Protocol IPX 0 ETHERNET_802.3 Frame ETHERNET_802.3 Frame Ethernet_II FRAME Ethernet_802.2 NetWare DOS Requester FIRST NETWORK DRIVE = F USE DEFAULTS = OFF VLM = CONN.VLM VLM = IPXNCP.VLM VLM = TRAN.VLM VLM = SECURITY.VLM VLM = NDS.VLM VLM = BIND.VLM VLM = NWP.VLM VLM = FIO.VLM VLM = GENERAL.VLM VLM = REDIR.VLM VLM = PRINT.VLM VLM = NETX.VLM Link Support Buffers 8 1500 MemPool 4096 Protocol TCPIP PATH SCRIPT C:\NET\SCRIPT PATH PROFILE C:\NET\PROFILE PATH LWP_CFG C:\NET\HSTACC PATH TCP_CFG C:\NET\TCP ip_address xxx.xxx.xxx.xxx ip_router xxx.xxx.xxx.xxx 5. 最終的に作成された c:\bin\resolv.cfg SEARCH DNS HOSTS SEQUENTIAL NAMESERVER 207.103.0.2 NAMESERVER 207.103.11.9 6. 以上の説明が、Novel ネットワークを接続する手助けになれば幸いです。 この方法は Netware 3.1x にも 4.x にも有効です。 3.3.9. OS/2 Warp の設定 1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインスト ールしていない場合には、今すぐインストールしましょう。 2. TCP/IP プロトコルをインストールしていない場合には、インストールしま す。 3. 「プログラム」/「TCP/IP」の設定を開く。 4. 「ネットワーク」で TCP/IP アドレスを追加し、ネットマスク (255.255.255.0) を設定する。 5. 「ルーティング」で「追加」ボタンをクリックする。「タイプ」を「デ フォルト」 に設定し、Linux マシンの IP アドレスを「ルータのアドレ ス」フィールドに設定する (192.168.1.1)。 6. Linux マシンと同じ DNS (ネームサーバ) アドレスを「ホスト」に設定す る。 7. TCP/IP コントロールパネルを閉じる。その後の質問には「はい」と答え る。 8. リブートする。 9. Linux マシンに ping し、ネットワークの設定をテストする。「OS/2 コマ ンドプロンプト」で ping 192.168.1.1 と入力する。 ping パケットが受 信できればすべて OK。 3.3.10. それ以外のシステムの設定 他のプラットフォームの設定に関しても、同じロジックが適用できるはずで す。今までのセクションを参照してください。これらのシステムの設定につい て書いてみようと思う方は、詳細な設定方法を ambrose@writeme.com と dranch@trinnet.net にメールしてください。 3.4. IP フォワーディングポリシーの設定 この時点で、カーネルと必要なパッケージがインストールされ、モジュールが ロードされているはずです。また、クライアントマシンの IP アドレス、ゲー トウェイ、それに DNS 設定もすべてできているはずです。 あと残っているのは、IP ファイヤウォールツールを使って、適当なパケット を適当なマシンに転送することだけです。 これには、いろいろなやり方があります。これから説明する方法は 私にとってはうまくいきましたが、あなたはまた別の考えを持って いるかもしれません。セクション 4.4 と ipchains(2.2.x) / ipfwadm(2.0.x) マニュアルページを参照してください。 ここで提供するのは、IP マスカレードを動かすための必要最小限 のルールセットだけです。セキュリティの問題は考慮されていませ ん。ある程度の時間を費やして、適切なファイヤウォールのルール を適用し、セキュリティを強化することを強くお勧めします。 3.4.1. Linux カーネル 2.2.x カーネル 2.2.x では、IP マスカレードのルールを設定するためのツールとし て ipfwadm はもう使われていません。ipchains を使ってください。 ipchains -P forward DENY ipchains -A forward -s yyy.yyy.yyy.yyy/x -j MASQ ここで x はサブネットのクラスによって決まる数 (次の表を参照してくださ い)、また yyy.yyy.yyy.yyy はネットワークアドレスです。 netmask | x | Subnet ~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~ 255.0.0.0 | 8 | Class A 255.255.0.0 | 16 | Class B 255.255.255.0 | 24 | Class C 255.255.255.255 | 32 | Point-to-point yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx というフォーマットも使えます。ここで xxx.xxx.xxx.xxx は、例えば 255.255.255.0 のように、サブネットマスクを 指定します。 例えば、クラス C サブネットを使っている場合には、次のように入力しま す。 ipchains -P forward DENY ipchains -A forward -s 192.168.1.0/24 -j MASQ または ipchains -P forward DENY ipchains -A forward -s 192.168.1.0/255.255.255.0 -j MASQ マシンごとに設定することもできます。例えば、192.168.1.2 と 192.168.1.8 にインターネットへのアクセスを許可し、他のマシンには禁止したい場合に は、次のように入力します。 ipchains -P forward DENY ipchains -A forward -s 192.168.1.2/32 -j MASQ ipchains -A forward -s 192.168.1.8/32 -j MASQ デフォルトポリシーでマスカレードを行なわないでください。ルーティングを 操作することができる外部の人間が、あなたのゲートウェイを使って正体を仮 装 (マスカレード) し、あなたのネットワークに侵入してくるおそれがあるの です! これらのコマンドを /etc/rc.local ファイル (または適当と思われる rc ファイル) に追加しておくのが良いでしょう。そうでなければ、IP マスカレ ードが必要になるたびに実行する必要があります。 ipchains の詳しい使い方については、Linux IPCHAINS HOWTO を参照してくだ さい。 3.4.2. Linux カーネル 2.0.x ipfwadm -F -p deny ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 または ipfwadm -F -p deny ipfwadm -F -a masquerade -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 ここで x はサブネットのクラスによって決まる数 (次の表を参照してくださ い)、また yyy.yyy.yyy.yyy はネットワークアドレスです。 netmask | x | Subnet ~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~ 255.0.0.0 | 8 | Class A 255.255.0.0 | 16 | Class B 255.255.255.0 | 24 | Class C 255.255.255.255 | 32 | Point-to-point yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx というフォーマットも使えます。ここで xxx.xxx.xxx.xxx は、例えば 255.255.255.0 のように、サブネットマスクを 指定します。 例えば、クラス C サブネットを使っている場合には、次のように入力しま す。 ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 bootp クライアントは自分の IP アドレスを知らないため、bootp リクエスト パケットは正しい IP ソースアドレスを持っていません。したがって、bootp サーバがマスカレード/ファイヤウォールマシンで動いている場合、次のコマ ンドが deny コマンドの前に必要です。 ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp マシンごとに設定することもできます。例えば、192.168.1.2 と 192.168.1.8 にインターネットへのアクセスを許可し、他のマシンには禁止したい場合に は、次のように入力します。 ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0 ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0 よくある間違いとして、最初のコマンドを次のように入力することがあげられ ます。 ipfwadm -F -p masquerade デフォルトポリシーでマスカレードを行なわないでください。ルーティングを 操作することができる外部の人間が、あなたのゲートウェイを使って正体を仮 装 (マスカレード) し、あなたのネットワークに侵入してくるおそれがあるの です! これらのコマンドを /etc/rc.local ファイル (または適当と思われるファイ ル) に追加しておくのが良いでしょう。そうでなければ、IP マスカレードが 必要になるたびに実行する必要があります。 ipfwadm の詳しい説明は、セクション 4.4を参照してください。 3.5. IP マスカレードをテストする 設定お疲れ様でした。いよいよ試運転です。 Linux ホストとインターネット の接続に問題がないことを確認しておいてください。 クライアントマシンから「インターネット上の!!!」ウェブサイトにアクセス して、うまくつながるかどうか見てみましょう。 DNS の設定が間違っている かもしれないので、最初はホスト名ではなく IP アドレスを使うことをおすす めします。 例えば、Linux Documentation Project サイト http://metalab.unc.edu/mdw/linux.html を、 http://152.19.254.81/mdw/linux.html としてアクセスしてみましょう。 Linux Documentation Project のホームページが見えましたね?おめでとうご ざいます! IP マスカレードはちゃんと動いています!次の段階としてホスト 名でのアクセスや、ping、telnet、ssh、ftp、Real Audio、True Speech など など、IP マスカレードでサポートされているクライアントを試してみましょ う。 これまでに説明した設定で、今のところ私は何のトラブルも経験していませ ん。この素晴らしい機能を実現してくれた人たちに感謝します。 4. その他の IP マスカレードの問題とソフトウェアサポート 4.1. IP マスカレードの問題 ポート番号に関して何かしら仮定をしている、あるいはアドレスやポートに関 するデータをデータストリーム中にエンコードしているなどの理由で、マスカ レードでは動作しないプロトコルがいくつかあります。後者を動作させるため には、マスカレードのコードにそのプロトコル特有のプロキシを組み込む必要 があります。 4.2. 外部から到来するサービスの受付 マスカレードは、外部から到来するサービスを受け付けることができません。 これを可能にするためにはいくつか方法がありますが、それらはマスカレード とはまったく独立したもので、実際には標準的なファイヤウォール手法の一部 です。 もし、高レベルのセキュリティが必要ないならば、単純にポートをリダイレク トすることができます。これを行なうにはいくつかの方法があります。私は修 正した redir プログラムを使っています (これは sunsite やそのミラーサイ トから、近日中に取得可能になると思います)。外部からのコネクションに何 らかの認証を行ないたい場合には、 TCP ラッパや Xinetd を redir (0.7 あ るいはそれ以上) と組み合わせて使うことによって、指定した IP アドレスだ けを通過させることができますし、他のツールを使うこともできます。ツール や情報を入手するには、 TIS Firewall Toolkit を探してみるといいでしょ う。 さらに詳細な情報は、IP Masquerade Resource を 参照してください。 サービスのフォワーディングに関するセクションが、近日中に追加される予定 です。 4.3. サポートされているクライアントソフトウェアと設定メモ ** 以下のリストは、もはや保守されていません。 Linux IP マス カレードを通して動作するアプリケーションに関しては、このペー ジ を参照してください。 詳細は IP Masquerade Resource を参 照してください。** 一般的に言って、TCP や UDP を使うアプリケーションは動作するはずです。 IP マスカレードとアプリケーションに関する提案、ヒント、質問などがあれ ば、 Lee Nevo 氏によるこのページ applications that work thru Linux IP masquerading を訪ねてみてくださ い。 4.3.1. 動作するクライアント 一般的なクライアント HTTP サポートされているプラットフォームすべて、ウェブのサーフィン POP & SMTP サポートされているプラットフォームすべて、電子メールクライアント Telnet サポートされているプラットフォームすべて、リモートセッション FTP サポートされているプラットフォームすべて、 ip_masq_ftp.o モジュ ールが必要 (サイトによっては特定のクライアントでアクセスできない ことがあります。例えば、ws_ftp32 ではダメだが netscape だとうま くいくサイトもあります) Archie サポートされているプラットフォームすべて、ファイル検索クライアン ト(すべての archie クライアントがサポートされているわけではあり ません) NNTP (USENET) サポートされているプラットフォームすべて、USENET ニュースクライ アント VRML Windows上の(サポートされているプラットフォームすべてで動作する可 能性があります)バーチャルリアリティサーフィン traceroute 主に UNIX ベースのプラットフォーム、いくつかの変種では動作しない ping すべてのプラットフォーム、ICMP パッチが必要 IRC ベースのアプリケーションすべて サポートされているプラットフォームすべて、ip_masq_irc.o モジュー ルが必要 Gopher クライアント サポートされているプラットフォームすべて WAIS クライアント サポートされているプラットフォームすべて マルチメディアクライアント Real Audio Player Windows、ネットワークストリーミングオーディオ、 ip_masq_raudio モジュールをロードすることが必要 True Speech Player 1.1b Windows、ネットワークストリーミングオーディオ Internet Wave Player Windows、ネットワークストリーミングオーディオ Worlds Chat 0.9a Windows、クライアントサーバー方式の 3D チャットプログラム Alpha Worlds Windows、クライアントサーバー方式の 3D チャットプログラム Internet Phone 3.2 Windows、一対一オーディオコミュニケーション外部と接続するために は、こちらから呼び出す必要があります。外部からこちら側を呼び出す ことはできません。 Powwow Windows、一対一オーディオコミュニケーション外部と接続するために は、こちらから呼び出す必要があります。外部からこちら側を呼び出す ことはできません。 CU-SeeMe サポートされているプラットフォームすべて、cuseeme モジュールが必 要、詳細は IP Masquerade Resource 参照 のこと VDOLive Windows、vdolive パッチが必要 原注: IPhone や Powwow などのクライアントは、ipautofw パッケージを使う ことによって、呼び出す側でなくとも動作する可能性があります (セクション 4.6 参照)。 その他のクライアント NCSA Telnet 2.3.08 telnet、ftp、ping などを含む DOS パッケージ PC-anywhere for windows 2.0 MS-Windows、TCP/IP を介して PC を遠隔操作、ホストでは動作せずク ライアントのみで動作 Socket Watch ntp (ネットワークタイムプロトコル) を使用 Linux net-acct パッケージ Linux, ネットワーク管理アカウントパッケージ 4.3.2. 動作しないクライアント Intel Internet Phone Beta 2 接続はするが、音声は一方向 (出て行く方向) にしか流れない Intel Streaming Media Viewer Beta 1 サーバに接続できない Netscape CoolTalk 対抗側に接続できない talk,ntalk 動作せず、カーネルプロキシを書く必要あり WebPhone 現在のところ動作しない (アドレスに関して不正な仮定をしている) X 未テストだが、私の意見では誰かが X のプロキシ (おそらくマスカレ ードコードの外部プログラムになるだろう) を作らない限り動作しない だろう。動作させるためのもう一つの方法は、ssh をリンクとして使 い、内部の X プロキシを使用することだろう。 4.3.3. クライアントとしてテストされたプラットフォーム/OS o Linux o Solaris o Windows 95 o Windows NT (ワークステーションとサーバの両方) o Windows For Workgroup 3.11 (TCP/IP パッケージが必要) o Windows 3.1 (Chameleon パッケージが必要) o Novel 4.01 Server o OS/2 (Warp v3 を含む) o Macintosh OS (MacTCP または Open Transport が必要) o DOS (NCSA Telnet パッケージが必要、DOS Trumpet は部分的に動作) o Amiga (AmiTCP または AS225-stack が必要) o VAX Stations 3520 and 3100 with UCX (TCP/IP stack for VMS) o Alpha/AXP with Linux/Redhat o SCO Openserver (v3.2.4.2 および 5) o AIX の動作している IBM RS/6000 基本的には、すべての TCP/IP をサポートしており、ゲートウェイ/ルータを 指定することができる OS プラットフォームならば、IP マスカレードと動作 するはずです。 4.4. IP ファイヤウォールの管理 (ipfwadm) ここでは、ipfwadm の使用方法をさらに詳しく説明します。 以下に示すのは、スタティックな PPP アドレスを持った PPP リンクの背後の ファイヤウォール/マスカレードシステムの設定です。信頼されるインター フェースは 192.168.255.1 で、PPP インターフェースは悪者を守るために変 更されました :-)。 IP スプーフィング (訳注: IP アドレスを詐称して、内 部のホストのふりをすること) やスタッフドルート/マスカレードを検出する ため、入り側と出側のインターフェースを別々にリストしてあります。また、 明示的に許可していないことはすべて禁止されています! #!/bin/sh # # /etc/rc.d/rc.firewall, define the firewall configuration, invoked from # rc.local. # PATH=/sbin:/bin:/usr/sbin:/usr/bin # testing, wait a bit then clear all firewall rules. # uncomment following lines if you want the firewall to automatically # disable after 10 minutes. # (sleep 600; \ # ipfwadm -I -f; \ # ipfwadm -I -p accept; \ # ipfwadm -O -f; \ # ipfwadm -O -p accept; \ # ipfwadm -F -f; \ # ipfwadm -F -p accept; \ # ) & # Incoming, flush and set default policy of deny. Actually the default policy # is irrelevant because there is a catch all rule with deny and log. ipfwadm -I -f ipfwadm -I -p deny # local interface, local machines, going anywhere is valid ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 # remote interface, claiming to be local machines, IP spoofing, get lost ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o # remote interface, any source, going to permanent PPP address is valid ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D your.static.PPP.address/32 # loopback interface is valid. ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # catch all rule, all other incoming is denied and logged. pity there is no # log option on the policy but this does the job instead. ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # Outgoing, flush and set default policy of deny. Actually the default policy # is irrelevant because there is a catch all rule with deny and log. ipfwadm -O -f ipfwadm -O -p deny # local interface, any source going to local net is valid ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16 # outgoing to local net on remote interface, stuffed routing, deny ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o # outgoing from local net on remote interface, stuffed masquerading, deny ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o # outgoing from local net on remote interface, stuffed masquerading, deny ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o # anything else outgoing on remote interface is valid ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0 # loopback interface is valid. ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # catch all rule, all other outgoing is denied and logged. pity there is no # log option on the policy but this does the job instead. ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # Forwarding, flush and set default policy of deny. Actually the default policy # is irrelevant because there is a catch all rule with deny and log. ipfwadm -F -f ipfwadm -F -p deny # Masquerade from local net on local interface to anywhere. ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 # catch all rule, all other forwarding is denied and logged. pity there is no # log option on the policy but this does the job instead. ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o -I、-O あるいは -F を使用して、特定のサイトへのトラフィックをブロック することができます。ルールセットは上から順にスキャンされ、-a は既存の ルールセットへの「追加」を意味するため、制限はグローバルルールの前に記 述しないといけないことに注意してください。たとえば (テストしていません が) -I ルールの使用。おそらく最も高速だが、ローカルマシンからのアクセスの みを禁止するため、ファイヤウォールそのものは依然として「禁止された」サ イトへのアクセスが可能。もちろんそのような組合せを許可したいことも考え られる。 ... start of -I rules ... # reject and log local interface, local machines going to 204.50.10.13 ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # local interface, local machines, going anywhere is valid ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 ... end of -I rules ... -O ルールの使用。パケットはまずマスカレードを通過するため最も遅いが、 このルールは禁止されたホストへのファイヤウォールからのアクセスをも禁止 する。 ... start of -O rules ... # reject and log outgoing to 204.50.10.13 ipfwadm -O -a reject -V your.static.PPP.address -S your.static.PPP.address/32 -D 204.50.10.13/32 -o # anything else outgoing on remote interface is valid ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0 ... end of -O rules ... -F ルールの使用。おそらく -I よりも遅く、このルールもマスカレードされ た (つまり内部の) マシンからのアクセスのみを禁止する。ファイヤウォール そのものは依然として禁止されたサイトへのアクセスが可能。 ... start of -F rules ... # Reject and log from local net on PPP interface to 204.50.10.13. ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # Masquerade from local net on local interface to anywhere. ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 ... end of -F rules ... 192.168.0.0/16 が 204.50.11.0 にアクセスするために特別なルールは必要な い。これはグローバルルールによって取り扱われる。 上記のルールでインターフェースをコーディングする方法は複数ある。例えば -V 192.168.255.1 の代わりに -W eth0 というコードを書くことができる し、-V your.static.PPP.address の代わりに -W pp0 と書くことができる。 個人的な好みと分かりやすさによって選択できる。 4.5. IP ファイヤウォールチェーン (ipchains) ipchains は、主にカーネル 2.2.x での使用を前提としたファイヤウォールル ールセットの設定ツールです (2.0.x で動かすためのパッチがあります)。 近日中にこのセクションをアップデートして、ipchains の使い方の例をいく つか載せる予定です。 詳細は、Linux IP Firewalling Chains page や Linux IPCHAINS HOWTO を参照してくだ さい。 4.6. IP マスカレードとデマンドダイヤルアップ 1. ネットワークから自動的にインターネットにダイヤルアップ接続するよう に設定したい場合には、diald デマンドダイヤルアップパッケージがとて も役立ちます。 2. diald の設定については、Setting Up Diald for Linux Page を参照してく ださい。 3. diald と IP マスカレードを設定すれば、どのクライアントマシンからも ウェブ、telnet、ftp などのセッションを開始することができます。 4. Diald は要求を来たのを検知して、ISP(訳注: インターネットサービスプ ロバイダ) にダイヤルアップし、接続を確立します。 5. 最初の接続がタイムアウトしてしまうことがあります。これは、アナログ モデムを使っている限り避けられません。モデムリンクと PPP 接続を確立 するのに時間がかかるため、クライアントプログラムがタイムアウトして しまうのです。 ISDN 接続にすれば、この問題を避けることができます (訳注: 話中でリダイヤルしない限りは…)。この問題が生じた場合には、 クライアントの現在のプロセスを終了し、再起動すれば大丈夫です。 (訳注: /etc/resolv.conf に、複数(3つまで)のネームサーバーを書いてお くという方法もあります。同一のネームサーバーを3回書いても構いませ ん。1つだけ書く場合に比べて、DNS のタイムアウト時間が3倍になりま す。 3つ以上書いても無視されるようです。) 4.7. IPautofw パケットフォワーダ IPautofw は、Linux マスカレードのための TCP と UDP の一般的なフォワーダです。一 般的には、UDP を必要とするパッケージを使用する場合、それ特有の IP マス カレードモジュールをロードする必要があります (ip_masq_raudio、ip_masq_cuseeme など)。 ipautofw はより一般的な方法で 動作し、アプリケーション特有のモジュールがフォワードしないトラフィック も含め、あらゆるタイプのトラフィックをフォワードします。正しく管理しな いと、これによってセキュリティホールが生じます。 4.8. CU-SeeMe and Linux IP-Masquerade Teeny How-To これは Michael Owings 氏の提供によるもので す。 4.8.1. はじめに ここでは、CU-SeeMe (Cornell と White Pine の両方のバージョ ン) を Linux の IP マスカレードと一緒に動かすために必要な作 業を説明します。 CU-SeeMe はデスクトップビデオ会議パッケージで、Windows や Macintosh の クライアントが利用可能です。フリーのバージョンは Cornell University から取得可能です。機能の増強された商用バ ージョンは White Pine Software から購入できま す。 IP マスカレードは、LAN 上のワークステーションが、1台の Linux の背後で 「仮装」 (マスカレード) することを可能にします。LAN 上のワークステー ションは、正当な IP アドレスなしで、インターネットにほぼ透過的にアクセ スすることができます。 Linux マシンは LAN からインターネットへ出て行く パケットを書き換え、その Linux マシンから発信されたかのように見せかけ ます。入ってくる応答パケットは再び書き換えられ、LAN 上の正しいワークス テーションに送り返されます。このようにして、多くのインターネットアプリ ケーションが LAN 上のワークステーションで透過的に使用できるようになり ます。いくつかのアプリケーション (たとえば CU-SeeMe) に関しては、正し くパケットを送り返すために Linux マスカレードのコードに手助けが必要で す。この手助けは通常、特別なカーネルローダブルモジュールとして提供され ます。IP マスカレードに関するより詳細な情報は、The Linux IP Masquerading Website を参照してくださ い。 4.8.2. 動かしてみる まず、適当に設定されたカーネルが必要です。IP マスカレードと IP オート フォワーディングの両方に対するサポートが完全に組み込まれてコンパイルさ れている必要があります。IP オートフォワーディングは、2.0.30 以降のカー ネルの設定オプションとして提供されます。それ以前のカーネルは、パッチを 当てる必要があります。IP オートフォワーディングに関しては、Linux IP Masquerade Resource を参照してください。 次に、最新バージョンの ip_masq_cuseeme.c を持ってくる必要があります。 最新バージョンは匿名 ftp によっ て、ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c から入手可能 です。このモジュールはまた、カーネル 2.0.31 に組み込まれる予定です。カ ーネル中のバージョンをこの新しいバージョンで置き換えてくださ い。ip_masq_cuseeme.c は通常 Linux ソースツリーの net/ipv4 にありま す。このモジュールをコンパイルし、インストールしてください。 そして、UDP ポート 7648-7649 の IP オートフォワーディングを、以下のよ うに設定してください。 ipautofw -A -r udp 7648 7649 -c udp 7648 -u または ipautofw -A -r udp 7648 7649 -h www.xxx.yyy.zzz 最初の形式は、最後に呼び出しを行なったワークステーションが、ポート 7648 (Cu-SeeMe のプライマリポート) を使用できるようにします。2番目の形 式による ipautofw の起動は、Cu-SeeMe の呼び出しを www.xxx.yyy.zzz だけ に許します。固定的にワークステーションの IP アドレスを指定する必要がな いという柔軟性があるため、私は最初の形式を好んで使います。しかしこの形 式の場合、ワークステーションが外部からの呼び出しを受け付けるためにはあ らかじめ外部への呼び出しを行なっておかなければいけません。 どちらの形式も、クライアントマシンの UDP ポート 7648-7649 を、外部の世 界に開放することになります。これはセキュリティに重大な問題をもたらすも のではありませんが、必要な用心を怠らないことは必要です。 最後に、以下のようにして新しい ip_masq_cuseeme モジュールをロードしま す。 modprobe ip_masq_cuseeme さあ、これで LAN 上のマスカレードされたマシンから CU-SeeMe を起動し て、外部のリフレクタあるいは別の CU-SeeMe ユーザと接続することが可能な はずです。外部からの呼び出しも受け付けられるはずです。その際、外部から はマスカレードされたワークステーションではなく、Linux ゲートウェイの IP アドレスを使用しなければならないことに注意してください。 4.8.3. 制限事項/警告 4.8.3.1. パスワードによって保護されたリフレクタ だめ。不可能。だめなんだってば。 White Pine はソース IP アドレス (クラ イアントプログラムによって計算される) を使って、送信の前にパスワードを 暗号化します。アドレスを書き換える必要があるため、リフレクタは暗号を解 読するのに間違ったソース IP を使用してしまい、結果として不正なパスワー ドが得られてしまいます。この問題は、 (私が提案したように) White Pine がパスワードの暗号化方式を変更するか、彼らがパスワード暗号化ルーチンを 公開して私が ip_masq_cuseeme に変更を加えられるようにすることによって のみ解決可能です。2番目の方法が実現する可能性はゼロに近いので、私はす べての読者が White Pine にコンタクトして、最初の方法を提案することを期 待しています。このページへのトラフィックは比較的高いので、この問題を White Pine の優先度リストの上の方に載せるのに必要なだけの電子メールを 喚起できるのではないかと期待しています。 この問題に私の注意を向けてくれた Thomas Griwenka 氏に感謝します。 4.8.3.2. リフレクタを動かす ip_masq_cuseeme や、ポート 7648 に対する IP オートフォワーディングが動 作している同じマシンでリフレクタを動かしてはいけません。両者ともポート 7648 を必要とするので、全然動かないでしょう。リフレクタを別のインター ネットリーチャブルなホストで動かすか、リフレクタを動かす前に CU-SeeMe クライアントサポートを外してください。 4.8.3.3. 複数の CU-SeeMe ユーザ 現時点では、LAN 上で複数のユーザが同時に CU-SeeMe を使うことはできませ ん。これは主に CU-SeeMe がポート 7648 を使うことに頑固に固執しているこ とによるものです。このため、今は1台の LAN ワークステーションにしか (容 易には) リダイレクトできないのです。 先に書いたように ipautofw を -c (control port) で起動することによっ て、 CU-SeeMe が使えるワークステーションアドレスを固定的に指定する必要 がなくなります。コントロールポート 7648 を使って送信した最初のワークス テーションが、7648-7649 上のトラフィックを受信する権利を得るのです。こ のワークステーションがポート 7648 を使わなくなって5分たつと、別のワー クステーションが CU-SeeMe を使えるようになります。 4.8.3.4. CU-SeeMe の設定に関するヘルプ コメントや質問は、mikey@swampgas.com までお願いします。ご希望なら、CU- SeeMe で呼び出し てもらっても結構で す。 4.9. その他のツール このセクションは近日中にアップデートし、ipportfw や masqadmin といった IP マスカレードに関連するツールを取り扱う予定です。 5. よくある質問 (FAQ) ここに載せるのにふさわしい質問を思いついたら、ambrose@writeme.com と dranch@trinnet.net に送ってください。質問と、適切な回答を、分かりやす く書いて頂ければ幸いです。 5.1. IP マスカレードは、動的に割り当てられた IP でもちゃんと動きます か? はい、ISP から (DHCP サーバによって) 動的に割り当てられた IP でもちゃ んと動きます。インターネット上で有効な IP アドレスでさえあれば、動くは ずです。もちろん静的に割り当てられた IP も大丈夫です。 5.2. ケーブルモデムや DSL、衛星リンクなどでインターネットに接続し、IP マスカレードを使うことができますか? もちろんです。Linux がそれらのネットワークインターフェースをサポートし てさえいれば、動くはずです。 5.3. IP マスカレードでは、どんなアプリケーションがサポートされていま すか? 「動作するアプリケーション」のリストを更新し続けるのは非常に大変です が、通常のインターネットアプリケーションの大部分はサポートされていま す。例えばブラウザ (Netscape、MSIE など)、ftp (WS_FTP など)、Real Audio、telnet、SSH、POP3 (Pine、Outlook などによるメールの受信)、SMTP (メールの送信) などです。 例えばビデオ会議ソフトウェアなど、複雑なプロトコルや特殊なコネクション 方法を使用しているアプリケーションは、特別な補助ツールが必要です。 詳細については、Lee Nevo 氏の applications that work thru Linux IP masquerading をご覧ください。 5.4. Redhat、Debian、Slackware などで IP マスカレードを動かすにはどう すればいいのでしょう? どんな Linux ディストリビューションであっても、この HOWTO に説明してあ る IP マスカレードの設定方法が使えるはずです。ディストリビューションに よってはより容易に設定できる GUI や特別な設定ファイルが用意されている かもしれません。この HOWTO では、できるだけ一般的な方法を記述するよう にしています。 5.5. カーネルを 2.2.x にアップグレードしたら、IP マスカレードが動かな くなりました。なぜでしょう? IP マスカレードを行なっている Linux マシンが、既にインターネットと LAN に正しく接続されているのであれば、以下の項目をチェックしてみてくださ い。 o 必要な機能とモジュールがコンパイルされ、ロードされていることを確認 してください。この HOWTO の 3章に、詳しい説明があります。 o /usr/src/linux/Documentation/Changes をチェックして、最低限必要な ネットワーク関係のツールがインストールされていることを確かめてくだ さい。 o IP フォワーディングが有効になっていることを確かめましょう。 echo "1" > /proc/sys/net/ipv4/ip_forwarding としてみてください。 o IP マスカレードとファイヤウォールのルールを設定するために は、ipchains を使う必要が あります。 o すべての設定をもう一度やり直してみましょう!多くの場合、原因はコマ ンドの打ち間違いや単純なミスの見逃しです。 5.6. カーネルを 2.0.30 (あるいはそれ以降) にアップグレードしたら、IP マスカレードが動かなくなりました。なぜでしょう? IP マスカレードを行なっている Linux マシンが、既にインターネットと LAN に正しく接続されているのであれば、以下の項目をチェックしてみてくださ い。 o 必要な機能とモジュールがコンパイルされ、ロードされていることを確認 してください。この HOWTO の 3章に、詳しい説明があります。 o /usr/src/linux/Documentation/Changes をチェックして、最低限必要な ネットワーク関係のツールがインストールされていることを確かめてくだ さい。 o IP フォワーディングが有効になっていることを確かめましょう。 echo "1" > /proc/sys/net/ipv4/ip_forward としてみてください。 o IP マスカレードとファイヤウォールのルールを設定するために は、ipfwadm を使う必要があります。ipchains を 使うためには、2.0.x のカーネルにパッチを当てる必要があります。 o すべての設定をもう一度やり直してみましょう!コマンドの打ち間違いや 単純なミスの見逃しが原因であることがほとんどです。 5.7. IP マスカレードが動きません! Windows プラットフォームでは同じよ うなことはできないのでしょうか? 最低限のハードウェアで動作する、フリーで信頼性があり、高性能な解決法を あきらめて、重いハードウェアを必要とする、性能の低い、その上信頼性もな い方法のためにお金を払うのですか? (これは私の個人的な意見です。もちろ ん私も実際にこのような経験をしたことがあります ;-) いいでしょう、あなたが必要だと言うならしかたがありません。 MS プロキシ サーバ や Wingate をキーワードにしてウェブを検索してみてみるか、 www.winfiles.com を探してみてください。私が教えたとは言わないでくださ いね。 5.8. 設定をすべてチェックしましたが、それでもまだ IP マスカレードが動 きません。どうすればいいでしょうか? o 落ち着いて。お茶を一杯飲んで休息し、それから以下を試してみてくださ い。 o IP マスカレードメーリングリストのアーカイブIP Masquerade Mailing List Archive をチェックしま しょう。たいていの質問の答えはここで見つかります。 o IP マスカレードメーリングリストに質問を投稿してみましょう。その方法 は次の FAQ に書いてあります。ただし、メーリングリストのアーカイブで 答が見つからなかった場合だけにしてください。 o 関連する Linux ネットワーキングのニュースグループに質問を投稿してみ ましょう。 o ambrose@writeme.com や dranch@trinnet.net にメールを送ってみましょ う。両方にメールする方が、返事をもらえる確率が高くなります。 David は割とまめに返事を書いているようですが、私自身のレスポンスタイムに 関してはコメントしたくありません。 o もう一度設定をチェックしましょう。:-) 5.9. IP マスカレードメーリングリストに参加するにはどうすればいいので すか? masq-subscribe@indyramp.com にメールを送ってください。 メールの題名と内容は無視されます。メーリングリストに参加すると、メーリ ングリストに投稿されたすべてのメッセージが届くようになります。ダイジェ スト形式は、サーバに登録されたアカウントあるいはアドレスからの投稿しか 受け付けられないことに注意してください。 コマンドの詳細については、masq-help@tori.indyramp.com に電子メールして ください。 5.10. IP マスカレードの開発に協力したいのですが、どうすればいいでしょ う? masq-dev-subscribe@tori.indyramp.com (ダイジェストフォーマットは masq- dev-digest-subscribe@tori.indyramp.com) にメールして Linux IP マスカレ ード開発者のメーリングリストに参加し、偉大な開発者たちに質問してくださ い。 そこでは IP マスカレードの開発と関連のない質問はしないでくださいね! 5.11. もっと IP マスカレードに関する情報が欲しいのですが、どこで得ら れるでしょう? より詳細な IP マスカレードに関する情報は、David と私が管理していた Linux IP Masquerade Resource で見つけられるで しょう。入手方法についてはセクション 6.2 を参照してください。 また、IP マスカレードメーリングリストを提供していた Indyramp Consulting による The Semi-Original Linux IP Masquerading Web Site も見てみてください。 5.12. この HOWTO を別の言語に翻訳したいのですが、どうすればいいでしょ う? すでに誰か別の人がその言語への翻訳を行なっていないか、確認してくださ い。翻訳状況のリストは Linux IP Masquerade Resource にあります。 ambrose@writeme.com に電子メールを送ってください。この HOWTO の最新バ ージョンの SGML ソースをお送りします。 5.13. この HOWTO の内容は古いですね、ちゃんと更新していますか? …に 関する情報を追加してもらえますか? この HOWTO を改善する予定はあります か? はい、この HOWTO は更新され続けています。私が悪いんです。 2つの仕事を かけもちするのに忙し過ぎて、あまり時間が取れないんです。ごめんなさい。 でも、この HOWTO の管理者として David Ranch が参加してくれるようになっ たので、事態は改善されるでしょう。 この HOWTO に追加すべきことがあったら、私と David に電子メールを送って ください。その情報を提供してもらえれば、なおありがたいです。私と David は、その情報がこの HOWTO にふさわしいものであれば追加します。ご協力に 感謝します。 この HOWTO を改善するために、いろいろと新しいことを考えています。 IP マスカレードに関連した異なるネットワーク設定を取り扱うケーススタディだ とか、セキュリティに関する記述の追加とか、 ipchains の使い方とか、 ipfwadm/ipchains のルールセット例とか、 FAQ の追加とか、 masqadmin の ようなプロトコルやポートのフォワーディングユーティリティの紹介とかで す。手伝って頂ける方は歓迎します。 5.14. IP マスカレードが動きました。素晴らしい! 感謝の気持ちをどう やって示せばいいですか? 開発者に感謝して、彼らが費やした時間と労力を尊重しましょう。我々に電子 メールして、あなたがどれだけ幸せであるか教えてください。他の人にも Linux を紹介して、問題がある時には助けてあげましょう。 6. 各種の情報 6.1. 有用な情報限 o IP マスカレードの設定については、IP Masquerade Resource page に十分な情報があります。 o IP masquerade mailing list archive には、メーリングリストに流れた 最近のメッセージがあります。 o カーネル 2.2.x と 2.0.x に関しては、Linux IP Masquerade mini HOWTO o 古いカーネルを使っている場合には、IP Masquerade HOWTO for kernel 1.2.x o IP masquerade FAQ には、一般的な情報があります。 o Linux IPCHAINS HOWTO と http://www.rustcorp.com/linux/ipchains/ には、 ipchains の使い方に関する情報が豊富です。ipchains のソースとバイナ リもあります。 o X/OS Ipfwadm page には、ipfwadm パッケージに関するソース、バイナリ、ドキュメントなどの情報がありま す。 o Lee nevo 氏による applications that work thru Linux IP masquerading は、アプリケーションを IP マス カレードで動作させるためのコツや秘訣を提供しています。 o LDP Network Administrator's Guide は、ネットワークを立 ち上げようとする初心者のための必読書です。 Trinity OS Doc は、Linux ネットワーキングに関する総合的なガイドです。 Linux NET-3 HOWTO にも、Linux ネットワーキングに関する有益な情報がたくさんあります。 o Linux ISP Hookup HOWTO および Linux PPP HOWTO では、Linux ホス トをインターネットに接続するための情報が得られます。 o Linux Ethernet-Howto は、イーサネットで LAN を構築するための良い情報源です。 o Linux Firewalling and Proxy Server HOWTO も参考になる かもしれません。 o Linux Kernel HOWTO は、カーネルをコンパイルする手順を教えてくれます。 o o Linux HOWTOs には、Kernel HOWTO などの HOWTO があります。 o USENET ニュースグループに記事を投稿するには: comp.os.linux.networking o 訳注:Linux JF (Japanese FAQ) Project には、上にあげた HOWTO や FAQ の日本語訳があります。 6.2. Linux IP Masquerade Resource Linux IP Masquerade Resource は、Linux IP マ スカレード関連の情報を集めたウェブサイトで、やはり David Ranch と私が 管理しています。IP マスカレード関連の最新の情報は、たいていここにあり ます。この HOWTO には載っていない情報もあるかもしれません。 Linux IP Masquerade Resource は、次の場所にあります。 o http://ipmasq.cjb.net/ はプライマリサイト で、http://www.tor.shaw.wave.ca/~ambrose/ へリダイレクトされます。 o http://ipmasq2.cjb.net/ はセカンダリサイト で、http://www.geocities.com/SiliconValley/Heights/2288/ へリダイレ クトされます。 6.3. 謝辞 o David Ranch, dranch@trinnet.net この HOWTO や Linux IP マスカレードリソースページの保守をはじめ、こ こには書き切れないほど多くのことを手伝ってくれました o Michael Owings, mikey@swampgas.com CU-SeeMe and Linux IP-Masquerade Teeny How-To のセクションを提供し てくれたことに対して o Gabriel Beitler, gbeitler@aciscorp.com セクション 3.3.8 (Novel の設定) を提供してくれたことに対して o Ed Doolittle, dolittle@math.toronto.edu ipfwadm コマンドでセキュリティを強化するため -V オプションを提案し てくれたことに対して o Matthew Driver, mdriver@cfmeu.asn.au この HOWTO への広範囲にわたる協力と、セクション 3.3.1 (Windows 95 の設定)を提供してくれたことに対して o Ken Eves, ken@eves.com この HOWTO に貴重な情報を提供してくれた FAQ の作者として o Ed. Lott, edlott@neosoft.com テスト済みのシステムとソフトウェアの長いリストを作成してくれたこと に対して o Nigel Metheringham, Nigel.Metheringham@theplanet.net 彼が IP パケットフィルタリングと IP マスカレードに関する HOWTO を提 供してくれたおかげで、この HOWTO はより良く、技術的に深みを持った文 書になりました セクション 4.1、4.2、その他 o Keith Owens, kaos@ocs.com.au セキュリティホールを回避する ipfwadm -deny オプションの修正と、IP マスカレードを介した ping の現状を説明してくれたことに対して o Rob Pelkey, rpelkey@abacus.bates.edu セクション 3.3.6 と 3.3.7 (MacTCP と Open Transport の設定) を提供 してくれたことに対して o Harish Pillay, h.pillay@ieee.org セクション 4.5 (diald を使用したダイヤルオンデマンド) を提供してく れたことに対して o Mark Purcell, purcell@rmcs.cranfield.ac.uk セクション 4.6 (IPautofw) を提供してくれたことに対して o Ueli Rutishauser, rutish@ibm.net セクション 3.3.9 (OS/2 Warp の設定) を提供してくれたことに対して o John B. (Brent) Williams, forerunner@mercury.net セクション 3.3.7 (Open Transport の設定) を提供してくれたことに対し て o Enrique Pessoa Xavier, enrique@labma.ufrj.br bootp の設定を提案してくれたことに対して o この素晴らしい IP マスカレードの開発者たちへ o Delian Delchev, delian@wfpa.acad.bg o Nigel Metheringham, Nigel.Metheringham@theplanet.net o Keith Owens, kaos@ocs.com.au o Jeanette Pauline Middelink, middelin@polyware.iaf.nl o David A. Ranch, trinity@value.net o Miquel van Smoorenburg, miquels@q.cistron.nl o Jos Vos, jos@xos.nl o Paul Russell, Paul.Russell@rustcorp.com.au o そして私がここに書き落としたかもしれない、さらに多くの人 々 (気がついた方は知らせてください) o メーリングリストにフィードバックや提案を送ってくれたすべてのユーザ ー、特にこの文書の間違いや、クライアントのサポート状況を報告してく れた人々 o ユーザの皆さんから送って頂いた情報で、この HOWTO に取り込まれていな いものがあることを、お詫びしたいと思います。送って頂いた提案やアイ ディアは多数にのぼりますが、単に検証のための時間が取れなかったり、 私に十分に理解できなかったなどの理由から、採用しなかったものもあり ます。私は、送って頂いたすべての情報をこの HOWTO に取り込むよう最善 を尽くしています。ご協力に感謝するとともに、私の状況を御理解頂けれ ば幸いです。 6.4. 参考文献 o Ken Eves 氏による IP マスカレード FAQ o Indyramp Consulting による IP マスカレードメーリングリストのアーカ イブ o X/OS による ipfwadm ページ o ネットワーク関連の Linux HOWTOs 各種