  Linux IP Masquerade HOWTO
  David Ranch, dranch@trinnet.net
  v1.95, November 14, 2000
  日本語訳: JF Project (jf@linux.or.jp)
  v1.0.0j  Jul. 12, 2001

  この文書には、Linux ホストで IP マスカレード機能を動作させる方法が詳し
  く述べられています。 IP マスカレードは、ネットワークアドレス変換ないし
  は NAT の一形態で、 Linux BOX に割り振った一つのインターネット IP アド
  レスを通じて、正式なインターネット IP アドレスを持たない、内部ネット
  ワーク上のコンピュータが、インターネットに接続できるようにします。
  ______________________________________________________________________

  目次

  1. はじめに
     1.1 IP マスカレードの概略
     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.3.x 及び 2.4.x で使うための必要条件
     2.8 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.1.3 Linux 2.3.x / 2.4.x カーネル
     3.2 プライベートネットワーク IP アドレスを内部 LAN に割り当てる
     3.3 IP フォワーディングポリシーを設定する
        3.3.1 Linux 2.2.x カーネル
        3.3.2 Linux 2.0.x カーネル

  4. マスカレード接続する他の内部マシンの設定
     4.1 Microsoft Windows 95 での設定
     4.2 Windows NT での設定
     4.3 Windows for Workgroup 3.11 での設定
     4.4 UNIX 系システムでの設定
     4.5 NCSA Telnet パッケージを使用した DOS の設定
     4.6 MacTCP の動作する MacOS ベースシステムでの設定
     4.7 Open Transport の動作する MacOS ベースシステムでの設定
     4.8 DNS を使用した Novell ネットワークでの設定
     4.9 OS/2 Warp での設定
     4.10 IBM AS/400 で稼働する OS/400 での設定
     4.11 その他のシステムでの設定

  5. IP マスカレードのテスト
     5.1 ローカル PC の接続テスト
     5.2 Linux の内部接続のテスト
     5.3 Linux の外部接続のテスト
     5.4 ローカル PC から Linux への接続テスト
     5.5 内部マスカレードの ICMP 転送のテスト
     5.6 マスカレードされた ICMP の外部転送のテスト
     5.7 DNS を使わないマスカレード機能のテスト
     5.8 DNS を使ったマスカレード機能のテスト
     5.9 DNS を使ったマスカレード機能の追加テスト
     5.10 その他の機能、性能に関する事項

  6. IP マスカレードに関連したその他の項目とソフトウエアサポート
     6.1 IP マスカレードに関係した問題
     6.2 外部から入ってくるサービス
     6.3 サポートしているクライアントソフトウエアとその他の設定情報
        6.3.1 IP マスカレードで動作するネットワーククライアント
        6.3.2 IP マスカレードで完全にはサポートされていないもの -
     6.4 より強力な IP ファイアウオール (IPFWADM) ルールセット
     6.5 IPCHAINS によるさらに強固な IP ファイアウオール・ルールセット
     6.6 複数の内部ネットワークへの IP マスカレード
     6.7 オンデマンド・ダイアルアップ接続での IP マスカレード
     6.8 IPPORTFW, IPMASQADM, IPAUTOFW, REDIR, UDPRED, 及びその他のポート転送ツール
        6.8.1 2.2.x 系カーネルでの、IPPORTFW サポートつき IPMASQADM
        6.8.2 2.0.x 系カーネルでの IPPORTFW
     6.9 CU-SeeMe と Linux の IP マスカレード
     6.10 ミラビリス社の ICQ
     6.11 ゲーマー向け - LooseUDP パッチ
  7. よくある質問 (FAQ)
     7.1 IP マスカレードをサポートしている Linux ディストリビューションはどれですか？
     7.2 IP マスカレードを使うための、ハードウェアに最低限必要な条件と 制限事項を教えてください。それでどんな性能が出ますか?
     7.3 rc.firewall コマンドを実行したら「コマンドが見つかりません」 (command not found) というエラーが発生しました。なぜでしょう?
     7.4 設定を全てチェックしましたが、未だ IP マスカレードを動作させる ことができません。どうしたらよいでしょうか?
     7.5 IP マスカレード・メーリングリストや IP マスカレード・開発者 メーリングリストに参加したり、そのアーカイブを見るにはどうすれば良いですか?
     7.6 IP マスカレードは、プロキシや NAT サービスとどう違うのでしょうか?
     7.7 GUI の ファイアーウォール作成管理ツールはありますか?
     7.8 IP マスカレードは動的に割り当てられた IP アドレスで動作しますか?
     7.9 ケーブル・モデム(双方向とモデム・リターンの両方)や、 DSL, 衛星リンク等を使用してインターネットに接続し、 IP マスカレードを 使うことができますか?
     7.10 Diald または PPPd のダイアルオンデマンド機能を IP マスカレードと 一緒に使えるでしょうか?
     7.11 IP マスカレードでは、どんなアプリケーションがサポートされていますか?
     7.12 どうやったら IP マスカレードを Redhat, Debian, Slackware 等で 稼働させることができますか?
     7.13 しばしば使用していないと TELNET 接続が切れるように見えます。 なぜでしょうか?
     7.14 インターネット接続をしようとしても、最初は接続できません。 もう一度やってみると、問題なく動作します。なぜでしょうか?
     7.15 ( MTU ) - IP マスカレードはうまく動作しているように見えます。 しかし、いくつかのサイトでは動作しません。 これは、通常 WWW と FTP で起こります。
        7.15.1 PPP リンクの MTU の変更 -
        7.15.2 古い UNIX のシリアルインターフェース -
        7.15.3 PPPoE ユーザ -
        7.15.4 Linux:
        7.15.5 MS Windows 95 -
        7.15.6 MS Windows 98 -
        7.15.7 MS Windows NT 4.x
        7.15.8 MS Windows 2000
     7.16 IP マスカレード FTP クライアントが動作しません。
     7.17 IP マスカレードが遅いように見えます。
     7.18 PORTFW を IP マスカレードで使っていますが、ラインが長い間待ち状態に なると切れてしまいます。
     7.19 IP マスカレードを動かすことができましたが、SYSLOG のログファイルに あらゆる種類の妙な通知やエラーを受け取っています。 IPFWADM や IPCHAINS のファイアウォールエラーをどう読めばよいでしょうか?
     7.20 インターネットユーザが直接に内部マスカレード・クライアントと連絡を 取ることができるように IP マスカレードを設定できますか?
     7.21 SYSLOG ファイルに "kernel: ip_masq_new(proto=UDP): no free ports." の メッセージがあります。 どうしたのでしょう?
     7.22 IPPORTFW を使おうとすると "ipfwadm: setsockopt failed: Protocol not available" というエラーが出ます。
     7.23 ( SAMBA ) - Microsoft ファイルとプリンタ共用 (File and Print Sharing) と Microsoft ドメインクライアントが IP マスカレードで動作しません。 Microsoft の SMB プロトコルを適切にサポートするには、 IP マスカレード・ モジュールが書かれる必要がありますが、3 つの実行可能な方法があります。 詳細は AURL CDATA http://support.microsoft.com/support/kb/articles/q172/2/27.aspANAME CDATA this Microsoft KnowledgeBase article(HTMLURL)HTMLURL を見てください。
     7.24 ( IDENT ) - IRC がマスカレード・クライアントの IRC ユーザでうまく 動作しません。 なぜでしょうか?
     7.25 ( DCC ) - mIRC の DCC 送信が動作しません。
     7.26 ( IP Aliasing ) - IP マスカレードは1枚だけのイーサネット ネットワークカードで動作しますか?
     7.27 ( MULTI-LAN ) - 私は 2 つのマスカレードされた LANを持っていますが、それらは互いに通信できません。
     7.28 ( SHAPING ) - 私は、特定のタイプのトラフィックの速度を制限したいと思います。
     7.29 ( ACCOUNTING ) -  私は誰がネットワークを使用しているかについて管理する必要があります。
     7.30 ( MULTIPLE IPs ) -  いくつかの外部 IP アドレスを使って、いくつかの内部マシンへ PORTFW したいのですがどのようにやるのでしょうか。
     7.31 私はマスカレードされた接続を見る為、 NETSTAT コマンドを 使おうとしましたが、これが動作してくれません。
     7.32 ( VPNs ) - Microsoft PPTP (GRE tunnels) または IPSEC (Linux SWAN) トンネルを IP マスカレード を通して使いたいのですが。
     7.33 XYZ ネットワーク・ゲームを IP マスカレード を通して使いたいのですが、 うまくいきません。助けて!
     7.34 IP マスカレード は暫くの間はうまく動作します。 しかし、その後、動作しなくなります。 再起動すると暫くの間これが解決されたように見えます。 なぜでしょうか?
     7.35 ネットワーク内部のマスカレードされているコンピュータが SMTP や POP-3 メールを送ってくれません!
     7.36 ( IPROUTE2 ) - 私は、外に出るための異なる外部 IP アドレスを、異なる 内部マスカレードネットワークの各々に割り当てる必要があります。
     7.37 なぜ新しい 2.1.x 及び 2.2.x カーネルは、IPFWADM の代わりに IPCHAINS を使うのですか?
     7.38 カーネルを 2.2.x にアップグレードしたら、 IP マスカレードが 動かなくなりました。なぜでしょう?
     7.39 カーネルを 2.0.38 (あるいはそれ以降) にアップグレードしたら、 IP マスカレードが動かなくなりました。なぜでしょう?
     7.40 EQL 接続と IP マスカレードを使たいのですが。
     7.41 IP マスカレードが動作してくれません! Windows プラットフォーム上での選択肢はありますか?
     7.42 IPマスカレード開発に協力したいのですが、何ができますか?
     7.43 IP マスカレードの情報がもっと欲しいのですが。
     7.44 この HOWTO を別の言語に翻訳したいのですが、どうすればいいでしょう?
     7.45 この HOWTO は古くなっているように見えますが、まだこれを保守し続けて いますか? ...に関する情報を追加してもらえますか? この HOWTO を改善する予定はありますか?
     7.46 IPマスカレードが動作してくれました。 これは素晴らしい! 私はあなたがたに感謝したいのですが、何ができるでしょうか?

  8. その他の情報
     8.1 有用な情報源
     8.2 Linux IP マスカレードの情報源
     8.3 謝辞
     8.4 参考文献
     8.5 変更点

  9. 日本語訳について

  ______________________________________________________________________

  1.  はじめに

  1.1.  IP マスカレードの概略

  この文書では、Linux ホストで IP マスカレードを行う方法について説明しま
  す。 IP マスカレードはネットワークアドレス変換、すなわち NAT の一種
  で、これを使うと内部ネットワークのコンピュータが複数の公式なインター
  ネットアドレスを持たなくても Linux BOX のただ一つのインターネット IP
  アドレスを使ってインターネットに接続できるようになります。これらマシン
  と Linux ホストとは、イーサネット、TokenRing, FDDI 等の LAN を用いる方
  法だけでなく、ダイヤルアップ ppp や SLIP リンク等、色々な形態で接続す
  ることが可能です。この文書では主に、最も一般的なイーサネット接続につい
  て説明します。

       この文書は安定版カーネル 2.0.38 以降または 2.2.1 以降を IBM
       互換 PC で使っているユーザー向けに書かれています。カーネル
       1.2.x, 1.3.x などの古いバージョンや 2.1.x は扱っていません。
       またカーネルのバージョンによっては動作しないものあるかも知れ
       ません。 IP マスカレードを使う前に、安定版カーネルのどれか一
       つに更新しておいてください。新しい 2.3 や 2.4 カーネルの
       NetFilter コードは未だ扱っていませんが、参考の為に URL を記
       載しています。 NetFilter の機能が固まったら、最新コードでの
       使い方を HOWTO の中で取り扱っていきます。

       もし、 IP マスカレードをマッキントッシュで使おうとしているな
       ら、 Taro Fukunaga, tarozax@earthlink.net に E メールを送っ
       て、彼が書いたこの HOWTO の Mklinux 用バージョンのコピーをも
       らってください。

  1.2.  序文、フィードバックとクレジット

  私は、 Linux カーネルに IP マスカレードを設定することは、新しいユーザ
  にとってかなり厄介なことだということに気付きました (カーネル 1.2.x 以
  前の頃のことです)。 FAQ やメーリングリストが存在しているにも拘らず、こ
  の点を専門に解説した文書はなかったのです。また、メーリングリストには、
  そのような HOWTO を求める声が何度か寄せられていました。そこで私は、新
  しいユーザーのための手がかりとして、またもっと知識のあるユーザーに文書
  を書いてもらうための叩き台として、この文書を書くことを決心したのです。
  この文書の出来が余り良くないと思われたら、遠慮なく私にそう言ってくださ
  い。改善していきたいと思います。

  この文書は、 Ken Eves 氏による FAQ と、IP マスカレードメーリングリスト
  に流れた沢山の有益なメッセージに多くを負っています。また私が IP マスカ
  レードを設定し、最終的にはこの文書を書くきっかけとなったメッセージを
  メーリングリストで送ってくれた Matthew Driver 氏には、特別な感謝の意を
  表したいと思います。最近、David Ranch がこの HOWTO をできる限り完全に
  するためにかなりの部分を追加し、書き直しました。

  情報が間違っていたり、抜け落ちている場合には、遠慮なくメールを
  ambrose@writeme.com 及び dranch@trinnet.net に送ってください。あなたの
  貴重なフィードバックは、きっとこの HOWTO に反映されます!

  【訳注: 日本語訳に関するコメントは、 Linux JF Project <jf@linux.or.jp>
  迄お願いします。】

  この HOWTO は、できるだけ短時間で IP マスカレードを使えるようにするた
  めの 簡単なガイドとして書かれたものです。 David はテクニカルライターで
  はありませんから、 この文書中の情報は一般的でなかったり、客観性に欠け
  ていることもあるでしょう。この HOWTO や IP マスカレードに関する最新の
  ニュースや情報は、我々が精力的にメンテナンスしている IP マスカレードの
  情報源 <http://ipmasq.cjb.net/> web ページにあります。 IP マスカレード
  に関する技術的な質問がある場合には、David にメールを送らずに IP マスカ
  レードメーリングリストに参加してください。マスカレードに関する問題の殆
  どはマスカレードユーザに共通の問題であり、メーリングリスト上の誰かが簡
  単に解決してくれるでしょう。それにメーリングリストからの回答の方が、
  David からの回答よりずっと早いです。

  この文書の最新バージョンは、以下のサイトにあります。 HTML とポストスク
  リプトのバージョンもあります。

  o  http://ipmasq.cjb.net/ - IP マスカレードの情報源

  o  http://ipmasq2.cjb.net/ - IP マスカレードの情報源・ミラーサイト

  o  The Linux Documentation Project

  o  Dranch's Linux page

  o  他のローカルミラーサイトとしてIP マスカレードの情報源・ミラーサイト
     の一覧 <http://ipmasq.cjb.net/index.html#mirror>も参照してくださ
     い。

  1.3.  Copyright & Disclaimer

  【訳注: この部分は原文をそのまま示します。】

  This document is copyright(c) 2000 David Ranch and it is a FREE
  document. You may redistribute it under the terms of the GNU General
  Public License.

  The information herein this document is, to the best of David's
  knowledge, correct.  However, the Linux IP Masquerade feature is
  written by humans and thus, there is the chance that mistakes, bugs,
  etc. might happen from time to time.

  No person, group, or other body is responsible for any damage on your
  computer(s) and any other losses by using the information on this
  document.  i.e.

       THE AUTHORS AND ALL MAINTAINERS ARE NOT RESPONSIBLE FOR ANY
       DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMA-
       TION IN THIS DOCUMENT.

  さあ準備ができたので、本題に入りましょう。

  2.  予備知識

  2.1.  IP マスカレードとは

  IP マスカレードは、 Linux におけるネットワーキング機能であり、多くの商
  用のファイアウォールやネットワークルータに見受けられる 1対多の NAT
  (Network Address Translation: ネットワークアドレス変換) と似ています。
  例として、 Linux ホストが PPP やイーサネット等にてインターネットに接続
  されているとしましょう。 IP マスカレードの特徴は Linux ボックスに (PPP
  やイーサネット等にて) 接続される "内部の" コンピュータにも等しくイン
  ターネットを利用できるようにします。 Linux の IP マスカレーディング
  は、内部マシンが公式に割り当てられた IP アドレスを持たなくても、内部マ
  シンがインターネットに接続できるようにします。

  マスカレードは、 マスカレードゲートウェイを経由して、全てのマシンを隠
  してインターネットにアクセスできるようにします。インターネット上の他の
  マシンからは、発生する全てのトラフィックはあたかも IP マスカレード
  Linux サーバ自身からのものであるように見えます。その追加機能に加えて、
  IP マスカレードは非常に安全なネットワーキング環境を作るための土台を提
  供します。しっかり作られたファイアウォールを伴えば、しっかり設定された
  マスカレードシステムと内部の LAN のセキュリティを壊すことはかなり難し
  くなるでしょう。

  マスカレードが 1対1 の NAT やプロキシによる問題解決方法とどのように違
  うのか、もっと知りたい方は、 FAQ の章 の ``IP マスカレードは、プロキシ
  や NAT サービスとどう違うのでしょうか?''  をご覧ください。

  2.2.  現在の状態

  IP マスカレードは何年もの間使われ続けており、Linux カーネル 2.2.x の段
  階にある現在、とても成熟した状態にあります。 Linux カーネル 1.3.x か
  ら、MASQ サポートが組み込まれています。今日、多くの個人や商業ベースの
  ビジネスにおいて使われ、優秀な結果をおさめています。

  Web ブラウジング、 TELNET, FTP, PING, TRACEROUTE 等の一般的なネット
  ワークの利用は、 IP マスカレード上でうまく動作します。 FTP, IRC とリア
  ルオーディオ (Real Audio) のような他のコミュニケーションは適切な IP
  MASQ モジュールをロードすればうまく動作します。ストリーミングオーディ
  オのような他のネットワークに特有のプログラム ( MP3, True Speech など)
  も同様に動作します。メーリングリストの何人かの優秀なユーザはビデオ会議
  ソフトウェアにおいても良い結果を出しました。

  内部と外部のイーサネットネットワークの間を 1 つだけのネットワークカー
  ド (NIC) にて IP マスカレードを動作させることはお薦めできません。詳細
  については FAQ の章の ``IP マスカレードは1枚だけのイーサネットネット
  ワークカードで動作しますか?''  にある解説をご覧ください。

  ともかく、より完全なサポート済みソフトウェアの一覧は ``サポートしてい
  るクライアントソフトウエアとその他の設定情報'' の章をご覧になってくだ
  さい。

  IP マスカレードは、他の様々な異なる OS やハードウェアプラットフォーム
  にて稼働する 'クライアントマシン' に対し、サーバとして良好に動作しま
  す。

  以下に内部の MASQ されたシステム上での成功例を示します -

  o  Unix:  Sun Solaris, *BSD, Linux, Digital UNIX, 等.

  o  Microsoft Windows 2000, NT (3.x と 4.x), 95/98/ME, Windows for
     Workgroups (TCP/IP パッケージを含む)

  o  IBM OS/2

  o  MacTCP 或は Open Transport のいずれかが稼働する Apple Macintosh
     MacOS マシン

  o  パケットドライバと NCSA Telnet パッケージを含む DOS ベースのシステ
     ム

  o  VAXen

  o  Linux と NT が稼働する Compaq/Digital Alpha

  o  AmiTCP 或は AS225-stack を含む Amiga コンピュータ

  このリストはまだまだ続きます。要するに、 TCP/IP を喋れる OS プラット
  フォームであれば、 IP マスカレードと一緒に使えるはずなのです。

  2.3.  IP マスカレードが有用な場合

  o  インターネットに接続された Linux ホストがあり、

  o  その Linux box にローカルサブネット上で TCP/IP 接続されたコンピュー
     タがあるか、

  o  Linux ホストにモデムが接続されていて、他のコンピュータに接続する
     PPP 或は SLIP サーバとして動作し、

  o  それら 他の マシンは公式或は公共に割り当てられた IP アドレスを持た
     ず (すなわち、プライベート TCP/IP 番号が割り当てられている)、

  o  そして勿論、あなたが追加の公式/公共の TCP/IP アドレスを ISP から入
     手し、 Linux をルータとして設定するか或は外部ルータを購入する為の余
     分なお金を使うことなく、それら 他の マシンがインターネットに接続で
     きるようにしたいのならば。

  2.4.  IP マスカレードが無用な場合

  o  インターネットに接続されているマシンがスタンドアロンの Linux ホスト
     の場合。 (しかしながらファイアウォールを構築するのは良い考えです)
     あるいは、

  o  既に 【訳注: サーバだけでなく】 クライアントマシンの為にも公式な IP
     アドレスを複数割り当てている場合、IP マスカレードは必要ありません。

  o  そしてもちろん、 Linux を使って 'タダ乗り' する考えが好きでなく、全
     く同じことをする高価な商用ツールを使うことをより快適だと感じる場
     合。

  2.5.  どのようにして IP マスカレードは動作するか

  Ken Eves 氏によるオリジナルの IP マスカレード FAQ から引用します -

  これはもっとも簡単な構成図です -

     SLIP/PPP         +------------+                         +-------------+
     ISP へ           |  Linux     |         SLIP/PPP        | Anybox      |
    <---------- modem1|    #1      |modem2 ----------- modem3|             |
      111.222.121.212 |            |           192.168.0.100 |             |
                      +------------+                         +-------------+

  上図において、 IP_MASQUERADING を伴う Linux box が Linux #1 として
  インストールされており、 modem1 を使った SLIP 或は PPP 接続にて、
  インターネットに接続されています。
  このマシンにはパブリック IP アドレスとして 111.222.121.212 が割り当て
  られています。
  更に発信側のダイヤルインと SLIP 或は PPP 接続を受け入れるための
  modem2 が接続されています。
  第2 のシステム ( Linux が稼働している必要はありません) は
  Linux #1 box へ発呼し、 SLIP 或は PPP 接続を開始します。
  このマシンはインターネットからパブリックな IP アドレスが
  *割り当てられません*ので、プライベートアドレスの 192.168.0.100 を
  用います。(下記参照。)

  マスカレードとルーティングの設定が適切であれば、マシン "Anybox" は
  あたかもインターネットに直接接続されたかのように振る舞うことができます
  (いくつかの例外はありますが)。

  Pauline Middelink 氏からの引用 -

  Linux #1 box は "ANYBOX" マシンのゲートウェイとして設定されていなければ
  ならないことを忘れてはなりません。 (ここで、それがデフォルトルートなのか、
  或は単なるサブネットであるのかは問題ではありません。)

  もし "ANYBOX" がそのようにできないのであれば、 Linux マシンは全ての
  ルーティングされたアドレスに対して代理 arp をサポートするよう
  設定されるべきです。

  けれども、代理 arp のセットアップと設定はこの文書の扱う範囲外です。

  次にあげるのは comp.os.linux.networking からの過去の投稿からの
  引用で、上記例に合致するように名前を書き換え、編集したものです -

     o ANYBOX に Linux マシンがゲートウェイだと教えておきます。
     o マシン ANYBOX に、 PPP 或は SLIP 接続される Linux box が
       ゲートウェイであることを教えておきます。
     o ANYBOX から Linux box にパケットが 届いた時、 Linux box は
       パケットに対して新しい TCP/IP ソースポート番号を割り当てて、
       パケットヘッダに自分の IP アドレスを書き込んで、元の IP
       アドレスを保存しておきます。
       MASQ サーバはこうして修正したパケットを SLIP/PPP
       インターフェースを通じてインターネットへ送信します。
     o パケットがインターネット から Linux box に帰って来たら、
       Linux はポート番号が先に割り当てたものの一つであるか調べます。
       もしそうなら、 MASQ サーバは元のポートと IP アドレスを得て、
       戻って来たパケットヘッダにそれを復元し、そのパケットを
       ANYBOX へ送ります。
     o パケットを送られたホストは、その違いに全く気付かないでしょう。

  もう一つの IP マスカレーディングの例 -

  典型的な例を下図に示します -

      +----------+
      |          |  イーサネット
      | A-box    |::::::
      |          |.2   : 192.168.0.x
      +----------+     :
                       :      +----------+   PPP
      +----------+     :   .1 |  Linux   |   link
      |          |     :::::::| Masq-Gate|:::::::::::::::::::// インターネット
      | B-box    |::::::      |          |  111.222.121.212
      |          |.3   :      +----------+
      +----------+     :      (マスカレード
                       :       ゲートウェイ)
      +----------+     :
      |          |     :
      | C-box    |::::::
      |          |.4
      +----------+

      |                       |          |
      | <-内部ネットワーク--> |          | <- 外部ネットワーク ---->
      |                       |          |

  この例では、4台のコンピュータシステムが接続されています。またおそらく
  その他に、図のもっと右側にインターネットへの PPP 接続を提供するホスト
  が、そしてさらにその右側にはあなたが情報をやり取りしたいと思うインター
  ネット上のリモートホストが存在することでしょう。 Linux システム masq-
  gate は IP マスカレードを行うゲートウェイで、マシン A-box、B-box 及び
  C-box から構成される内部ネットワークからインターネットへの接続を行いま
  す。内部ネットワークは RFC-1918 にて割り当てられた幾つかのプライベート
  ネットワークアドレスの一つ (この例では 192.168.0.0) を使います。 Linux
  box は TCP/IP アドレス 192.168.0.1 を持ち、その他のホストは以下のアド
  レスを持っています -

  o  A-Box: 192.168.0.2

  o  B-Box: 192.168.0.3

  o  C-Box: 192.168.0.4

  3台のマシン A-box 、B-box 及び C-boxは TCP/IP を話すことができればどん
  なオペレーティングシステムが動作していても構いません。 OS は Windows
  95 、 Macintosh MacTCP 或は OpenTransport 或は別の Linux box など、イ
  ンターネット上の他のマシンに接続できるものです。動作中、マスカレーディ
  ングシステム或は MASQ-gate はこれら内部接続の全てを masq-gate 自身から
  発生するように見えるように変換します。次にマスカレードは、マスカレード
  された接続へ戻ってくるデータが中継されて、発信元のシステムへ戻されるよ
  うに処理します。これにより、内部ネットワーク上のシステムからはインター
  ネットへの直接経路があるように見え、データがマスカレードされていること
  は意識しません。これを "透過的な" 接続と呼びます。

  注意 - 以下に示すトピックの詳細については ``よくある質問 (FAQ)'' をご
  覧ください -

  o  NAT, MASQ とプロキシサーバとの相違点

  o  パケットファイアウォールの動作

  2.6.  IP マスカレードを Linux 2.2.x で使うための必要条件

       ** 最新の情報については IP マスカレードの情報源
       <http://ipmasq.cjb.net/> を参照してください。 **

  o  カーネル 2.2.x ソースは http://www.kernel.org/ から入手可能です。
     注意 #1 - Linux 2.2.x カーネルの 2.2.16 以前のバージョンは TCP 接続
     においてルート権限が搾取される弱点があり、 2.2.11 以前のバージョン
     には IPCHAINS のフラグメンテーションにバグがあります。このため、こ
     れらのバージョンで強力な IPCHAINS のルールセットを動作させる人は、
     攻撃に対して無防備です。カーネルを修正済みバージョンへアップグレー
     ドしてください。

     注意 #2 - Redhat 5.2 のような、多くのより新しい ``マスカレードサ
     ポート済みディストリビューション'' は、 Linux 2.2.x に対応していま
     せん。 DHCP, NetUtils 等のツールはアップグレードの必要があります。
     詳細はこの HOWTO にあります。

  o  ロード可能なカーネルモジュール、好ましくは 2.1.121 以降。
     http://www.pi.se/blox/modutils/index.html 或は
     ftp://ftp.ocs.com.au/pub/modutils/ から入手可能です。

  o  Linux NET-3-4 HOWTO
     <http://www.linuxdoc.org/HOWTO/NET3-4-HOWTO.html> 及び Network
     Administrator's Guide <http://www.linuxdoc.org/LDP/nag/nag.html>で
     扱われているTCP/IP ネットワーク 或は LAN
     TrinityOS <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS> のドキュメントも調べておいてください。
     TrinityOS は Linux ネットワーキングにおけるとても広範囲なガイドで
     す。 IP マスカレード、セキュリティ、 DNS, DHCP, Sendmail, PPP,
     Diald, NFS, IPSEC ベースの VPN, またパフォーマンスの章が少々挙げら
     れます。 50 以上の章があります。

  o  Linux ホストのインターネットへの接続に関しては、以下の文書にて扱わ
     れています - Linux ISP Hookup HOWTO
     <http://www.linuxdoc.org/HOWTO/ISP-Hookup-HOWTO.html>, Linux PPP
     HOWTO <http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html>, TrinityOS
     <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS>, Linux DHCP mini-HOWTO
     <http://www.linuxdoc.org/HOWTO/mini/DHCP/index.html>, Linux Cable
     Modem mini-HOWTO <http://www.linuxdoc.org/HOWTO/Cable-
     Modem/index.html> そして
     http://www.linuxdoc.org/HOWTO/mini/ADSL.html
     <http://www.linuxdoc.org/HOWTO/mini/ADSL.html>

  o  IPCHAINS 1.3.9 以降のバージョンは
     http://netfilter.filewatcher.org/ipchains/ から入手可能です。
     バージョンの必要条件に関する更なる情報に関しては、最新の IPCHAINS
     HOWTO 等は Linux IP Firewalling Chains page
     <http://netfilter.filewatcher.org/ipchains/> から得られます。

  o  新しいカーネルの設定、コンパイル及びインストールのノウハウは Linux
     Kernel HOWTO <http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html> に詳
     しく書かれています。

  o  その他諸々の機能を実現する付加的な IP マスカレードツールは以下から
     ダウンロードして使用できます -

     o  TCP/IP ポートフォワーダ又はリダイレクタ -

        o  IP ポートフォワーディング (IPMASQADM) - お薦め
           <http://juanjox.kernelnotes.org/> 又は彼の古い ミラー 。

     ICQ MASQ モジュール

     o  Andrew Deryabin の ICQ MASQ モジュール

     PORTFW FTP ソリューション(問題解決方法) -

     o  マスカレードされたマシンへ FTP をポートフォワーディングするため
        の、2.2.x と 2.0.x の両方のカーネルの MASQ モジュールの問題解決
        方法があります。詳細は IP マスカレードの情報源のアプリケーション
        ページをご覧ください。

     o  SuSe に、内部の FTP サーバに到達する為のポートフォワーディングに
        似た機能を提供する完全な FTP プロキシアプリケーションがありま
        す。詳細は SuSe Proxy URL をご覧ください。

     真の 1 対 1 NAT の為の IPROUTE2, ポリシーベースの (発信元) ルーティ
     ング、そして トラフィックシェイピング -

     o  ftp://ftp.inr.ac.ru/ip-routing

     o  文書は http://www.compendium.com.ar/policy-routing.txt より入手
        可能です。

     o  Advanced Routing HOWTO

     o

        ソースコードのミラーは以下にあります -

        ftp://linux.wauug.org/pub/net
        ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/
        ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/
        ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/ (STM1
        to USA) ftp://sunsite.icm.edu.pl/pub/Linux/iproute/
        ftp://ftp.sunet.se/pub/Linux/ip-routing/
        ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/
        ftp://ftp.crc.ca/pub/systems/linux/ip-routing/
        ftp://ftp.paname.org (France) ftp://donlug.ua/pub/mirrors/ip-
        route/ ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/

        RPM パッケージは ftp://omni.rk.tusur.ru/Tango/ と
        ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/ から
        入手可能です。

     詳細な情報とその他パッチ等は IP マスカレードの情報源
     <http://ipmasq.cjb.net/> をご覧ください。

  2.7.  IP マスカレードを Linux 2.3.x 及び 2.4.x で使うための必要条件

       ** 最新情報については IP マスカレードの情報源
       <http://ipmasq.cjb.net/> を参照してください。 **

  o  現在、最新の 2.3.x 及び 2.4.x カーネルは NetFilter と呼ばれる全く新
     しいシステムが導入されています ( 2.2.x カーネルにおける IPCHAINS に
     似ています)。幸い、 IPCHAINS への移行の時とは異なり、新しい
     NetFilter ツールは、現状の IPCHAINS と IPFWADM の文法に*完全に*適合
     できるカーネルモジュールを持っているので、古いスクリプトを書き換え
     る必要はありません。さて、どれほどあなたがご自身の古いルールセット
     の良さに依存していたとしても、それを書き換えることによる幾つかの利
     点 (スピード、新しい機能等) があります。ユーザーに多くの柔軟性と将
     来の機能等を提供する、多くの基本設計的な変更が、新しいコードにより
     もたらされました。

     新しい機能の中にはこんな賛否両論を含んでいるものもあります -

     賛成意見 -

     o

     o  TCP/IP サブネットに真の 1:1 NAT 機能を提供します。

     o  ビルトインタイプのポートフォワーディングはもはや IPMASQADM を必
        要としません。

     o  新しいビルトインタイプのポートフォワーディング機能は、外部と内部
        のトラフィックの両方に対して動作します。このことは外部トラフィッ
        クに PORTFW を使い、内部リダイレクションに REDIR を使っていた
        ユーザーにとって、もはやこの二つのツールを使う必要がないことを意
        味します。

     o  完全にポリシーベースのルーティング機能 (ソースベースの TCP/IP ア
        ドレスルーティング) 。

     o  より高速なパケットフォワーディングを表す Linuxの FastRoute 機能
        との互換性 ( Linux ネットワークスイッチングとして知られています)
        。

     o  TCP/IP v4, v6, そして DECnet でさえも完全にサポートします。

     o  PPP0, PPP1, 等を指す ppp* のようなワイルドカードインターフェース
        をサポートします。

     o  input と output の両方のインターフェースに対してフィルタリングを
        サポートします。

     o  イーサネットの MAC フィルタリング。

     o  サービス不能攻撃 (DoS: Denial of Service) パケットレートの制限。

     o  とてもシンプルで汎用的な状態検査機能

     o  パケット REJECT は現在ユーザーが選択可能な ICMP メッセージの返答
        をサポートします。

     o  変更可能なロギングレベル (異なるパケットが異なる SYSLOG レベルに
        到達できます)
     反対意見 -

     o

     o  Netfilter は全く新しいアーキテクチャだから、殆ど全ての古い MASQ
        カーネルモジュールは書き換える必要が生じます。すなわち、 FTP モ
        ジュールはアップデートされましたが、以下のモジュールは書き換えが
        済んでいません:

        ip_masq_cuseeme.o  ip_masq_icq.o  ip_masq_quake.o
        ip_masq_user.o ip_masq_irc.o  ip_masq_raudio.o
        ip_masq_vdolive.o

        この移植をどうするかについての文書は
        http://netfilter.kernelnotes.org/unreliable-guides/netfilter-
        hacking-HOWTO-5.html
        <http://netfilter.kernelnotes.org/unreliable-guides/netfilter-
        hacking-HOWTO-5.html> にあります。時間がありましたら、これらを早
        く移植することであなたの才能は高く評価されることでしょう。

     このバージョンの HOWTO では、 Netfilter はカバーしていません。一旦
     Netfilter の特徴が固定されれば、 -この- HOWTO に追加されるか、新た
     な HOWTO に書かれるでしょう。それまでは、以下に示す Netfilter の文
     書へのリンクを参照してください。現状では、新しい Netfilter コード
     は、今日 IPCHAINS ユーザが用いる設定とトラブルシューティングの 95%
     同じものを共有できています。ですので、この HOWTO は未だ Netfilter
     によるファイアウォールと NAT ユーザーにとっても非常に適切です。

     http://netfilter.filewatcher.org/unreliable-guides/index.html そし
     てより詳細には http://netfilter.filewatcher.org/unreliable-
     guides/NAT-HOWTO.html をどうぞ。

  詳細な情報とその他パッチ等は IP マスカレードの情報源
  <http://ipmasq.cjb.net/> をご覧ください。

  2.8.  IP マスカレードを Linux 2.0.x で使うための必要条件

       ** 最新情報は IP マスカレードの情報源
       <http://ipmasq.cjb.net/> を参照してください。 **

  o  あらゆる真っ当なコンピュータハードウェア。詳細は ``ハードウェア
     FAQ'' の章を参照してください。

  o  http://www.kernel.org/ から入手可能な 2.0.x のソース。
     (Redhat 5.2 のような、多くの最近の Linux の ``マスカレードサポート
     済みディストリビューション'' は、コンパイル済 IP マスカレードカーネ
     ルモジュールを含んでいます。このような場合、新たに Linux カーネルを
     コンパイルする必要はありません。もし、カーネルをアップグレードする
     なら、他に新たなプログラムを必要とするか、或はアップグレードする必
     要があることを意識すべきでしょう。 (この HOWTO 文書内にて後述しま
     す。)

  o  ロード可能なカーネルモジュール、好ましくは 2.1.85 以
     降。http://www.pi.se/blox/modutils/index.html 或は
     ftp://ftp.ocs.com.au/pub/modutils/ より入手可能です。
     (最低でも modules-1.3.57 は必要です。)
  o  Linux NET-3-4 HOWTO <http://www.linuxdocs.org/NET3-4-HOWTO.html> 及
     び Network Administrator's Guide
     <http://www.linuxdoc.org/LDP/nag/nag.html> で扱われ、稼働している、
     TCP/IP ネットワーク。
     また TrinityOS <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS> 文書も調べておいてください。 TrinityOS は
     Linux ネットワーキングにおけるとても広範囲なガイドです。 IP マスカ
     レード、セキュリティ、 DNS, DHCP, Sendmail, PPP, Diald, NFS, IPSEC
     ベースの VPN, またパフォーマンスの章が少々挙げられます。 50 以上の
     章があります。

  o  Linux ホストのインターネットへの接続に関しては、以下の文書にて扱わ
     れています: Linux ISP Hookup HOWTO
     <http://www.linuxdoc.org/HOWTO/ISP-Hookup-HOWTO.html>, Linux PPP
     HOWTO <http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html>, TrinityOS
     <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS>, Linux DHCP mini-HOWTO
     <http://www.linuxdoc.org/HOWTO/mini/DHCP/index.html>, Linux Cable
     Modem mini-HOWTO <http://www.linuxdoc.org/HOWTO/Cable-
     Modem/index.html> そして Linux ADSL mini-HOWTO
     <http://www.linuxdoc.org/HOWTO/mini/ADSL.html>

  o  Ipfwadm 2.3 以降は
     ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz から入手可能
     です。
     必要なバージョンに関するより詳細な情報は Linux IPFWADM page
     <http://www.xos.nl/linux/ipfwadm/> にあります。

     o  もし 2.0.38+ カーネル上で IPCHAINS を動作させることに興味がある
        なら、 Willy Tarreau の 2.0.36 用 IPCHAINS イネーブラ
        <http://www-miaif.lip6.fr/willy/pub/linux-patches/> 或は Rusty
        の 2.0.x カーネル用 IPCHAINS を参照してください。

  o  新しいカーネルの設定、コンパイル及びインストールのノウハウは Linux
     Kernel HOWTO <http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html> に詳
     しく書かれています。

  o  その他諸々の機能を実現する付加的な IP マスカレードのパッチは以下よ
     りダウンロードして適用できます -

     o  TCP/IP ポートフォワーダ又はリダイレクタ - これらのツールで、非
        MASQ 状態で動作させたいプログラムを MASQ サーバの後ろ側で稼働さ
        せることができます。これに加えて、 MASQ サーバをインターネット
        ユーザーが内部の WWW, TELNET, SMTP, FTP (パッチが必要) 等のサー
        バに接続できるように設定できます。詳細はこの HOWTO の ``フォワー
        ダ (ポート転送ツール)'' の章をご覧ください。以下は 2.0.x カーネ
        ル用 IP マスカレードのパッチの一覧です -

        o  Steven Clarke 氏の IP ポートフォワーディング (IPPORTFW) - お
           薦め

        o  IP オートフォワード 及び ミラー
           <ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz>
           (IPAUTOFW) - お薦めしません

        o  リダイレクタ <http://ipmasq.cjb.net/redir_0.7.orig.tar.gz>
           TCP 用 (REDIR) - お薦めしません

        o  UDP リダイレクタ (UDPRED) - お薦めしません

        ポートフォワード FTP -

        o  FTP トラフィックを内部 FTP サーバへ転送するつもりなら、Fred
           Viles 氏の FTP サーバパッチ ( HTTP 経由) 又は Fred Viles 氏の
           FTP サーバパッチ ( FTP 経由) をダウンロードする必要があるで
           しょう。「でしょう」と述べたのには訳がありまして、一部のユー
           ザはパッチが適用されたカーネルモジュールを持っている場合があ
           るからです。この話題に関する詳細はこの HOWTO の ``フォワーダ
           (ポート転送ツール)'' の章をご覧ください。

        X-Window ディスプレイフォワーダ -

        o  X-windows フォワーディング (DXCP)
           <ftp://sunsite.unc.edu/pub/Linux/X11/compress/dxpc-3.7.0.tar.gz>

        ICQ MASQ モジュール

        o  Andrew Deryabin 氏の ICQ MASQ モジュール

        PPTP (GRE) 及び SWAN (IPSEC) VPN トンネリングフォワーダ -

        o  John Hardin 氏の VPN マスカレードフォワーダ 或は以下の古い
           パッチ PPTP サポート
           <http://ipmasq.cjb.net/ip_masq_pptp.patch.gz>

        ゲーム特有のパッチ:

        o  Glenn Lamb 氏の 2.0.36+ 用 LooseUDP
           <ftp://ftp.netcom.com/pub/mu/mumford/loose-
           udp-2.0.36.patch.gz> パッチ。

           一部の WWW ブラウザはこの .gz ファイルを自動的に解凍すること
           に注意してください。このファイルをダウンロードする際に
           は、SHIFT キーを押しながら上記 URL をクリックしてください。

           詳細は Dan Kegel 氏の NAT Page
           <http://www.alumni.caltech.edu/~dank/peer-nat.html> も調べて
           おいてください。更なる情報は ``ゲームクライアント'' の章と ``
           よくある質問 (FAQ)'' の章でも得られます。

     上記パッチ及びその他の詳細は IP マスカレードの情報源
     <http://ipmasq.cjb.net/> にて入手できます。

  3.  IP マスカレードの設定

       プライベートネットワーク上に重要な情報がある場合には、 IP マ
       スカレードを実装する前に、セキュリティの観点から慎重に検討し
       てください。これを怠ると、 IP マスカレードはあなたがインター
       ネットへ出て行くゲートウェイになりますが、これと共に外側の世
       界にいる誰かがあなたのネットワークに侵入するゲートウェイとも
       なってしまうのです。

       ひとたび IP マスカレード機能を設定するならば、強力な
       IPFWADM/IPCHAINS によるファイアウォールのルールセットを実装
       することを強くお薦めします。詳細は後述の ``強い IPFWADM の
       ルールセット'' 及び ``強い IPCHAINS のルールセット'' の章を
       ご覧ください。

  3.1.  IP マスカレードを組み込んだカーネルのコンパイル

       お使いの Linux ディストリビューションが、既に下記の必要な機
       能の全てをサポートしていて… -

       o  IPFWADM/IPCHAINS

       o  IP フォワーディング

       o  IP マスカレーディング

       o  IP ファイアウォーリング

       o  その他

          そして全ての MASQ に関係するモジュールがコンパイルされて
          いる (多くのモジュラーカーネルは必要とされる全てが含まれ
          ていることでしょう) なら、カーネルを再コンパイルする必要
          はありません。あなたの使用する Linux ディストリビューショ
          ンが MASQ 機能を装備していると自信が持てないなら、 ``マス
          カレードサポート済みディストリビューション'' の章を参照し
          てください。このリストが信用できないか、あなたの使用する
          ディストリビューションがリストにないなら、以下のテストを
          試してみてください -

       o  Linux box にログインして、コマンド "ls
          /proc/sys/net/ipv4" を実行してみてください。

       o  コマンドの表示結果の中に "ip_forward", "ip_masq_debug",
          "ip_masq_udp_dloose"(任意), 及び "ip_always_defrag"(任意)
          等があるか確認してください。

          これらがあれば、あなたのカーネルにはマスカレード機能が実
          装されています。

       あなたの使用するディストリビューションが標準で IP マスカレー
       ディングをサポートしているにもかかわらず上記ファイルが見つか
       らない場合、マスカレード機能はサポートされていないと推測せざ
       るを得ません。その場合…カーネルをコンパイルしなければなりま
       せん。でも、ご心配無く。難しくないですから。

       標準でサポートされているか否かにかかわらず、この章は他の有用
       な情報を含んでいますので、読むことを強くお薦めします。

  3.1.1.  Linux 2.2.x カーネル

  必要とされるソフトウェアやパッチ等は ``2.2.x カーネルの必要条件'' の章
  をご覧ください。

  o  まず第一に、 2.2.x のカーネルソースが必要です。 (望ましくは 2.2.16
     以降の最新のカーネルが良いです。)

     注意 #1 - 2.2.16 より以前の Linux 2.2.x カーネルには、 TCP 接続にお
     いてルート権限が搾取される弱点があり、 2.2.11 以前のバージョンには
     IPCHAINS のフラグメンテーションにバグがあります。このため、強力な
     IPCHAINS のルールセットを動作させようとする人は、これら攻撃に対して
     無防備です。あなたのカーネルを修正済みバージョンへアップグレードし
     てください。

     注意 #2 - 2.2.x カーネルが整備され続けられた結果、コンパイル時のオ
     プションが変貌し続けています。今回のバージョンの文書において、この
     章はカーネル 2.2.15 の設定内容を反映しています。もしもお使いのカー
     ネルがもっと古いバージョンの場合ですと、ダイアログの表示は違って見
     えるでしょう。新機能や安定性をもたらす最新バージョンのカーネルへの
     アップグレードをお薦めします。

  o  カーネルのコンパイルが初めてでも、恐がることはありません。実の所か
     なり簡単ですし、 ``2.2.x カーネルの必要条件'' の章で示す幾つかの
     URL でも扱われています。

  o  次のコマンドにてカーネルソースを /usr/src/ ディレクトリへ展開してく
     ださい - tar xvzf linux-2.2.x.tar.gz -C /usr/src ここで、2.2.x の
     "x" は Linux 2.2 カーネルの現在のバージョンナンバーです。完了しまし
     たら、 /usr/src/linux/ というディレクトリがあるか、またはシンボリッ
     クリンクが張られていることを確認してください。

  o  適当な、或は任意のパッチをカーネルソースコードに当ててください。
     カーネル 2.2.1 の時点では、 IP Masq を稼働させる為の特殊なパッチ等
     は不要です。 PPTP 及び Xwindow のフォワーディングの機能はオプション
     です。 ``2.2.x カーネルの必要条件'' の章にある URLと IP マスカレー
     ドの情報源にある最新情報とパッチの URL を参照してください。

  o  以下にカーネルをコンパイルする際に最低限必要なオプションを記しま
     す。インストールされたネットワークインターフェースも同様に設定する
     必要があります。カーネルをコンパイルする方法の詳細については、
     Linux Kernel HOWTO <http://www.linuxdoc.org/HOWTO/Kernel-
     HOWTO.html> と、カーネルソースディレクトリの README ファイルを参照
     してください。【訳注: JFによる Kernel-HOWTO の日本語訳もあります。
     <http://www.linux.or.jp/JF/JFdocs/Kernel-HOWTO.html> また、 Debian
     GNU/Linux では、 fakeroot と kernel-package というパッケージを導入
     することで、カスタムカーネルの作成が一般ユーザのホームディレクトリ
     配下で、簡単にできるようになっています。但し、この文書中で示される
     make menuconfig 或は make xconfig の内容は共通です。】

     以下の YES or NO の選択 に注意してください。全てのオプションはこの
     HOWTO にて後述する正しいカーネルパッチなくして、有効とは限りませ
     ん。

    * 開発中や不完全なコード/ドライバも表示 (CONFIG_EXPERIMENTAL) [Y/n/?]
      - YES: IP MASQ 自体では必要ないけれども、このオプションで MASQ
      モジュールの作成とポートフォワーディングが実現されます。

    -- マスカレードに無関係のオプションを飛ばします --

    * ローダブル・モジュールを使用可能にします (CONFIG_MODULES) [Y/n/?]
      - YES: これでカーネルの IP MASQ のモジュールが使えるようになります。

    -- マスカレードに無関係のオプションを飛ばします --

    * ネットワークのサポート (CONFIG_NET) [Y/n/?]
      - YES: ネットワークサブシステムを有効にします。

    -- マスカレードに無関係のオプションを飛ばします --

    * Sysctl サポート (CONFIG_SYSCTL) [Y/n/?]
      - YES: フォワーディング、ダイナミック IP 、ルーズ UDP 等のオプション
      を有効/無効にします。

    -- マスカレードに無関係のオプションを飛ばします --

    * パケット・ソケット (CONFIG_PACKET) [Y/m/n/?]
      - YES: これは任意ですが、IP MASQ に纏わるあらゆる問題をデバッグ
      するために TCP DUMP を使えるようにする際に必要な機能です。

    * カーネル／ユーザ ネットワーク・リンク・ソケット (CONFIG_NETLINK) [Y/n/?]
      - YES: これは任意ですが、経路情報等の高度なファイアウォールの
      問題点の記録を取るのに役立ちます。

  【訳注: この部分は、実際は「カーネル／ユーザ ネットワーク・リンク・ドライバ
  (Kernel/User network link driver) 」となっています。】

    * ルーティング・メッセージ (CONFIG_RTNETLINK) [Y/n/?]
      - NO:  このオプションはパケットファイアウォールの記録を取ることとは
      無関係です。

    -- マスカレードに無関係のオプションを飛ばします --

    * ファイアウォール機能 (CONFIG_FIREWALL) [Y/n/?]
      - YES: カーネルに IPCHAINS ファイアウォールツールによる設定ができる
      ようにします。

    * ソケットでの分別 (CONFIG_FILTER) [Y/n/?]
      - 任意: これは IPMASQ と無関係ですが、内部ネットワークに DHCP サーバ
      を実装するなら、このオプションが必要になります。

    * Unix ドメイン・ソケット (CONFIG_UNIX) [Y/m/n/?]
      - YES: これで UNIX TCP/IP ソケット機構を有効にします。

    * TCP/IP ネットワーキング (CONFIG_INET) [Y/n/?]
      - YES: TCP/IP プロトコルを有効にします。

    -- マスカレードに無関係のオプションを飛ばします --

    * IP: 高機能ルータ (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?]
      - YES: これ以降の高機能 MASQ オプションの設定が有効になります。

    * IP: ポリシールーティング (CONFIG_IP_MULTIPLE_TABLES) [N/y/?]
      - NO: MASQ では不要ですが、 TCP/IP 発信元アドレスを用いるか、
      或は TOS (Type-Of-Service) 値を用いるルーティング等の高機能
      を必要とする人はこのオプションが必要です。

    * IP: 等価コスト多重パス (CONFIG_IP_ROUTE_MULTIPATH) [N/y/?]
      - NO: 通常の MASQ 機能には不要です。

    * IP: 経路決定基準として TOS 値を使用する (CONFIG_IP_ROUTE_TOS) [N/y/?]
      - NO: 通常の MASQ 機能には不要です。

    * IP: 冗長な経路監視 (CONFIG_IP_ROUTE_VERBOSE) [Y/n/?]
      - YES:
      IP アドレスを詐称したパケットを破棄し、ログ記録するルーティング
      コードを使う際には便利です (強くお薦めします) 。

    * IP: 大きなルーティングテーブル (CONFIG_IP_ROUTE_LARGE_TABLES) [N/y/?]
      - NO: 通常の MASQ 機能には不要です。

    * IP: カーネルレベルの自動構成 (CONFIG_IP_PNP) [N/y/?] ?
      - NO: 通常の MASQ 機能には不要です。

    * IP: ファイアウォール (CONFIG_IP_FIREWALL) [Y/n/?]
      - YES: ファイアウォール機能を有効にします。

    * IP: ファイアーウォールのパケット・ネットリンク・デバイス (CONFIG_IP_FIREWALL_NETLINK) [Y/n/?]
      - 任意: 任意ですが、この機能は IPCHAINS からコピーしたパケット
      をユーザ空間のプログラムに渡してチェックすることを実現します。

    * IP: 透過プロキシのサポート (CONFIG_IP_TRANSPARENT_PROXY) [N/y/?]
      - NO: 通常の MASQ 機能には不要です。

  【訳注: この部分は、実際は「等価プロキシ (IP: transparent proxying)」
  となっています。】

    * IP: マスカレーディング (CONFIG_IP_MASQUERADE) [Y/n/?]
      - YES: 内部ネットワークの TCP/IP パケットを外部ネットワークの
      ものに書き換える、 IP マスカレードを有効にします。

    * IP: ICMP マスカレーディング (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?]
      - YES: ICMP ping パケットのマスカレーディングを実現します
      (ICMP のエラーコードは、このオプションの設定に関係なくマスカレード
      されます)。
      接続のトラブルシューティングに必須の機能です。

    * IP: マスカレーディング用特殊モジュールのサポート (CONFIG_IP_MASQUERADE_MOD) [Y/n/?]
      - YES: でも任意です。
      このオプションは、これ以降のオプションで外側のネットワーク上の
      コンピュータと MASQ された内部ネットワーク上のマシン同士を直接的
      に接続する TCP/IP ポートフォワーディングを有効にするものです。

    * IP: ipautofw マスカレードのサポート(EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [N/y/m/?]
      - NO:  IPautofw は ポートフォワーディングの古い方法です。
      殆どが古いコードで占められ、幾つかの問題点も見つかっております。
      お薦め*しません*。

  【訳注: 原文は ipautofw masq support となっていますが、実際は
  ipautofw masquerade support となっています。】

    * IP: ipportfw マスカレード・サポート (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/m/n/?]
      - YES:
      外側のネットワーク上のコンピュータと MASQ された内部ネットワーク
      上のマシン同士を直接的に接続する IPPORTFW を有効にします。
      大概、この機能は内部の SMTP, TELNET, 及び WWW サーバへのアクセス
      に用いられます。
      FTP ポートフォワーディングはこの MASQ HOWTO の FAQ の章に詳述
      されている追加のパッチが必要です。
      ポートフォワーディングに関するより詳細な情報は、この HOWTO の
      フォワードの章にあります。

  【訳注: 原文では EXPERIMENTAL ですが、実際はカーネル 2.2.0 以降、
  EXPERIMENTAL が取れています。】

    * IP: ip fwmark マスカレード・フォワーディング・サポート (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_MFW) [Y/m/n/?]
      - 任意:  これは PORTFW の新しい方法です。
      このオプションによって、 IPCHAINS は更なる働きが有効になり、
      パケットに印を付けられるようになります。
      IPMASQADM や IPPORFW 等のユーザ空間ツールを用いて、IPCHAINS
      は自動的にパケットのアドレスを書き換えます。
      現状では、 PORTFW よりはテストされていませんが、信頼できるでしょう。
      現在、 IPMASQADM 及び IPPORTFW の使用が推奨されています。
      この MFW に考えがおありでしたら、メールをお願いします。

  【訳注: 実際は IP: ipmarkfw masquerade support と、 forwarding が
  取れています。】

    * IP: ホストではなくルータとして最適化する (CONFIG_IP_ROUTER) [Y/n/?]
      - YES: これはカーネルをネットワークサブシステムの為に最適化
      しますが、これによってパフォーマンスに重大な影響を及ぼすとは
      認められません。

    * IP: トンネリング (CONFIG_NET_IPIP) [N/y/m/?]
      - NO: この任意の選択は IP マスカレードを通じる IPIP トンネル
      の為にあります。
      トンネリング/VPN 機能をお望みなら、 GRE 或は IPSEC トンネルの
      使用をお薦めします。

    * IP: IP 越しの GRE トンネル (CONFIG_NET_IPGRE) [N/y/m/?]
      - NO: この任意の選択は、 IP MASQ ボックスを通じる PPTPと GRE
      トンネルを実現させる為にあります。

    -- マスカレードに無関係のオプションを飛ばします --

    * IP: TCP syn クッキーのサポート (デフォルトでは無効) (CONFIG_SYN_COOKIES) [Y/n/?]
      - YES: 基本的な TCP/IP ネットワークセキュリティの為に強くお薦めします。

  【訳注: 実際は SYN flood protection (SYN 攻撃からの防御)
  という名称になっています。】

    -- マスカレードに無関係のオプションを飛ばします --

    * IP: ウィンドウを大きくします (メモリが 16 MB 未満の場合は勧めません) (CONFIG_SKB_LARGE) [Y/n/?]
      - YES:  Linux の TCP ウィンドウを最適化する為にお薦めします。

    -- マスカレードに無関係のオプションを飛ばします --

    * ネットワークデバイスのサポート (CONFIG_NETDEVICES) [Y/n/?]
      - YES: Linux ネットワークデバイス層を有効にします。

    -- マスカレードに無関係のオプションを飛ばします --

    * ネットワーク用ダミードライバのサポート (CONFIG_DUMMY) [M/n/y/?]
      - YES: 任意ですが、このオプションは問題のデバッグを助けます。

    == ネットワークカードのサポートをコンパイルし忘れないでください!! ==

    -- マスカレードに無関係のオプションを飛ばします --

    == モデム或は PPPoE DSL モデムをお持ちの方は PPP/SLIP のサポートを
    コンパイルし忘れないでください。 ==

    -- マスカレードに無関係のオプションを飛ばします --

    * /proc ファイルシステムのサポート (CONFIG_PROC_FS) [Y/n/?]
      - YES: Linux ネットワークフォワーディングを有効にする為に必要です。

  注意 - これらは IP マスカレードの為だけに必要な要素です。あなたのシス
  テムに特有な、他の設定項目も選択する必要があります。

  o  カーネルをコンパイルした後、以下のように IP MASQ モジュールをコンパ
     イルして、インストールしてください -

         make modules; make modules_install

  o  次に、リブート後 IP マスカレードモジュールを読み込ませ、 IP MASQ を
     自動的に有効にする為に、 /etc/rc.d/rc.local に何行か追加します -

               .
               .
               .
               #rc.firewall script - Start IPMASQ and the firewall
               /etc/rc.d/rc.firewall
               .
               .
               .

  3.1.2.  Linux 2.0.x カーネル

  必要とされるソフトウェアやパッチ等は ``2.0.x カーネルの必要条件'' の章
  をご覧ください。

  o  まず第一に、カーネルソースが必要です。 (望ましくは 2.0.38 以降の最
     新のカーネルが良いです。)

  o  カーネルのコンパイルが初めてでも、恐がることはありません。実の所か
     なり簡単ですし、 ``2.0.x カーネルの必要条件'' の章で示す幾つかの
     URL でも扱われています。

  o  次のコマンドにてカーネルソースを /usr/src/ ディレクトリへ展開してく
     ださい - tar xvzf linux-2.0.x.tar.gz -C /usr/src ここで、2.0.x の
     "x" は Linux 2.0 カーネルの現在のバージョンナンバーです。完了しまし
     たら、 /usr/src/linux/ というディレクトリがあるか、またはシンボリッ
     クリンクが張られていることを確認してください。

  o  適当な、或は任意のパッチをカーネルソースコードに当ててください。
     カーネル 2.0.36 の時点では、 IP Masq を稼働させる為の特殊なパッチ等
     は不要です。 IPPORTFW, PPTP 及び Xwindow のフォワーディングの機能は
     オプションです。 ``2.0.x カーネルの必要条件'' の章にある URLと IP
     マスカレードの情報源にある最新情報とパッチの URL を参照してくださ
     い。

  o  以下にカーネルをコンパイルする際に最低限必要なオプションを記しま
     す。インストールされたネットワークインターフェースも同様に設定する
     必要があります。カーネルをコンパイルする方法の詳細については、
     Linux Kernel HOWTO <http://www.linuxdoc.org/HOWTO/Kernel-
     HOWTO.html> と、カーネルソースディレクトリの README ファイルを参照
     してください。【訳注: JFによる Kernel-HOWTO の日本語訳もあります。
     <http://www.linux.or.jp/JF/JFdocs/Kernel-HOWTO.html> 】

     以下の YES or NO の選択 に注意してください。全てのオプションはこの
     HOWTO にて後述する正しいカーネルパッチなくして、有効とは限りませ
     ん。

    * 開発中や不完全なコード/ドライバも表示 (CONFIG_EXPERIMENTAL) [Y/n/?]
      - YES: このオプションで IP マスカレード機能のコードが選択
      できるようになります。

    * ローダブル・モジュールを使用可能にします (CONFIG_MODULES) [Y/n/?]
      - YES: これでカーネルの IP MASQ のモジュールが使えるようになります。

    * ネットワークのサポート (CONFIG_NET) [Y/n/?]
      - YES: ネットワークサブシステムを有効にします。

    * ファイアウォール機能 (CONFIG_FIREWALL) [Y/n/?]
      - YES: IPFWADM ファイアウォールツールを有効にします。

    * TCP/IP ネットワーキング (CONFIG_INET)
      - YES: TCP/IP プロトコルを有効にします。

    * IP: フォワーディング/ゲートウェイング (CONFIG_IP_FORWARD)
      - YES: IPFWADM にて制御される Linux ネットワークのパケット転送と
      ルーティングを有効にします。

    * IP: syn クッキー (CONFIG_SYN_COOKIES) [Y/n/?]
      - YES: 基本的なネットワークセキュリティの為に強くお薦めします。

    * IP: ファイアウォーリング (CONFIG_IP_FIREWALL) [Y/n/?]
      - YES: ファイアウォール機能を有効にします。

    * IP: ファイアウォールのパケット記録 (CONFIG_IP_FIREWALL_VERBOSE) [Y/n/?]
      - YES: (任意ですが強くお薦めします) - ファイアウォールに引っかかった
      パケットをログに記録します。

    * IP: マスカレーディング (CONFIG_IP_MASQUERADE [Y/n/?]
      - YES: 内部ネットワークの TCP/IP パケットを外部ネットワークのものに
      書き換える、 IP マスカレードを有効にします。

    * IP: ipautofw マスカレードのサポート (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [Y/n/?]
      - NO: IPautofw は ポートフォワーディングの古い方法です。
      動作はしますが、 IPPORTFW の方が良い方法ですので、 IPAUTOFW は
      お薦めしません。

    * IP: ipportfw マスカレード・サポート (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/n/?]
      - YES: このオプションは 2.0.x カーネルのパッチでのみ有効です。
      このオプションで、インターネット上の外側のコンピュータと MASQ
      された内部ネットワーク上のマシン同士が直接的に接続できるように
      なります。
      大概、この機能は内部の SMTP, TELNET, 及び WWW サーバへのアクセスに
      用いられます。
      FTP ポートフォワーディングはこの FAQ の章に詳述されている追加の
      パッチが必要になるでしょう。
      ポートフォワーディングに関するより詳細な情報は、この HOWTO の
      フォワードの章にあります。

    * IP: ICMP マスカレーディング (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?]
      - YES: ICMP ping パケットのマスカレーディングを実現します。
      任意と思われますが、多くのプログラムが ICMP サポートなくして
      完全には機能し得ないでしょう。

    * IP: loose UDP ポートフォワーディング (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?]
      - YES: このオプションは 2.0.x カーネルにパッチを適用することに
      よってのみ有効です。
      このオプションで、インターネットを経由する、 NAT を用いるような
      ネットワーク対戦型ゲームが、マスカレードされた内部ネットワーク上の
      コンピュータで出来るようになります。
      詳細についてはこの HOWTO の FAQ の章に掲載しています。

    * IP: 常にデフラグメントする (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?]
      - YES:  この機能は IP MASQ 接続を最適化します。- 強くお薦めします。
    * IP: ホストとしてではなくルータとして最適化する (CONFIG_IP_ROUTER) [Y/n/?]
      - YES:  これによってカーネルをネットワークサブシステムとして
      最適化します。

    * IP: 発信元アドレスで経路付けされたフレームを破棄する (CONFIG_IP_NOSR) [Y/n/?]
      - YES: 基本的なネットワークセキュリティの為に強くお薦めします。

    * ネットワーク用ダミードライバのサポート (CONFIG_DUMMY) [M/n/y/?]
      - YES:  任意ですが、このオプションは問題をデバッグする際の
      助けになります。

    * /proc ファイルシステムのサポート (CONFIG_PROC_FS) [Y/n/?]
      - YES:  Linux カーネルがネットワーク上でパケットを転送する
      機能を有効にする為に必要です。

  注意 - これらは IP マスカレードの為だけに必要な要素です。あなたのネッ
  トワークやハードウェアに特有な他の設定項目も選択する必要があります。

  o  カーネルをコンパイルした後、以下のように IP MASQ モジュールをコンパ
     イルして、インストールしてください -

       make modules; make modules_install

  o  次に、 IP マスカレードスクリプトを読み込ませ、リブートの度毎に IP
     MASQ を自動的に有効にする為に、 /etc/rc.d/rc.local に何行か追加しま
     す -

               .
               .
               .
               #rc.firewall script - Start IPMASQ and the firewall
               /etc/rc.d/rc.firewall
               .
               .
               .

  3.1.3.  Linux 2.3.x / 2.4.x カーネル

  この HOWTO では 2.3.x と 2.4.x カーネルは未だ取り扱っていません。
  ``2.3.x/2.4.x カーネルの必要条件'' の章に記される URL を参照するか、そ
  れらを取り扱っている新しい HOWTO を参照してください。

  3.2.  プライベートネットワーク IP アドレスを内部 LAN に割り当てる

  全ての 内部ネットワーク上で MASQ された マシンは、インターネットで公式
  に割り当てられたアドレスを持つべき*ではありません*。ですので、インター
  ネット上のアドレスとぶつからずに、内部ネットワークのマシンにアドレスを
  確保する為の、特殊で適切な方法が存在しなければなりません。

  >オリジナルの IP マスカレード FAQ より -

  RFC 1918 はインターネットへ直接接続されないか、または "プライベート"
  ネットワークに用いられる IP アドレスに関する公式文書です。この用途の為
  に特別に割り当てられた 3つの IP アドレスのブロックがあります。

       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 ネットワーク番号の集合であることに
       注意してください。

  参考の為に、私は 192.168.0.0 のネットワークアドレスと 255.255.255.0 の
  Class-C サブネットマスクを選択しており、この HOWTO においてもこれを反
  映しています。でも、上記のプライベートネットワークは全て有効ですけれど
  も、必ず正しいサブネットマスクを用いてください。ですので、もし Class-C
  のネットワークを使うなら、あなたのネットワーク上の TCP/IP プロトコルが
  機能しているマシンに割り当てられる番号は、 192.168.0.1, 192.168.0.2,
  192.168.0.3, ..., 192.168.0.x となります。

  192.168.0.1 は多くの場合、外部ネットワークへ出て行く為の内部ゲートウェ
  イ或は Linux MASQ マシンとなります。 192.168.0.0 と 192.168.0.255 はそ
  れぞれネットワーク及びブロードキャストアドレスであることに注意してくだ
  さい (これらのアドレスは*予約済み*です) 。これらのアドレスをマシンに割
  り当てないでください、さもなくばあなたのマシンやネットワークは正常に動
  作しません。

  3.3.  IP フォワーディングポリシーを設定する

  この点に関しては、カーネルとその他必要なパッケージがインストールされて
  いるべきです。全てのネットワークの IP アドレス、ゲートウェイ、そして
  DNS アドレスは Linux MASQ サーバ上でも同様に設定されているべきです。も
  し Linux ネットワークカードの設定方法を知らないなら、この HOWTO の
  ``2.0.x カーネルの必要条件'' 或は ``2.2.x カーネルの必要条件'' の章を
  参照してください。

  さて、最後にやり残したことは、指定されたマシンに適切にパケットを転送
  (FORWARD) 及び マスカレード (MASQUERADE) する為の、 IP ファイアウォー
  リングツールを設定することです。

  ** この実現には色々と違う方法が沢山あり得ます。これから示す
  提案と実例は私の所で動作していますが、あなたなりの違うアイ
  ディアや必要性があることでしょう。

       この章は IP マスカレード機能が動作し得る為の、素の最低限の
       ファイアウォールのルールセットを紹介する*だけ*です。一旦 (こ
       の HOWTO にて後述する) IP MASQ のテストが成功したら、より安
       全なファイアウォールのルールセットの為に ``強い IPFWADM の
       ルールセット'' と ``強い IPCHAINS のルールセット'' の章を参
       照してください。更に、詳細については IPFWADM (2.0.x) 及び/又
       は IPCHAINS (2.2.x) のオンラインマニュアルを参照してくださ
       い。

  3.3.1.  Linux 2.2.x カーネル

  2.1.x と 2.2.x カーネルの両方にて IP マスカレーディングのルールを操作
  する為に、 IPFWADM はもはやファイアウォールツールとしては使えない こと
  に注意してください。今、これら新しいカーネルでは IPCHAINS ツールを使い
  ます。この変更に関する詳細については、 ``よくある質問 (FAQ)'' の章を参
  照してください。

  初歩的で単純なルールセットにて、 以下に記すように
  /etc/rc.d/rc.firewall を作成します -

       #!/bin/sh
       #
       # rc.firewall - IPCHAINS を用いた、 2.1.x 及び 2.2.x カーネルの為の、
       #               初歩的で単純な IP マスカレードのテスト
       #
       #
       # 必要な IP MASQ モジュールを全て読み込みます。
       #
       #   注意 - 必要とする IP MASQ モジュールだけをロードしてください。
       #          現在の IP MASQ モジュールの全てが以下に記されていますが、
       #          コメントアウトすればロードを抑止できます。

  # モジュールのロードの初期段階に必要です。
  #
  /sbin/depmod -a

  # PORT メソッドを用いた FTP ファイル転送の適切なマスカレーディングを
  # サポートします。
  # 【訳注: PORT メソッドはパッシブモードでない、通常の FTP 接続を指します。
  # 接続後、データポートを使用する際に、 FTP サーバ側からクライアント側に
  # 対して TCP 接続を確立しようとします。
  # このモジュールは FTP クライアントをパッシブモードで使用する際には不要
  # です。】
  #
  /sbin/modprobe ip_masq_ftp

  # UDP 上で RealAudio のマスカレーディングをサポートします。
  # このモジュールがないと、 RealAudio は機能しますが、 TCP モードで動作
  # し、その結果として音質の劣化をひき起こします。
  #
  #/sbin/modprobe ip_masq_raudio

       # IRC における DCC ファイル転送のマスカレーディングをサポートします。
       #
       #/sbin/modprobe ip_masq_irc

       【訳注: DCC (Direct Client Connection) とは、client 同士が IRC server
       を介さずに直接 connection を張ってファイルを送受したり、会話をしたりす
       るしくみを指します。 DCC の詳細については irchat-micro-howto や、
       irchat-jp パッケージに添付されている FAQ-about-jp24.txt 等を参照してく
       ださい。】

       # デフォルトで Quake 及び QuakeWorld のマスカレーディングをサポートします。
       # このモジュールは Linux MASQ サーバの後ろ側にいる複数のユーザの為にあり
       # ます。
       # Quake I, II, 及び III をプレイするつもりなら、 2番目の例を用いてください。
       #
       #   注意 - もし QUAKE モジュールのロードに失敗して ERROR が表示されたら、
       #   -----  それはバグが含まれた古いカーネルです。最新のカーネルに更新して
       #          ください。
       #
       #Quake I / QuakeWorld (26000 及び 27000 番ポート)
       #/sbin/modprobe ip_masq_quake
       #
       #Quake I/II/III / QuakeWorld (26000, 27000, 27910, 27960 番ポート)
       #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960

       # CuSeeme ビデオ会議ソフトウェアのマスカレーディングをサポートします。
       #
       #/sbin/modprobe ip_masq_cuseeme

       # VDO-live ビデオ会議ソフトウェアのマスカレーディングをサポートします。
       #
       #/sbin/modprobe ip_masq_vdolive

       #重要 - デフォルトで無効になっている IP フォワーディングを有効にします。
       #
       #           Redhat ユーザへ - /etc/sysconfig/network を以下のように
       #                             書き換えて、このオプションを変更できる
       #                             筈ですので、試してみてください。
       #
       #                       FORWARD_IPV4=false
       #                             ↓
       #                       FORWARD_IPV4=true
       #
       echo "1" > /proc/sys/net/ipv4/ip_forward

       #重要 - 2.2.x カーネルのデフォルトで無効になっている IP デフラグメント
       #       (最適化)を有効にします。
       #       これはコンパイル時のオプションで有効でしたが、 2.2.12 の時に
       #       その動作が変更されてしまいました。
       #
       echo "1" > /proc/sys/net/ipv4/ip_always_defrag

       # 動的 IP ユーザへ -
       #
       #   もし SLIP, PPP, 或は DHCP で動的に IP アドレスを得ているなら、ここに
       #   記す以下のオプションを有効にしてください。
       #   これによって IP MASQ において動的 IP アドレスのハッキングを実現し、
       #   容易に Diald や同様のプログラムの稼働時間を伸ばします。
       #
       #echo "1" > /proc/sys/net/ipv4/ip_dynaddr

       【訳注: このオプションを有効にすると、 ppp 等の再接続時、インターフェースの
       IP アドレスが変わっても、以前のマスカレードテーブルを破棄せず、 IP アドレス
       を書き換えて再利用します。】

       # 幾つかのインターネット対応ゲームが要求する、ルーズ UDP パッチを
       # 有効にします。
       #
       #  IP マスカレードボックス越しにインターネット対応ゲームをやりたくて、
       #  そのゲームを立ち上げて再設定することなく楽しみたいなら、このオプションを
       #  有効にしてみてください ("#" によるコメントアウトを削除します) 。
       #  内部マシンが UDP ポートスキャンで攻撃されやすくなる可能性があるので、
       #  このオプションはデフォルトでは無効になっています。
       #
       #echo "1" > /proc/sys/net/ipv4/ip_masq_udp_dloose

  # MASQ タイムアウト値
  #
  #  TCP セッションにおいて 2 時間のタイムアウト値を、
  #  TCP/IP "FIN" パケットを受信後のトラフィックにおいて 10 秒のタイムアウト
  #  値を、
  #  UDP トラフィックにおいて 160 秒のタイムアウト値(MASQ された ICQ ユーザ
  #  の為に重要です) を設定します。
  #
  /sbin/ipchains -M -S 7200 10 160

  # DHCP - ADSL や ケーブルモデムのユーザのような、DHCP 或は BOOTP の
  #        いずれかから外部 IP アドレスを取得する人は、この後に記述される
  #        ipchains の deny コマンドの前にこの行を必要とします。
  #        "bootp_client_net_if_name" には DHCP/BOOTP サーバがアドレスを
  #        割り当てるインターフェース名に書き換えてください。
  #        恐らく "eth0", "eth1" 等になることでしょう。
  #
  #        この例は今の所コメントアウトしています。
  #
  #/sbin/ipchains -A input -j ACCEPT -i bootp_clients_net_if_name -s 0/0 67 -d 0/0 68 -p udp

  # 単純な IP フォワーディング及びマスカレーディングを有効にします。
  #
  #  注意 - 以下の例は 192.168.0.x の内部 LAN アドレスで 255.255.255.0 又は
  #         "24" ビットのサブネットマスクよりなるネットワークが、 eth0
  #         インターフェースを通じてインターネットへ接続される場合を記して
  #         います。
  #
  #         ** あなたの内部 LAN の設定に合うように、ネットワーク番号、
  #         ** サブネットマスク及びインターネット接続のインターフェース名
  #         ** を変更してください。
  #
  /sbin/ipchains -P forward DENY
  /sbin/ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ

  一旦 /etc/rc.d/rc.firewall のルールセットを編集し終えたら、実行可能に
  するように chmod 700 /etc/rc.d/rc.firewall を入力し、実行してくださ
  い。

  さて、ファイアウォールのルールセットの準備が整いました。これをリブート
  後に実行させる必要があります。実行には、毎回手で行う方法 (苦痛です)
  か、ブートスクリプトに追加する方法があります。以下に 2つの方法を記して
  おきました -

  o  Redhat 及び Redhat から派生したディストリビューション -

  o  起動スクリプトのロードに関し、 Redhat には 2つの方法があります -
     /etc/rc.d/rc.local 或は /etc/rc.d/init.d/ の中にある init スクリプ
     トです。前者の方法が最も簡単です。やるべきことは以下の行を
     /etc/rc.d/rc.local ファイルの最後に追加することです -

     o  echo "Loading the rc.firewall ruleset.." /etc/rc.d/rc.firewall

     この手法の問題点は、強固なファイアウォールのルールセットを動作させ
     ようとする際に、ファイアウォールはブート終了に至るまで実行されな
     い、という点にあります。好ましい手法としては、ネットワークサブシス
     テムの設定がロードされた直後に、ファイアウォールの設定がロードされ
     るようにすることです。今の所、この HOWTO は /etc/rc.d/rc.local の設
     定のみを扱っています。より強固なシステムをお望みなら、この HOWTO の
     最後の章にリンクがある TrinityOS の10章を参照することをお薦めしま
     す。

  o  Slackware -

  o  起動スクリプトのロードに関し、 Slackware には 2つの方法があります -
     /etc/rc.d/rc.local 或は /etc/rc.d/rc.inet2 ファイルを編集することで
     す。前者の方法が最も簡単です。やるべきことは以下の行を
     /etc/rc.d/rc.local ファイルの最後に追加することです -

     o  echo "Loading the rc.firewall ruleset.."

        /etc/rc.d/rc.firewall

     この手法の問題点は、強固なファイアウォールのルールセットを動作させ
     ようとする際に、ファイアウォールはブート終了に至るまで実行されな
     い、という点にあります。好ましい手法としては、ネットワークサブシス
     テムの設定がロードされた直後に、ファイアウォールの設定がロードされ
     るようにすることです。今の所、この HOWTO は /etc/rc.d/rc.local の設
     定のみを扱っています。より強固なシステムをお望みなら、この HOWTO の
     最後の章にリンクがある TrinityOS の10章を参照することをお薦めしま
     す。

  上述のファイアウォールのルールセットを変更したいユーザへの注意 -

  完全な TCP/IP ネットワークを実現する上述の方法の代わりに、*単体のマシ
  ンだけ*の IP マスカレーディングを実現したいと思う方もいることでしょ
  う。例えば、私は 192.168.0.2 と 192.168.0.8 のホストだけをインターネッ
  トへ接続させたいとします。この時内部ネットワーク上に他のマシンは存在し
  ません。私は (上述の) "単純な IP フォワーディング及びマスカレーディン
  グを実現する" の章の、 /etc/rc.d/rc.firewall のルールセットを、以下の
  ように書き換えます。

       #!/bin/sh
       #
       # 単純な IP フォワーディング及びマスカレーディングを有効にします。
       #
       #  注意 - 以下の例は 192.168.0.x の内部 LAN アドレスで 255.255.255.0 又は
       #         "24" ビットのサブネットマスクよりなるネットワークが、 eth0
       #         インターフェースを通じてインターネットへ接続される場合を記して
       #         います。
       #
       #         ** あなたの内部 LAN の設定に合うように、ネットワーク番号、
       #         ** サブネットマスク及びインターネット接続のインターフェース名
       #         ** を変更してください。
       #
       /sbin/ipchains -P forward DENY
       /sbin/ipchains -A forward -i eth0 -s 192.168.0.2/32 -j MASQ
       /sbin/ipchains -A forward -i eth0 -s 192.168.0.8/32 -j MASQ

  よくある間違い -

  初期段階の IP Masq ユーザが犯しがちなよくある間違いとして、以下のよう
  なコマンドがあります -

  /sbin/ipchains -P forward masquerade

  決して、デフォルトポリシーをマスカレーディングにしてはいけません。さも
  なくば、経路テーブルを操作できる誰かがあなたのゲートウェイマシンに穴を
  開け、自身の身元をマスカレードしてしまうかも知れないからです!

  繰り返します、これらの行は /etc/rc.d/rc.firewall ファイルか、あなたが
  選択する他の rc ファイルのうちの一つに追加できるか、 IP マスカレードを
  必要とする度毎に手作業で実行できます。

  IPCHAINS と強固な IPCHAINS のルールセットの例の詳細な手引に関しては、
  ``強い IPFWADM のルールセット'' と ``強い IPCHAINS のルールセット'' の
  章を参照してください。更に詳細な IPCHAINS の使い方に関しては、プライマ
  リ IPCHAINS サイトである http://netfilter.filewatcher.org/ipchains/
  か、 Linux IP CHAINS HOWTO Backup を参照してください。

  3.3.2.  Linux 2.0.x カーネル

  初歩的で単純なルールセットにて、 以下に記すように
  /etc/rc.d/rc.firewall を作成します -

       # rc.firewall - IPFWADM を用いた、 2.0.x カーネルの為の、
       #               初歩的で単純な IP マスカレードの設定
       #
       # 必要な IP MASQ モジュールを全て読み込みます。
       #
       #   注意 - 必要とする IP MASQ モジュールだけをロードしてください。
       #          現在の IP MASQ モジュールの全てが以下に記されていますが、
       #          コメントアウトすることでロードを抑止することができます。

       # モジュールのロードの初期段階に必要です。
       #

       #
       /sbin/depmod -a

       # Supports the proper masquerading of FTP file transfers using the PORT method
       # PORT メソッドを用いた FTP ファイル転送の適切なマスカレーディングを
       # サポートします。
       # 【訳注: PORT メソッドはパッシブモードでない、通常の FTP 接続を指します。
       # 接続後、データポートを使用する際に、 FTP サーバ側からクライアント側に
       # 対して TCP 接続を確立しようとします。
       # このモジュールは FTP クライアントをパッシブモードで使用する際には不要
       # です。】
       #
       /sbin/modprobe ip_masq_ftp

       # UDP 上で RealAudio のマスカレーディングをサポートします。
       # このモジュールがないと、 RealAudio は機能しますが、 TCP モードで動作
       # し、その結果として音質の劣化をひき起こします。
       #
       #/sbin/modprobe ip_masq_raudio

       # IRC における DCC ファイル転送のマスカレーディングをサポートします。

  【訳注: DCC (Direct Client Connection) とは、client 同士が IRC server
  を介さずに直接 connection を張ってファイルを送受したり、会話をしたりす
  るしくみを指します。 DCC の詳細については irchat-micro-howto や、
  irchat-jp パッケージ に添付されている FAQ-about-jp24.txt 等を参照して
  ください。】

  #
  #/sbin/modprobe ip_masq_irc

  # デフォルトで Quake 及び QuakeWorld のマスカレーディングをサポートします。
  # このモジュールは Linux MASQ サーバの後ろ側にいる複数のユーザの為にあり
  # ます。
  # Quake I, II, 及び III をプレイするつもりなら、 2番目の例を用いてください。
  #
  #   注意 - もし QUAKE モジュールのロードに失敗して ERROR が表示されたら、
  #   -----  それはバグが含まれた古いカーネルです。最新のカーネルに更新して
  #          ください。
  #
  #Quake I / QuakeWorld (ports 26000 and 27000)
  #/sbin/modprobe ip_masq_quake
  #
  #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
  #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960

  # CuSeeme ビデオ会議ソフトウェアのマスカレーディングをサポートします。
  #
  #/sbin/modprobe ip_masq_cuseeme

  # VDO-live ビデオ会議ソフトウェアのマスカレーディングをサポートします。
  #
  #/sbin/modprobe ip_masq_vdolive

  #致命的 - デフォルトで無効になっている IP フォワーディングを有効にします。
  #
  #           Redhat ユーザへ - /etc/sysconfig/network を以下のように
  #                             書き換えて、このオプションを変更させる
  #                             ことができるでしょう。
  #
  #                       FORWARD_IPV4=false
  #                             to
  #                       FORWARD_IPV4=true
  #
  echo "1" > /proc/sys/net/ipv4/ip_forward

  #致命的 - デフォルトで無効になっている IP デフラグメント(最適化)を有効に
  #         します。
  #         これはコンパイル時のオプションで有効でしたが、 2.2.12 の時に
  #         その動作が変更されてしまいました。
  #         このオプションは 2.0 及び 2.2 カーネルの両方に必要です。
  #
  echo "1" > /proc/sys/net/ipv4/ip_always_defrag

  # 動的 IP ユーザへ -
  #
  #   もし SLIP, PPP, 或は DHCP で動的に IP アドレスを得ているなら、ここに
  #   記す以下のオプションを有効にしてください。
  #   これによって IP MASQ において動的 IP アドレスのハッキングを実現し、
  #   容易に Diald や同様のプログラムの稼働時間を伸ばします。
  #
  #echo "1" > /proc/sys/net/ipv4/ip_dynaddr

  # MASQ タイムアウト値
  #
  #  TCP セッションにおいて 2 時間のタイムアウト値を、
  #  TCP/IP "FIN" パケットを受信後のトラフィックにおいて 10 秒のタイムアウト
  #  値を、
  #  UDP トラフィックにおいて 160 秒のタイムアウト値(MASQ された ICQ ユーザ
  #  の為に重要です) を設定します。
  #
  /sbin/ipfwadm -M -s 7200 10 160
  # DHCP - ADSL や ケーブルモデムのユーザのような、DHCP 或は BOOTP の
  #        いずれかから、外部 IP アドレスを取得する人は、この後に記述される
  #        ipchains の deny コマンドの前にこの行を必要とします。
  #        "bootp_client_net_if_name" には DHCP/BOOTP サーバがアドレスを
  #        割り当てるインターフェース名に書き換えてください。
  #        恐らく "eth0", "eth1" 等になることでしょう。
  #
  #        この例は今の所コメントアウトしています。
  #
  #
  #/sbin/ipfwadm -I -a accept -S 0/0 67 -D 0/0 68 -W bootp_clients_net_if_name -P udp

  # 単純な IP フォワーディング及びマスカレーディングを有効にします。
  #
  #  注意 - 以下の例は 192.168.0.x の内部 LAN アドレスで 255.255.255.0 又は
  #         "24" ビットのサブネットマスクよりなるネットワークが、 eth0
  #         インターフェースを通じてインターネットへ接続される場合を記して
  #         います。
  #
  #         ** あなたの内部 LAN の設定に合うように、ネットワーク番号、
  #         ** サブネットマスク及びインターネット接続のインターフェース名
  #         ** を変更してください。
  #
  /sbin/ipfwadm -F -p deny
  /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.0/24 -D 0.0.0.0/0

  一旦 /etc/rc.d/rc.firewall のルールセットを編集し終えたら、実行可能に
  するように chmod 700 /etc/rc.d/rc.firewall を入力し、実行してくださ
  い。

  さて、ファイアウォールのルールセットの準備が整いました。これをリブート
  後に実行させる必要があります。実行には、毎回手で行う方法 (苦痛です)
  か、ブートスクリプトに追加する方法があります。以下に 2つの方法を記して
  おきました -

  o  Redhat 及び Redhat から派生したディストリビューション -

     o  起動スクリプトのロードに関し、 Redhat には 2つの方法があります -
        /etc/rc.d/rc.local 或は /etc/rc.d/init.d/ の中にある init スクリ
        プトです。前者の方法が最も簡単です。やるべきことは以下の行を
        /etc/rc.d/rc.local ファイルの最後に追加することです -

        o  echo "Loading the rc.firewall ruleset.."
           /etc/rc.d/rc.firewall

     この手法の問題点は、強固なファイアウォールのルールセットを動作させ
     ようとする際に、ファイアウォールはブート終了に至るまで実行されな
     い、という点にあります。好ましい手法としては、ネットワークサブシス
     テムの設定がロードされた直後に、ファイアウォールの設定がロードされ
     るようにすることです。今の所、この HOWTO は /etc/rc.d/rc.local の設
     定のみを扱っています。より強固なシステムをお望みなら、この HOWTO の
     最後の章にリンクがある TrinityOS の10章を参照することをお薦めしま
     す。

  o  Slackware:

     o  起動スクリプトのロードに関し、 Slackware には 2つの方法がありま
        す - /etc/rc.d/rc.local 或は /etc/rc.d/rc.inet2 ファイルを編集す
        ることです。前者の方法が最も簡単です。やるべきことは以下の行を
        /etc/rc.d/rc.local ファイルの最後に追加することです -

        o  echo "Loading the rc.firewall ruleset.."

           /etc/rc.d/rc.firewall

        この手法の問題点は、強固なファイアウォールのルールセットを動作さ
        せようとする際に、ファイアウォールはブート終了に至るまで実行され
        ない、という点にあります。好ましい手法としては、ネットワークサブ
        システムの設定がロードされた直後に、ファイアウォールの設定がロー
        ドされるようにすることです。今の所、この HOWTO は
        /etc/rc.d/rc.local の設定のみを扱っています。より強固なシステム
        をお望みなら、この HOWTO の最後の章にリンクがある TrinityOS の10
        章を参照することをお薦めします。

  上述のファイアウォールのルールセットを変更したいユーザへの注意 -

  完全な TCP/IP ネットワークを実現する上述の方法の代わりに、*単体のマシ
  ンだけ*の IP マスカレーディングを実現したいと思う方もいることでしょ
  う。例えば、私は 192.168.0.2 と 192.168.0.8 のホストだけをインターネッ
  トへ接続させたいとします。この時内部ネットワーク上に他のマシンは存在し
  ません。私は (上述の) "単純な IP フォワーディング及びマスカレーディン
  グを実現する" の章の、 /etc/rc.d/rc.firewall のルールセットを、以下の
  ように書き換えます。

       #!/bin/sh
       #
       # 単純な IP フォワーディング及びマスカレーディングを有効にします。
       #
       #  注意 - 以下の例は 192.168.0.x の内部 LAN アドレスで 255.255.255.0 又は
       #         "24" ビットのサブネットマスクよりなるネットワークが、 eth0
       #         インターフェースを通じてインターネットへ接続される場合を記して
       #         います。
       #
       #         ** あなたの内部 LAN の設定に合うように、ネットワーク番号、
       #         ** サブネットマスク及びインターネット接続のインターフェース名
       #         ** を変更してください。
       #
       /sbin/ipfwadm -F -p deny
       /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.2/32 -D 0.0.0.0/0
       /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.8/32 -D 0.0.0.0/0

  よくある間違い -

  初期段階の IP Masq ユーザが犯しがちなよくある間違いとして、以下のよう
  なコマンドがあります -

  ipfwadm -F -p masquerade

  決して、デフォルトポリシーをマスカレーディングにしてはいけません。さも
  なくば、経路テーブルを操作できる誰かがあなたのゲートウェイマシンに穴を
  開け、自身の身元をマスカレードしてしまうかも知れないからです!
  繰り返します、これらの行は /etc/rc.d/rc.firewall ファイルか、あなたが
  選択する他の rc ファイルのうちの一つに追加できるか、 IP マスカレードを
  必要とする度毎に手作業で実行できます。

  より強固な IPCHAINS と IPFWADM のルールセットの例の詳細な手引に関して
  は、 ``強い IPCHAINS のルールセット'' と ``強い IPFWADM のルールセッ
  ト'' の章を参照してください。

  4.  マスカレード接続する他の内部マシンの設定

  マスカレード接続する各内部マシンでは、適切な IP アドレスを設定するだけ
  でなく、Linux マスカレードサーバと DNS サーバのゲートウェイ IP アドレ
  スを設定する必要もあります。一般的に言って、それほど難しい作業ではあり
  ません。Linux ホストのアドレス(通常は、192.168.0.1 というアドレス)を
  ゲートウェイアドレスとして入力するだけです。

  DNS(ドメインネームサービス)には、利用できる DNS サーバであれば、どの
  DNS サーバを指定してもかまいません。Linux サーバの使用しているものと同
  じ DNS サーバを指定するのが分かりやすいでしょう。このとき、任意の「ド
  メインサーチ」サフィックスを追加することもできます。

  内部マスカレードマシンの設定を終えたら、ネットワークサービスを起動し直
  すか、システムをリブートしてください。

  ここでは、Linux マスカレードサーバのアドレスとして 192.168.0.1 という
  クラス C ネットワークアドレスを使用するものとして設定の手順を説明しま
  す。192.168.0.0 と 192.168.0.255 は、LAN に予約されている TCP/IP アド
  レスです。

  以下のプラットフォームは、内部マスカレードマシンとして使用実績のあるも
  のです。これらはマスカレードに対応した OS の一例にすぎません。

  o  Apple Macintosh OS(MacTCP または Open Transport 機能の動作している
     もの)

  o  Commodore Amiga(AmiTCP または AS225 スタックの動作しているもの)

  o  Digital VAX Stations 3520 及び 3100 で稼動している UCX(VMS 用の
     TCP/IP スタックがあるもの)

  o  Digital Alpha/AXP で稼動する Linux/Redhat

  o  RS/6000 で稼動する IBM AIX

  o  IBM OS/2(Warp v3 を含む)

  o  AS/400 で稼動する IBM OS400

  o  Linux 1.2.x、1.3.x、2.0.x、2.1.x、2.2.x

  o  Microsoft DOS(NCSA Telnet パッケージを使用し、DOS Trumpet が一部機
     能しているもの)

  o  Microsoft Windows 3.1(Netmanage Chameleon パッケージを使用している
     もの)

  o  Microsoft Windows For Workgroup 3.11(TCP/IP パッケージの動作してい
     るもの)

  o  Microsoft Windows 95、OSR2、98、98SE

  o  Microsoft Windows NT 3.51、4.0、2000(Workstation 及び Server)

  o  Novell Netware 4.01 Server(TCP/IP サービスの動作しているもの)

  o  SCO Openserver(v3.2.4.2 及び 5)

  o  Sun Solaris 2.51、2.6、7

  【訳注: Microsoft Windows for Workgroup 3.11 は、日本では発売されてい
  ません。】

  4.1.  Microsoft Windows 95 での設定

  1. あらかじめネットワークカードやアダプタドライバをインストールしてお
     きます。インストールの手順については、ネットワークカードの説明書を
     参照してください。

  2. 「コントロールパネル」から「ネットワーク」を選択します。

  3. 「追加」→「プロトコル」→「製造元: Microsoft(Manufacture:
     Microsoft)」→「プロトコル: TCP/IP プロトコル」を選択します(すでに
     TCP/IP プロトコルがインストールされていれば、この作業は不要です)。

  4. Windows95 のネットワークカードの TCP/IP 項目を選択した状態で「プロ
     パティ」をクリックします。「IP アドレス」タブを開いて、IP アドレス
     を 192.168.0.x(1 < x < 255)に設定し、「サブネットマスク」を
     255.255.255.0 に設定します。

  5. 次に、「ゲートウェイ」タブを開いて、「ゲートウェイ」に 192.168.0.1
     と入力し、「追加」をクリックします。

  6. 「DNS の設定」タブで、自分のマシンの名前が示されていることを確認し
     てから、公式なドメイン名を入力します。自前のドメインがない場合に
     は、利用しているインターネットプロバイダ (ISP) のドメイン名を入力し
     ます。次に、 Linux ホストの使用している DNS サーバ (通常は、
     /etc/resolv.conf で指定されている DNS サーバ) をすべて追加します。
     こうした DNS サーバには、あなたの Linux マスカレードサーバ上にある
     独自のキャッシングネームサーバや正式な DNS サーバを使用することもで
     きますが、 ISP のサーバを指定するのが普通です。このとき、ドメイン
     サーチサフィックスを付けることもできます。

  7. よく分からなければ、ほかの設定はすべてそのままにしておきます。

  8. すべてのダイアログボックスで「OK」をクリックして、システムを再起動
     します。
  9. Linux マシンに ping を打ち、ネットワーク接続をテストします。「ファ
     イル名を指定して実行」で、以下のように入力してください - ping
     192.168.0.1
     (まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打
     てません)。 ping に「応答」がない場合には、ネットワークの設定を確認
     してください。

  10.
     C:\Windows ディレクトリに HOSTS というファイルを作成しておけば、DNS
     サーバを使用しなくても各 LAN マシンの「ホスト名」に ping が通るよう
     なります。C:\windows ディレクトリには HOSTS.SAM というサンプルファ
     イルが収められています。

  4.2.  Windows NT での設定

  【訳注: これは NT 3.x の設定方法で、UI (ダイヤログやタブ)の訳も NT 3.x
  に基づくものです。NT4.0 や Windows 2000 など、その他の Windows NT 系
  OS の設定も概念としては同様ですが、手順の詳細についてはOS のマニュアル
  を参照してください。】

  1. あらかじめネットワークカードやアダプタドライバをインストールしてお
     きます。インストールの手順については、ネットワークカードの説明書を
     参照してください。

  2. 「コントロールパネル」→「ネットワーク」→「プロトコル」を選択しま
     す。

  3. TCP/IP サービスをまだインストールしていない場合には、「ソフトウェア
     の追加」メニューから TCP/IP プロトコルと関連コンポーネントを追加し
     ます。

  4. 「ネットワークソフトウェアとアダプタカード(Network Software and
     Adapter Cards)」で「組み込まれているネットワークソフトウェ
     ア(Installed Network Software)」という選択ボックスから「TCP/IP プロ
     トコル(TCP/IP Protocol)」を選択します。

  5. 「TCP/IP の構成」で、適切なアダプタ(たとえば、[1]Novell NE2000
     Adapter)を選択します。IP アドレスを 192.168.0.x(1 < x < 255)に設定
     し、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを
     192.168.0.1 に設定します。

  6. (各オプションの機能を正確に理解していない限り)以下のオプションは有
     効にしないでください。

     o  「DHCP 自動構成を有効にする」 - このオプションは、ネットワークで
        DHCP サーバを使用していない限り無効にします。

     o  1つまたは複数の WINS サーバをセットアップしていない限り、「WINS
        サーバ」の入力欄には何も入力しないてください。

     o  「IP フォワーディングを有効にする」 - Windows NT マシンでルー
        ティングを行うのでなく、本当に、 -本当に- 正確に何をするのかを知
        らない場合には、有効にしないでください。

  7. 「DNS」をクリックし、Linux ホストの使用している DNS サーバのアドレ
     スを入力します(このアドレスは、通常、/etc/resolv.conf にあります)。
     入力を終えたら「OK」をクリックします。

  8. 「詳細」をクリックし、「Windows 名前解決に DNS を使用する」と
     「LMHOSTS の参照を行う」というオプションにチェックが入っていないこ
     とを確かめます。よく分からなければ、これらのオプションは無効なまま
     にしておきます。LMHOSTS ファイルを使用する場合、このファイルは
     C:\winnt\system32\drivers\etc に置かれます。

  9. すべてのダイアログボックスに「OK」と答えて、システムを再起動させま
     す。

  10.
     Linux マシンに ping を打ってネットワーク接続をテストします。「ファ
     イル名を指定して実行」で、以下のように入力します - ping 192.168.0.1
     (まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打
     てません)。 ping に「応答」がない場合にはネットワークの設定を確認し
     てください。

  4.3.  Windows for Workgroup 3.11 での設定

  【訳注: Microsoft Windows for Workgroup 3.11 は、日本では発売されてい
  ません。したがって、UI 用語に正規の翻訳は存在しないのですが、他の OS
  の UI 表記に合わせて、「和訳 (原文)」という形にしておきます。】

  1. あらかじめネットワークカードやアダプタドライバをインストールしてお
     きます。インストールの手順については、ネットワークカードの説明書を
     参照してください。

  2. TCP/IP 32b パッケージをインストールしていない場合には、インストール
     します。

  3. 「メイン(Main)」→「Windows の設定(Windows Setup)」→「ネットワーク
     の設定(Network Setup)」と進んで「ドライバ(Drivers)」をクリックしま
     す。

  4. 「ネットワークドライバ(Network Drivers)」で「Microsoft TCP/IP-32
     3.11b」を選択し、「設定(Setup)」をクリックします。

  5. 「IP アドレス(IP Address)」を 192.168.0.x(1 < x < 255)に設定し、
     「サブネットマスク(Subnet Mask)」を 255.255.255.0 に、「デフォルト
     ゲートウェイ(Default Gateway)」を 192.168.0.1 に設定します。

  6. (各オプションの機能を正確に理解していない限り)以下のオプションは有
     効にしないでください。

     o  「DHCP 自動構成を有効にする(Automatic DHCP Configuration)」 - こ
        のオプションは、ネットワークで DHCP サーバを使用していない限り無
        効にします。

     o  １つまたは複数の WINS サーバをセットアップしていない限り、「WINS
        サーバ(WINS Server)」の入力フィールドには何も入力しないてくださ
        い。

  7. 「DNS」をクリックし、Linux ホストの使用している DNS サーバのアドレ
     スを入力します(このアドレスは、通常、/etc/resolv.conf にあります)。
     入力を終えたら、「OK」をクリックします。

  8. 「詳細(Advanced)」をクリックして、c:\windows にある「Windows 名前解
     決に DNS を使用する(Enable DNS for Windows Name Resolution)」と
     「LMHOSTS の参照を行う(Enable LMHOSTS lookup)」にチェックを入れま
     す。

  9. すべてのダイアログボックスに「OK」と答えて、システムを再起動させま
     す。

  10.
     Linux マシンに ping を打ってネットワーク接続をテストします。「ファ
     イル名を指定して実行(File/Run)」で、以下のように入力します - ping
     192.168.0.1
     (まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打
     てません)。 ping に「応答」がない場合にはネットワークの設定を確認し
     てください。

  4.4.  UNIX 系システムでの設定

  1. あらかじめネットワークカードをインストールし、適切なアダプタドライ
     バを組み込んでカーネルをコンパイルし直しておきます。インストールの
     手順については、ネットワークカードの説明書を参照してください。

  2. net-tools パッケージのような TCP/IP ネットワーク機能をインストール
     しておきます。

  3. 「IPADDR」を 192.168.0.x（1 < x < 255）に設定したのち、「NETMASK」
     を 255.255.255.0 に、「GATEWAY」を 192.168.0.1 に、「BROADCAST」 を
     192.168.0.255 に設定します。

     たとえば、Redhat Linux の場合、/etc/sysconfig/network-
     scripts/ifcfg-eth0 ファイルを編集するか、または「コントロールパネ
     ル」を使用することによって上記の変更が行えます。その他の UNIX シス
     テム(SunOS、BSDi、Slackware Linux、Solaris、SuSe、Debian など)では
     変更手順が異なります。詳細については、個々の UNIX システムのドキュ
     メントを参照してください。

  4. ドメインネームサービス(DNS)とドメインサーチサフィックスを
     /etc/resolv.conf に追加します。UNIX のバージョンによって
     は、/etc/nsswitch.conf ファイルを編集して DNS サービスを有効にする
     必要があります。

  5. /etc/networks ファイルを更新して設定内容を反映させます。

  6. 適切なサービスを再始動するか、またはシステムを再起動します。

  7. ゲートウェイマシンへの接続をテストする為に、次に記す ping コマンド
     を発行します - ping 192.168.0.1
     (まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打
     てません)。 ping に「応答」がない場合にはネットワークの設定を確認し
     てください。

  4.5.  NCSA Telnet パッケージを使用した DOS の設定

  1. あらかじめネットワークカードをインストールしておきます。インストー
     ルの手順については、ネットワークカードの説明書を参照してください。

  2. 適切なパケットドライバを読み込みます。たとえば、I/O ポートが
     300、IRQ が 10 に設定されている NE2000 Ethernet カードを使用する場
     合には、nwpd 0x60 10 0x300 というコマンドを実行します。

  3. 新しいディレクトリを作成し、pkunzip tel2308b.zip と入力して NCSA
     Telnet パッケージを展開します。

  4. テキストエディタで config.tel ファイルを開きます。

  5. config.tel ファイルの myip=192.168.0.x(1 < x < 255),
     netmask=255.255.255.0 と、各々設定します。

  6. ここでは、hardware=packet、interrupt=10、ioaddr=60 と設定します。

  7. 少なくとも１台のマシン(つまり、Linux ホスト)をゲートウェイとして指
     定しておく必要があります。

       name=default
       host=yourlinuxhostname 【訳注: Linux ホストの名前を指定します。】
       hostip=192.168.0.1
       gateway=1

  8. ここで、ドメインネームサービスを指定します。

       name=dns.domain.com ; hostip=123.123.123.123; nameserver=1

  注 - DNS の部分は、Linux ホストが使用している DNS のアドレスに置き換え
  てください。

  9. config.tel ファイルを保存します。

  10.
     Linux マシンに telnet して(telnet 192.168.0.1)、ネットワーク接続を
     テストします。LOGIN プロンプトが表示されない場合には、ネットワーク
     の設定を確認してください。

  4.6.  MacTCP の動作する MacOS ベースシステムでの設定

  1. あらかじめ Ethernet アダプタのドライバをインストールしておきます。
     インストールの手順については、ネットワークカードの説明書を参照して
     ください。

  2. 「MacTCP コントロールパネル」を開きます。適切なネットワークドライ
     バ(EtherTalk ではなく Ethernet)を選択し、「詳細(More...)」をクリッ
     クします。

  3. 「アドレスの取得:(Obtain Address:)」で「手動入力(Manually)」をク
     リックします。

  4. 「IP アドレス:(IP Address:)」のポップアップメニューから「クラ
     スC(class C)」を選択します。このダイアログボックスのほかの部分は、
     そのままにしておきます。

  5. 「ドメインネームサーバ情報:(Domain Name Server Information:)」に適
     切なアドレスを入力します。

  6. 「ゲートウェイアドレス:(Gateway Address:)」に 192.168.0.1 と入力し
     ます。

  7. 「OK」をクリックして設定値を保存します。「MacTCP コントロールパネ
     ル」のメインウィンドウにある「IP アドレス:(IP Address:)」ボックスに
     Mac マシンの IP アドレス(192.168.0.x,1 < x < 255)を入力します。

  8. 「MacTCP コントロールパネル」を閉じます。再起動を促すダイアログボッ
     クスが現れたら、システムを再起動します。

  9. この時点で、Linux マシンに telnet してネットワーク接続をテストする
     こともできます。 MacTCP Watcher というフリーウェアプログラムを使用
     している場合には、「Ping」ボタンをクリックして、ポップアップしたダ
     イアログボックスに Linux マシンのアドレス(192.168.0.1)を入力します(
     まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打て
     ません)。ping を打っても「応答」がない場合には、ネットワークの設定
     を確認してください。

  10.
     システムフォルダに Hosts ファイルを作成すれば、LAN 内のマシンをホス
     ト名で参照できるようになります。このファイルは、すでにシステムフォ
     ルダに用意されています。(コメントアウトされた)サンプルエントリが含
     まれ、個々のニーズに合わせて修正できるようになっています。

  4.7.  Open Transport の動作する MacOS ベースシステムでの設定

  1. あらかじめ Ethernet アダプタのドライバをインストールしてしおきま
     す。インストールの手順については、ネットワークカードの説明書を参照
     してください。

  2. 「TCP/IP コントロールパネル」を開いて、「編集(Edit)」メニューから
     「利用者モード(User Mode...)」を選択します。利用者モードが少なくと
     も「詳しい情報も指定(Advanced)」に設定されていることを確認し、
     「OK」ボタンをクリックします。

  3. 「ファイル(File)」メニューから「設定(Configurations...)」を選択しま
     す。「省略時設定(Default)」を選択し、「複製(Duplicate...)」ボタンを
     クリックします。「設定の複製(Duplicate Configuration)」ダイアログで
     「IP Masq」(もしくは、特別な設定であることが分かるような名前)を入力
     します。すると、「デフォルトコピー(Default copy)」というようなメッ
     セージが表示されます。「OK」ボタンをクリックして、「済み(Make
     Active)」ボタンをクリックします。

  4. 「経由先:(Connect via:)」ポップアップから「Ethernet」を選択します。

  5. 「設定:(Configure:)」ポップアップから適切な項目を選択します。どのオ
     プションを選んでよいか分からない場合には、先程と同じ「省略時設
     定(Default)」を選択し、終了してください。私は「手動入力(Manually)」
     を選びました。

  6. 「IP アドレス:(IP Address:)」ボックスに Mac の IP アドレ
     ス(192.168.0.x、1< x < 255)を入力します。

  7. 「サブネットマスク:(Subnet mask:)」ボックスに 255.255.255.0 と入力
     します。

  8. 「ルータアドレス:(Router address:)」ボックスに 192.168.0.1 と入力し
     ます。

  9. 「ネームサーバアドレス:(Name server addr.:)」ボックスにドメインネー
     ムサーバの IP アドレスを入力します。

  10.
     「検索パスの指定:(Implicit Search Path:)」で「自分のドメイン
     名(Starting domain name)」ボックスにインターネットドメインの名前(た
     とえば、microsoft.com)を入力します。

  11.
     以下の操作は、必要に応じて行います。不正な値を指定すると、動作が不
     安定になることがあります。よく分からない場合には、ブランク、未
     チェック、または未選択のままにしておく方がいいかもしれません。
     フィールドに値が入力されている場合には、すべて削除してください。わ
     たしの知る限り、TCP/IP ダイアログには、選択済みのカスタム Hosts
     ファイルの使用を無効化するような機能はないようです。もしあれば、お
     教えください。

     ネットワークで 802.3 フレームタイプが必要とされる場合には、
     「802.3」にチェックを入れます。

  12.
     「オプション(Options...)」ボタンをクリックして、TCP/IP をアクティブ
     にします。わたしは「必要なときにだけロード(Load only when needed)」
     というオプションを使用しています。マシンをリブートせずに TCP/IP ア
     プリケーションの実行と終了を何度も繰り返すような使い方をする場合、
     「必要なときにだけロード(Load only when needed)」オプションを使用す
     れば、マシンのメモリ管理に対する影響を防止または軽減できます。この
     オプションにチェックを入れなかった場合、TCP/IP プロトコルスタック
     は、必ずロードされて、いつでも使用できる状態になります。このオプ
     ションにチェックを入れた場合、TCP/IP スタックは必要なときに自動的に
     ロードされ、不要になるとアンロードされます。このようなロードとアン
     ロードの繰り返しは、メモリの断片化をまねく恐れがあります。

  13.
     この時点で、Linux マシンに ping を打ってネットワーク接続をテストす
     ることもできます。MacTCP Watcher というフリーウェアプログラムを使用
     している場合には、「Ping」ボタンをクリックして、ポップアップしたダ
     イアログボックスに Linux マシンのアドレス(192.168.0.1)を入力します(
     まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打て
     ません)。ping を打っても「応答」がない場合には、ネットワークの設定
     を確認してください。

  14.
     システムフォルダに Hosts ファイルを作成すれば、LAN 内のマシンをホス
     ト名で参照できるようになります。このファイルは、すでにシステムフォ
     ルダに用意されています。(コメントアウトされた)サンプルエントリが含
     まれ、個々のニーズに合わせて修正できるようになっています。このファ
     イルがシステムフォルダにない場合には、MacTCP の動作しているシステム
     からコピーすることもできますし、自分で作成することもできます(この
     ファイルは、RFC952 に記述されている Unix の /etc/hosts ファイル
     フォーマットに準拠したものです)。ファイルを作成したら、「TCP/IP コ
     ントロールパネル」を開き、「Hosts ファイルの選択...(Select Hosts
     File...)」ボタンをクリックして Hosts ファイルを開きます。

  15.
     クローズボタンをクリックするか、「ファイル」メニューの「閉じる」ま
     たは「終了」を選択してから「保存」ボタンをクリックして変更内容を保
     存します。

  16.
     変更内容はただちに反映されますが、システムをリブートしてもかまいま
     せん。

  4.8.  DNS を使用した Novell ネットワークでの設定

  1. あらかじめ Ethernet アダプタに適切なドライバをインストールしておき
     ます。インストールの手順については、ネットワークカードの説明書を参
     照してください。

  2. The Novell LanWorkPlace page
     <ftp://ftp.novell.com/pub/updates/unixconn/lwp5> から tcpip16.exe
     をダウンロードします。【訳注: 上記 URI は無効です。また、
     tcpip16.exe は見つかりませんでした。代わりに、
     <ftp://ftp.novell.com/pub/allupdates/tcp312.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

  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      192.168.0.xxx
          ip_router       192.168.0.1

  上記の「ip_address」フィールドの IP アドレスを変更して(192.168.0.x、1 < x < 255)、 c:\bin\resolv.cfg を完成させます -

  SEARCH DNS HOSTS SEQUENTIAL
  NAMESERVER xxx.xxx.xxx.xxx
  NAMESERVER yyy.yyy.yyy.yyy

  5. 次に、上記の「NAMESERVER」エントリを編集して、ローカル DNS サーバの
     正しい IP アドレスに書き換えます。

  6. ゲートウェイマシンへの接続をテストする為に、次に記す ping コマンド
     を発行します - ping 192.168.0.1
     (まだ LAN の接続をテストしているだけなので、LAN の外部へ ping は打
     てません)。 ping に「応答」がない場合にはネットワークの設定を確認し
     てください。

  4.9.  OS/2 Warp での設定

  1. あらかじめ Ethernet アダプタに適切なドライバをインストールしておき
     ます。インストールの手順については、ネットワークカードの説明書を参
     照してください。

  2. まだ TCP/IP プロトコルをインストールしていない場合には、インストー
     ルします。

  3. 「プログラム/TCP/IP (LAN) / TCP/IP」 の設定を開きます。

  4. 「ネットワーク」で TCP/IP アドレス(192.168.0.x)を追加し、ネットマス
     ク(255.255.255.0)を設定します。

  5. 「ルーティング」で「追加」をクリックします。「タイプ」を「デフォル
     ト(default)」に設定し、「ルータのアドレス(Router Address)」フィール
     ドに Linux マシンの IP アドレス(192.168.0.1)をタイプします。

  6. 「Hosts」の欄には、Linux ホストで使用している DNS (ネームサーバ)の
     アドレスと同じアドレスを入力します。

  7. 「TCP/IP コントロールパネル」を閉じます。そのあとに現れる質問には、
     すべて yes と答えていきます。

  8. システムをリブートします。

  9. Linux マシンに ping し、ネットワークの設定をテストします。「OS/2 コ
     マンドプロンプトウィンドウ」で ping 192.168.0.1 と入力します。 ping
     パケットが受信されれば、すべて OK です。

  4.10.  IBM AS/400 で稼働する OS/400 での設定

  このドキュメントでは、AS/400 で稼働する OS/400(バージョン V4R1M0)での
  TCP/IP の設定方法については言及しません。

  1) AS/400 で通信設定作業を行うには、ユーザプロファイルに *IOSYSCFG
  (I/O System Configuration) という特別な権限が定義されていなければなり
  ません。ユーザプロファイルの設定内容は、DSPUSRPRF コマンドによって
  チェックできます。

  2) GO CFGTCP コマンドをタイプして、「TCP/IP の設定」メニューを呼び出し
  ます。

  3) 「オプション2(Option 2)」の「TCP/IP ルートの設定(Work with TCP/IP
  Routes)」を選択します。

  4) 「Opt」フィールドに 1 と入力してルートを追加します。 * 「ルート
  先(Route Destination)」には、*DFTROUTE とタイプします。 * 「サブネット
  マスク(Subnet Mask)」には、*NONE とタイプします。 * 「サービスのタイ
  プ(Type of Service)」には、*NORMAL とタイプします。 * 「次ホップ(Nex
  Hop)」には、ゲートウェイ(Linux マシン)のアドレスをタイプします。

  4.11.  その他のシステムでの設定

  他のプラットフォームでも、大体同じような流れで設定が行えるはずです。上
  記の各セクションを読み返して設定の流れを把握してください。ここで言及で
  きなかったシステムでの設定方法を書いてみようと思う方は、詳細な設定手順
  を ambrose@writeme.com 及び dranch@trinnet.net までお送りください。

  5.  IP マスカレードのテスト

  さて難しい作業もやっと終わり、いよいよ IP マスカレードの本格的なテスト
  をする時が来ました。まだであれば Linux ボックスを再起動して
  /etc/rc.d/rc.firewall が正常に実行されることを確認しましょう。その確認
  が終ったら次は内部 LAN の接続と、Linux ホストからインターネットへの接
  続のどちらも正しく動作していることを確認してください。

  マスカレードの設定が全て正しく行われていることを確認するために、以下の
  10 ステップのテストを行ってください。

  5.1.  ローカル PC の接続テスト

  o

  o  ステップ 1 - ローカル PC の接続テスト

     マスカレードされているネットワークの内部のコンピュータで、自分の
     ローカル IP アドレスに ping を打ってください (つまり ping
     192.168.0.10 )。このテストは TCP/IP がローカルの PC で正しく動作し
     ていることを確認します。最近のほとんどのオペレーティングシステムに
     は最初からping コマンドがあります。ローカルの IP アドレスへの ping
     が正常に動作しない場合、この HOWTO で前述の ``クライアントの設定''
     で説明した通りにクライアント PC 上で TCP/IP が正しく設定されている
     かを確かめてください。出力結果は以下のようになるはずです(ping を中
     止するには Control-C を押してください)。

     ___________________________________________________________________
     masq-client# ping 192.168.0.10
     PING 192.168.0.10 (192.168.0.10): 56 data bytes
     64 bytes from 192.168.0.10: icmp_seq=0 ttl=255 time=0.8 ms
     64 bytes from 192.168.0.10: icmp_seq=1 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.10: icmp_seq=2 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.10: icmp_seq=3 ttl=255 time=0.5 ms

     --- 192.168.0.10 ping statistics ---
     4 packets transmitted, 4 packets received, 0% packet loss
     round-trip min/avg/max = 0.4/0.5/0.8 ms
     ___________________________________________________________________

  5.2.  Linux の内部接続のテスト

  o

  o  ステップ 2 - Linux の内部接続のテスト

     マスカレードサーバで、ネットワークインターフェースカードの内部 IP
     アドレスに ping を打ってください (つまり ping 192.168.0.1)。出力結
     果は以下のようになるはずです(ping を中止するには Control-C を押して
     ください)。

     ___________________________________________________________________
     masq-client# ping 192.168.0.1
     PING 192.168.0.1 (192.168.0.1): 56 data bytes
     64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms
     64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms

     --- 192.168.0.1 ping statistics ---
     4 packets transmitted, 4 packets received, 0% packet loss
     round-trip min/avg/max = 0.4/0.5/0.8 ms
     ___________________________________________________________________

  5.3.  Linux の外部接続のテスト

  o

  o  ステップ 3 - Linux の外部接続のテスト

     次に、マスカレード・サーバのインターネットに接続されたネットワーク
     インターフェースカードの外部 IPアドレスに ping を打ってください。こ
     のアドレスは PPP、イーサネット等で ISP に接続されたアドレスです。こ
     の IP アドレスがわからなければ、インターネット・アドレスを調べるた
     めにマスカレード・サーバ上でLinuxコマンド "/sbin/ifconfig" を実行し
     てください。出力結果は以下のようになるはずです(eth0 の IP アドレス
     を調べている場合)。

     ___________________________________________________________________
     eth0      Link encap:Ethernet  HWaddr 00:08:C7:A4:CC:5B
               inet addr:12.13.14.15  Bcast:64.220.150.255  Mask:255.255.255.0
               UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
               RX packets:6108459 errors:0 dropped:0 overruns:0 frame:0
               TX packets:5422798 errors:8 dropped:0 overruns:0 carrier:8
               collisions:4675 txqueuelen:100
               Interrupt:11 Base address:0xfcf0

     ___________________________________________________________________

  ご覧の通り、この例において外部 IP アドレスは "12.13.14.15" です。
  "ifconfig" コマンドを実行することで IP アドレスがわかったので、この外
  部 IP アドレスに ping を打ちます。これはマスカレード・サーバが確かに
  ネットワークに接続していることを確かめることになります。出力結果は以下
  のようになるはずです (ping を中止するには Control-C を押してくださ
  い)。

  ______________________________________________________________________
  masq-server# ping 12.13.14.15
  PING 12.13.14.15 (12.13.14.15): 56 data bytes
  64 bytes from 12.13.14.15: icmp_seq=0 ttl=255 time=0.8 ms
  64 bytes from 12.13.14.15: icmp_seq=1 ttl=255 time=0.4 ms
  64 bytes from 12.13.14.15: icmp_seq=2 ttl=255 time=0.4 ms
  64 bytes from 12.13.14.15: icmp_seq=3 ttl=255 time=0.5 ms

  --- 12.13.14.15 ping statistics ---
  4 packets transmitted, 4 packets received, 0% packet loss
  round-trip min/avg/max = 0.4/0.5/0.8 ms
  ______________________________________________________________________

  もしこれらのテストのどちらかが動作しないなら、元に戻ってネットワークの
  ケーブル接続を再確認し、 "dmesg" コマンドを実行したときにマスカレー
  ド・サーバの2つの NIC が表示されるか確認する必要があります。この出力結
  果の例は "dmesg" コマンドの出力の最後のほうが以下のようになるでしょう
  -

  ______________________________________________________________________
  .
  .
  PPP: version 2.3.7 (demand dialling)
  TCP compression code copyright 1989 Regents of the University of California
  PPP line discipline registered.
  3c59x.c:v0.99H 11/17/98 Donald Becker
  http://cesdis.gsfc.nasa.gov/linux/drivers/
  vortex.html
  eth0: 3Com 3c905 Boomerang 100baseTx at 0xfe80,  00:60:08:a7:4e:0e, IRQ 9
    8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface.
    MII transceiver found at address 24, status 786f.
    Enabling bus-master transmits and whole-frame receives.
  eth1: 3Com 3c905 Boomerang 100baseTx at 0xfd80,  00:60:97:92:69:f8, IRQ 9
    8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface.
    MII transceiver found at address 24, status 7849.
    Enabling bus-master transmits and whole-frame receives.
  Partition check:
   sda: sda1 sda2 < sda5 sda6 sda7 sda8 >
   sdb:
  .
  .
  ______________________________________________________________________

  また、 お使いの Linux ディストリビューションでの NIC の設定が、この
  HOWTO の前のほうで推奨している通りに正しく設定されているか確認すること
  を忘れないでください。

  5.4.  ローカル PC から Linux への接続テスト

  o

  o  ステップ 4 - ローカル PC から Linux への接続テスト

     マスカレードされているネットワーク内部のコンピュータから、マスカ
     レードしている Linux ボックスの内部ネットワークのイーサネット・カー
     ドの IP アドレスに ping を打ちます(つまり ping 192.168.0.1)。これ
     は、内部ネットワーク及びルーティングが正しいことを検証します。出力
     結果は以下のようになるはずです(ping を中止するには Control-C を押し
     てください)。

     ___________________________________________________________________
     masq-client# ping 192.168.0.1
     PING 192.168.0.1 (192.168.0.1): 56 data bytes
     64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms
     64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms
     64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms

     --- 192.168.0.1 ping statistics ---
     4 packets transmitted, 4 packets received, 0% packet loss
     round-trip min/avg/max = 0.4/0.5/0.8 ms
     ___________________________________________________________________

  もしうまくいかないのなら、マスカレード・サーバ及びクライアント・コン
  ピュータのイーサネット・カードの "link" ランプが点灯していることを確か
  めてください。一般的には各イーサネット・カードの後部にある LED とハブ
  やスイッチを使用している場合はその LED が点灯します。もし点灯していな
  いならば、マスカレードされているネットワークの内部のコンピュータが ``
  クライアントの設定'' の章で説明したように正しく設定されていることを確
  かめてください。マスカレードされているクライアントに問題が無ければ、
  ネットワーク・ケーブルの配線を再確認し、マスカレードされているクライア
  ント・コンピュータの NIC と Linux ボックスの内部 NIC の両方の LINK ラ
  イトが点灯していることを確認してください。

  5.5.  内部マスカレードの ICMP 転送のテスト

  o

  o  ステップ 5 - 内部マスカレードの ICMP 転送のテスト

     マスカレードされているネットワーク内部のコンピュータから、上記ス
     テップ 3 で得られたマスカレード・サーバの外部 IP アドレスに ping を
     打ってください。このアドレスは PPP、イーサネット等で ISP に接続され
     たアドレスです。この ping は、マスカレードが動作することをテストし
     ます(特に ICMP はマスカレードされています)。

     もしうまくいかない場合、まずマスカレードされているクライアント PC
     のデフォルト・ゲートウェイがマスカレード・サーバの内部 NIC の IP ア
     ドレスを正しく指しているか確かめてください。また
     /etc/rc.d/rc.firewall のスクリプトがエラー無しに走ることを再確認し
     てください。テストのため /etc/rc.d/rc.firewall のスクリプトを再度走
     らせてみて、それが走るかどうか見てください。またほとんどのカーネル
     はデフォルトで有効になっていますが、カーネル・コンフィギュレーショ
     ンの中の "ICMP Masquerading" と /etc/rc.d/rc.firewall スクリプトの
     中の "IP Forwarding" を有効にしていることを確かめてください。

     それでもまだうまく動作しないなら、Linux マスカレード・サーバ上で次
     のコマンドを走らせてその出力結果を見てください -

     o

     o  "ifconfig" - インターネットに接続されているインターフェース
        （ppp0 や eth0 など）が正しく動作していて、正しいインターネット
        接続の IP アドレスが得られていることを確認します。この出力結果の
        一例は上記ステップ3の中で示されています。

     o  "netstat -rn" - デフォルト・ゲートウェイ (Gateway の列の中にある
        IP アドレスを持つ列) が設定されていることを確認してください。こ
        の出力結果の一例は以下のようになります。

        ________________________________________________________________
        masq-server# netstat -rn
        Kernel IP routing table
        Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
        192.168.0.1     0.0.0.0         255.255.255.255 UH        0 16384      0 eth1
        12.13.14.15     0.0.0.0         255.255.255.255 UH        0 16384      0 eth0
        12.13.14.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
        192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
        127.0.0.0       0.0.0.0         255.0.0.0       U         0 16384      0 lo
        0.0.0.0         12.13.14.1      0.0.0.0         UG        0 16384      0 eth0

        ________________________________________________________________

     0.0.0.0 で始まっている最後の行に注目してください。その Gateway
     フィールドに IP アドレスがありますね。そのフィールドの中に設定した
     IP アドレスが見えなければなりません。

     o  "cat /proc/sys/net/ipv4/ip_forward"  - その結果が "1" になってい
        ることを確認してください。そうなっていれば Linux のフォワーディ
        ングは有効となっています。

     o  2.2.x ユーザなら "/sbin/ipchains -n -L" というコマンドを、或は
        2.0.x ユーザなら "/sbin/ipfwadm -F -l" というコマンドを実行して
        みてください。特にフォワーディングの章を調べて、あなたがマスカ
        レードを有効にしているか確認してください。単純な rc.firewall
        ルールセットを使ったユーザーの場合、 IPCHAINS の出力結果の一例は
        以下のようになるでしょう。

        ________________________________________________________________
        .
        .
        Chain forward (policy REJECT):
        target     prot opt     source                destination           ports
        MASQ       all  ------  192.168.0.0/24       0.0.0.0/0             n/a
        ACCEPT     all  ----l-  0.0.0.0/0            0.0.0.0/0             n/a
        .
        .

        ________________________________________________________________

  5.6.  マスカレードされた ICMP の外部転送のテスト

  o  ステップ 6 - マスカレードされた ICMP の外部転送のテスト

     マスカレードされているネットワーク内部のコンピュータから、インター
     ネット上の外部の固定 TCP/IP アドレスに対して ping を打ちます(つまり
     ping 152.19.254.81 これは http://metalab.unc.edu - MetaLabs Linux
     Archive の home です)。これが動作する場合、ICMP マスカレーディング
     がインターネット上で動作していることを意味します。もしうまくいかな
     かった場合、再度インターネット接続をチェックしてください。それでも
     まだ動作してくれない場合、単純な rc.firewall ルールセットを使用して
     いるか、また Linux カーネルで ICMP Masqurading を有効にしてコンパイ
     ルしていることを確かめてください。またルールセットの中で enable IP
     MASQ が正しい外部インターフェースを指していることを確めてください。

  5.7.  DNS を使わないマスカレード機能のテスト

  o

  o  ステップ 7 - DNS を使わないマスカレード機能のテスト

     さて遠隔の IP アドレスへの TELNET を行ってみてください(すなわち
     telnet 152.2.254.81) (metalab.unc.edu - このサーバーはすごく忙しい
     のでログインプロンプトが現れるまで時間がかかるかもしれません)。 し
     ばらくしてログイン・プロンプトが現れましたか。 現れたなら、TCP のマ
     スカレードはうまく動作しています。もし現れなければ、198.182.196.55
     (www.linux.org) のような TELNET が使えそうな他のいくつかのホストへ
     TELNET をしてみてください。 これがなお働かない場合、今のところ
     simple rc.firewall ルールセットを使用していることを確かめてくださ
     い。この出力結果の一例は以下のようになるでしょう(TELNET から抜ける
     には Control-D を押してください)。

     ___________________________________________________________________
     masq-client# telnet 152.2.254.81
     Trying 152.2.254.81...
     Connected to 152.2.254.81.
     Escape character is '^]'.

     SunOS 5.7

     ******************** Welcome to MetaLab.unc.edu *******************

      To login to MetaLab as a user, connect to login.metalab.unc.edu.
                This machine allows no public telnet logins.

     login: Connection closed by foreign host.
     ___________________________________________________________________

  5.8.  DNS を使ったマスカレード機能のテスト

  o  ステップ 8 - DNS を使った MASQ 機能のテスト

     それでは、遠隔の HOSTNAME への TELNET を試みてください (例えば、
     "telnet metalab.unc.edu" (152.2.254.81))。これが動作するなら、DNS
     もうまく動作していることを意味します。もしステップ 6 が動作したのに
     これが動作しなかった場合、マスカレードされているクライアント・コン
     ピュータの DNS サーバ設定が ``クライアントの設定'' の章で説明したよ
     うに正しく設定されていることを確かめてください。

  5.9.  DNS を使ったマスカレード機能の追加テスト

  o

  o  ステップ 9 - DNS を使ったマスカレード機能の追加テスト

     最後のテストとして、マスカレードされているクライアント・マシンの 1
     つからいくつかの 'インターネット' WWW サイトをブラウズしてみてくだ
     さい。そして、それらにアクセスできるかどうか見てください。例え
     ば、Linux Documentation Project site へアクセスしてみてください。も
     しこれができるなら、すべてがうまく動作している!と考えられます。もし
     他のサイトでは問題が無いのに、いくつかのサイトに問題がある場合、以
     下のステップにある解決策を見てください。

     もし、 Linux Documentation Project のホームページが見えたならおめで
     とう! うまくいきましたね!  もし、その WWW サイトが正しく見られるな
     ら、 PING, TELNET, SSH や、関連する IP マスカレード・モジュールが
     ロードされた FTP, Real Audio, IRC DCCs, Quake I/II/III, CuSeeme,
     VDOLive など、他の標準的なネットワーク接続は全てうまく動作するはず
     です。もし、FTP, IRC, RealAudio, Quake I/II/III 等が動作しないか、
     あるいは動作が不完全ならば、 "lsmod" を実行して、それらに必要なマス
     カレード・モジュールがロードされていることを確かめてください。ま
     た、デフォルトでは組み込まれないサービスに必要なポートのモジュール
     をロードしているかを確認してください。もし必要なモジュールが見つか
     らなければ、あなたの /etc/rc.d/rc.firewall スクリプトがそれらのモ
     ジュールをロードしていることを確かめてください (つまり、IP マスカ
     レード・モジュールを組み込むために # の文字を削除します)。

  5.10.  その他の機能、性能に関する事項

  o  ステップ 10 - その他の機能、性能に関する事項

     もし、あなたのシステムがこれら全てのテストに合格したのに、 WWW ブラ
     ウジングや FTP または他のタイプのトラフィックが不安定であれば、7 章
     の FAQ の中にある ``MTU 問題'' を読むことをお奨めします。 FAQ の中
     には、いままで多くのユーザーの役に立ったように、あなたの役に立つ項
     目がきっとあることでしょう。

  6.  IP マスカレードに関連したその他の項目とソフトウエアサポート

  6.1.  IP マスカレードに関係した問題

  TCP/IP を使ったアプリケーションプロトコルのうちの一部には、現在の
  Linux の IP マスカレーディングでサポートされていないものもあります。と
  いうのも、これらは暗黙のうちに特定のポート番号を使っていたり、あるいは
  それらのデータストリーム中に、 TCP/IP アドレスやポート番号を暗号化して
  仕込んでいたりするからです。後者のプロトコルを動かすためには特別なプロ
  キシか IP MASQ モジュールをマスカレーディングのコードに仕込む必要があ
  ります。

  6.2.  外部から入ってくるサービス

  デフォルトではいくつかの例外をのぞいて、Linux IP マスカレーディングで
  は外部から入ってくるサービスを取り扱うことができません。

  もし、高いレベルでセキュリティを確保する必要がないなら、単純に IP と
  ポートをフォワードなりリダイレクトすればすむでしょう。やり方はたくさん
  ありますが、最も安定しているのは IPPORTFW を使ったやりかたでしょう。詳
  細は、 ``フォワーダ (ポート転送ツール)'' の章を参照してください。

  もし、外部から入ってくる接続に何らかの認証を設定したいなら、TCP-
  wrapper か Xinetd を設定して特定の IP アドレスからのみの接続を許すこと
  ができます。TIS Firewall Toolkit はツールや情報を入手するのによい場所
  でしょう。

  より詳細なセキュリティ情報については、TrinityOS
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> と IP マスカレードの情報源から見つけることができ
  ます。

  6.3.  サポートしているクライアントソフトウエアとその他の設定情報

       **Linux Masquerade Application list <http://www.tsmser-
       vices.com/masq> には、アプリケーションをLinux の IP マスカ
       レーディングを通じて動かすための多くの情報が掲載されていま
  す。このサイトは最近になって、Steve Srevemeyer によってデー
  タベースバックエンドで動作するように書き改められました。素晴
  らしい情報源です！

  一般的に、標準的な TCP 及び UDP を使ったアプリケーションであれば動作し
  ます。もし、ヒントやアドバイス等があるなら、詳細については IP マスカ
  レードの情報源 <http://ipmasq.cjb.net/> を参照してください。

  6.3.1.  IP マスカレードで動作するネットワーククライアント

  一般的なクライアント -

     Archie
        IP マスカレードがサポート済みの全てのプラットフォームで動作す
        る、ファイル探索クライアント (但し、全ての archie クライアントが
        動作するわけではない)。

     FTP
        FTP 接続については、ip_masq_ftp.o カーネルモジュールを使うこと
        で、全てのサポート済みプラットフォーム上で動作する。

        【訳注: NAT 環境の一部 (marked forward 併用時) では、
        ip_masq_ftp が動作しないことが確認されています。 ftp クライアン
        トをパッシブ (PASV) モードで起動すれば、 ip_masq_ftp.o がなくて
        も大概の ftp サーバへの接続が可能です。 PASV モードの詳細につい
        ては、例えば <http://www.rtpro.yamaha.co.jp/RT/FAQ/TCPIP/ftp-
        passive-mode.html> 辺りが参考になるかと思います。】

     Gopher クライアント
        全てのサポート済みプラットフォームで動作する。

     HTTP
        全てのサポート済みプラットフォームで動作する、Webサーフィン。

     IRC
        種々のサポート済みプラットフォームで動作する。なお、 DCC は
        ip_masq_irc.o モジュールを導入すれば動作する。

        【訳注: DCC については、 ``Linux 2.2.x カーネル'' の訳注を参照し
        てください。】

     NNTP (USENET)
        全てのサポート済みプラットフォームで動作する、 USENET ニュースク
        ライアント。

     PING
        カーネルオプションの ICMP マスカレードを有効にすることで、全ての
        プラットフォーム上で動作する。

     POP3
        すべてのプラットフォームで動作する、電子メールクライアント

     SSH
        全てのサポート済みプラットフォームで動作する、安全な TELNET/FTP
        クライアント。

     SMTP
        全てのサポート済みプラットフォームで動作する、 sendmail, qmail,
        PostFix 等のメールサーバ。

     TELNET
        全てのサポート済みプラットフォームで動作する、リモートセッショ
        ン。

     TRACEROUTE
        UNIX と Windows プラットフォームで提供されているが、いくつかの亜
        種は動かないかもしれない。

     VRML
        Windows (あるいはこれ以外のサポート済みプラットフォーム) にて動
        作する、「バーチャル・リアリティ【訳注: 仮想現実】」技術による
        Web サーフィン。

     WAIS クライアント
        全てのサポート済みプラットフォームで動作する。

  マルチメディア 及び 通信クライアント -

     全ての H.323 プログラム
        - MS Netmeeting, Intel Internet Phone Beta 及びその他の H.323 ア
        プリケーション - これらについては、 IP マスカレードを経由した接
        続で動かすための方法が今のところ２つ存在します -

        2.2.x カーネルで Microsoft Netmeeting v3.xを動かすための安定して
        動作するベータ版モジュールが IP マスカレードの情報源または
        http://www.coritel.it/projects/sofia/nat.html
        <http://www.coritel.it/projects/sofia/nat.html> にあります。これ
        らはまた別なバージョンとして、Netmeeting 2.x を 2.0.x カーネルで
        動かすためのモジュールが先の MASQ WWW サイトにありますがこれは
        Netmeeting v3.x はサポートしていません。

        商用ソフトによる別の解決方法としては、 Equivalence の PhonePatch
        <http://www.equival.com.au/phonepatch/index.html> による H.323
        ゲートウェイがあります。

     Alpha Worlds
        Windows で動作する クライアント・サーバ方式の 3D チャットプログ
        ラム

     CU-SeeMe
        全てのサポート済みプラットフォームで動作しますが、
        ip_masq_cuseeme を組み込むことが必要です。詳細については ``'' の
        章を参照してください。

     ICQ
        提供されたすべてのプラットフォームで動作。 Linux カーネルを
        IPPORTFW サポートを有効にしてコンパイルし、 ICQ 自身は 非 SOCKS
        プロキシの内部で動作するように設定しなければなりません。設定の全
        詳細については ``'' の章を参照してください。

     Internet Phone 3.2
        Windows で動作する ピア・ツー・ピアの音声による通信を可能とする
        ものです。あなたの側から相手を呼び出せば通話ができますが、他の方
        があなたを呼び出すには特定のポートに対する転送を設定しなければな
        りません。詳細については ``フォワーダ (ポート転送ツール)'' の章
        を参照してください。

     Internet Wave Player
        Windows で動作する、ネットワーク・ストリーム・オーディオ・プログ
        ラム

     Powwow
        Windows で動作する、ピア・ツー・ピアタイプの文字と音声を併用でき
        る「ホワイトボード」通信プログラムです。あなたの側から相手を呼び
        出せば通話ができますが、他の方があなたを呼び出すには特定のポート
        に対する転送を設定しなければなりません。詳細については ``フォ
        ワーダ (ポート転送ツール)'' の章を参照してください。

     Real Audio Player
        Windows で動作する、ネットワーク・ストリーミング・オーディオ・プ
        ログラムです。 ip_masq_raudio UDP モジュールを使えば、高品位の再
        生が可能です。

     True Speech Player 1.1b
        Windows で動作するストリーミング・オーディオ・プログラムです。

     VDOLive
        Windows で動作します。 ip_masq_vdolive モジュールを使えば可能で
        す。

        【訳注: 原文は ip_masq_vdolive patch となっていますが、実際はモ
        ジュールです。】

     Worlds Chat 0.9a
        Windows で動作する、クライアント・サーバ方式の 3D チャットプログ
        ラムです。

  ネットワーク対応ゲームの類 - LooseUDP パッチについての詳細は ``'' の章
  を参照してください。

     Battle.net
        ゲームマシンに対して、 TCP ポート 116 と 118、更に UDP ポート
        6112 を IPPORTFW にて有効にすることで動作します。詳細は ``フォ
        ワーダ (ポート転送ツール)'' の章を参照してください。 FSGS と
        Bnetd サーバはまだ NAT 環境でうまく動くように書き直されていませ
        んので、 IPPORTFW が必要となることに注意してください。

        【訳注: FSGS (Free Standard Game Server) は、ブリザード社製の
        ゲームソフトをネットワーク対戦時に使用する battle.net を主催する
        サーバソフトウェアです。詳細は、 Net-Games ...are you ready to
        play? <http://www.fsgs.com/> 及び B-Ring <http://b-
        ring.acc.ne.jp/> を参照してください。なお、訳者が確認した限りで
        は、 B-Ring web サイトのトップページにアクセスするには、
        ipchains で tcp ポート 11000 番を REJECT に設定しなければなりま
        せんでした。 bnetd は、 Starcraft Battle.net server のエミュレー
        タで、 GPL に従ったソースが自由に入手できるだけでなく、 Linux,
        Irix のバイナリも配布されています。詳細は、
        <http://www.bnetd.org/> 等を参照してください。】

     BattleZone 1.4
        LooseUDP パッチ及び NAT 環境でもうまく動く .DLLs from Activision
        が必要です。

     Dark Reign 1.4
        LooseUDP パッチを適用するか、またはゲームマシンに対してTCP ポー
        ト 116と118 、更に UDP ポート 6112 に対して IPPORTFW を有効にす
        ることが必要です。詳細については ``フォワーダ (ポート転送ツー
        ル)'' を参照してください。

     Diablo
        LooseUDP パッチまたは ゲームマシンに対して TCP ポート 116と118、
        更に UDP ポート 6112 に対して IPPORTFW を有効にすることが必要で
        す。新しいバージョンでは TCP ポート 6112 と UDP ポート 6112 だけ
        が使われています。詳細については、 ``フォワーダ (ポート転送ツー
        ル)'' の章を参照してください。

     Heavy Gear 2
        LooseUDP パッチまたは ゲームマシンに対して TCP ポート 116と118、
        更に UDP ポート 6112 に対して IPPORTFW を有効にすることが必要で
        す。詳細については ``フォワーダ (ポート転送ツール)'' を参照して
        ください。

     Quake I/II/III
        そのままでも動作しますが、MASQ された linux ボックスより内側の
        ネットワークに複数の Quake I/II/III プレイヤーが居る場合は、
        ip_masq_quake を使うことが必要となります。また、このモジュールは
        デフォルトでは Quake I と QuakeWorld をサポートするようにしか
        なっていません。もし、Quake II 以降や、あるいはデフォルトではな
        いサーバのポート番号を使う必要があるなら、``'' や ``'' ルール
        セットのモジュールの組み込みの章を参照してください。

     StarCraft
        LooseUDP パッチと 内部のゲームマシンに対する TCP と UDP ポート
        6112 を IPPORTFW してやる必要があります。詳細については、 ``フォ
        ワーダ (ポート転送ツール)'' を参照してください。

     WorldCraft
        LooseUDP パッチを使えば動作します。

  その他のクライアント -

     Linux net-acct パッケージ
        Linuxで動作するネットワーク管理アカウント・パッケージ

     NCSA Telnet 2.3.08
        DOSで動作する telnet, ftp, ping などを含むソフトウエアセット

     PC-anywhere for Windows
        MS-Windows で動作する、TCP/IP プロトコルを通じて、遠隔地にある
        PC を操作するためのプログラム。クライアントではなくホストとして
        動作させる場合は、特別なポート・フォワーディング設定がなければ動
        作しません。詳細については、 ``フォワーダ (ポート転送ツール)''
        の章を参照してください。

     Socket Watch
        NTP(ネットワーク経由の時刻制御プロトコル)をつかっている

  6.3.2.  IP マスカレードで完全にはサポートされていないもの -

     Intel Streaming Media Viewer Beta 1
        サーバに接続できない

     Netscape CoolTalk
        通話相手に接続できない

     WebPhone
        今のところ動作していない(相手の指定方法に不適切な前提を用いてい
        る)

  6.4.  より強力な IP ファイアウオール (IPFWADM) ルールセット

  この章では、カーネル 2.0.x のファイアウォール・ツールである IPFWADM を
  使う際の、より詳細なガイドを示します。 IPCHAINS のルールセットについて
  は後述します。
  この例は、固定的にアドレスが与えられるような PPP 接続の背後にあるファ
  イアウオールとマスカレードです (動的にアドレスが与えられる PPP の使用
  法については、含まれてはいますが無効にしています)。信頼できるインタ
  フェースは 192.168.0.1 であり、 PPP インターフェースのアドレスは「悪い
  奴ら」から守るために変更されています。出入りそれぞれのインタフェースは
  それぞれ別にリストしていますが、これはルーティングやマスカレードをわか
  りやすくする以外にIP スプーフィング【訳注: 偽装】や、不正なルーティン
  グを検出しやすくするためのものでもあります。明確に許可されていないもの
  は禁止です (実際には拒否されます)。もし、あなたの IP マスカレード BOX
  が、この rc.firewall スクリプトを入れたあとでまともに動かなくなったと
  したら、 /var/log/messages あるいは /var/adm/messages にある SYSLOG
  ファイルに何かファイアウオール関係のエラーがないか確認して、設定が間
  違っていないかを確かめてください。

  PPPやケーブルモデムなどを使った、IPFWADM によるもっと強固な IP マスカ
  レードの実用的な例については TrinityOS - Section 10
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> や GreatCircle's Firewall WWW page を参照してく
  ださい。

  注意 -  もし、 TCP/IP アドレスが PPP, ADSL, ケーブルモデムなどを経由し
  て ISP から動的に割り当てられる場合には、この強固なルールセットを起動
  時に設定することはできません。このような場合には、 IP アドレスが割り当
  てられる度にこのファイアウオール・ルールセットを再度読み込ませるか、あ
  るいは /ec/rc.d/rc.firewall ルールセットをもっとインテリジェントに作る
  必要があります。 PPPユーザがこのルールセットを適用する場合には、以降に
  示す "Dynamic PPP IP fetch" と書かれた部分のコメントを注意深く適切に外
  してください。また、強固なルールセット及び動的に割り当てられる IP アド
  レスについてのもっと詳しい解説は、TrinityOS - 10章
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> にあります。

  また、GUI ベースでファイアウオール設定を生成するようなツールがいくつか
  存在します。詳細は、 ``よくある質問 (FAQ)'' の章を参照してください。

  最後に、もし静的に割り当てられる IP アドレスを使っているなら、以下の例
  の "ppp_ip="your.static.PPP.address"" となっている部分をあなたの IP ア
  ドレスに書き換えてください。

  【訳注: 一般的なプロバイダ経由の PPP 接続の場合、プロバイダ側から IP
  アドレスが動的に割り当てられますので、殆どの個人ユーザはこの行に IP ア
  ドレスを書き入れる必要はありません。】

  ----------------------------------------------------------------

  #!/bin/sh
  #
  # /etc/rc.d/rc.firewall: IPFWADM を使ったやや強固なファイアウオール・ルールセット
  #

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  # テスト用 - しばらく待機してからすべてのファイアウオールルールをクリアする。
  # 10分後にすべての設定を一旦解除する必要があるなら、以下のコメントを解除してください。
  # (sleep 600; \
  # ipfwadm -I -f; \
  # ipfwadm -I -p accept; \
  # ipfwadm -O -f; \
  # ipfwadm -O -p accept; \
  # ipfwadm -F -f; \
  # ipfwadm -F -p accept; \
  # ) &

  # 必要なすべての IP マスカレードモジュールをロードする
  #
  #   注意 -  必要な IP マスカレードモジュールだけをロードします。すべてのIP マスカレード
  #           モジュールが以下に記述されていますが、ロードされないようにコメントとなって
  #           います。

  # モジュールを最初にロードする時にまず必要
  #
  /sbin/depmod -a

  # PORT 方式を使ってFTP ファイル転送における適切な IP マスカレードを提供します
  #
  /sbin/modprobe ip_masq_ftp

  # UDP プロトコルを経由した、RealAudio のマスカレードを提供します。このモジュールがなくても
  #       RealAudio は TCP モードで動作しますが、音質は低下します。
  #
  #/sbin/modprobe ip_masq_raudio

  # IRC DCC ファイル転送のマスカレードを提供します
  #
  #/sbin/modprobe ip_masq_irc

  # 以下の指定によって Quake と QuakeWorld をデフォルトで提供します。
  # このモジュールは Linux の マスカレードサーバから内側のユーザが
  # 複数存在する場合のためのものです。
  # もし、Quake I, II, あるいは III を使いたいならば、２番目の例を
  # 使ってください。
  #
  #   注意 - もし、QUAKE モジュールのロード時にエラーが出た場合は、古いバグのあるカーネルが動いています。
  #   -----  その場合はより新しいカーネルに置き換えてください。
  #
  #Quake I / QuakeWorld (ports 26000 and 27000)
  #/sbin/modprobe ip_masq_quake
  #
  #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
  #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960

  # CuSeeme ビデオ会議ソフトウエアに対するマスカレードを提供
  #
  #/sbin/modprobe ip_masq_cuseeme

  # VDO-Live ビデオ会議ソフトウエアに対するマスカレードを提供
  #
  #/sbin/modprobe ip_masq_vdolive

  #非常に重要 - IP フォワーディングはデフォルトでは無効になっているので、有効にします。
  #
  #           Redhat ユーザの場合は、/etc/sysconfig/network のオプション指定行を
  #
  #                       FORWARD_IPV4=false
  #                             から
  #                       FORWARD_IPV4=true
  #           に変更してください。
  #
  echo "1" > /proc/sys/net/ipv4/ip_forward

  #非常に重要 - 2.2.x カーネルでは IP デフラグメンテーションのサポートはデフォルトでは無効です。
  #
  #           コンパイル時の指定によるものですが、2.2.12 カーネル以降は変更されています。
  #
  echo "1" > /proc/sys/net/ipv4/ip_always_defrag

  # 動的に割り当てられる IP アドレスを使用するユーザ向け -
  #
  #   IP アドレスを SLIP, PPP, DHCP などから動的に取得する場合は、次のオプションを有効にしてください。
  #   このオプションは、IP マスカレードで動的 IP アドレスの操作を許可し、Dialdや同様なプログラムの
  #   使用をより容易にするものです。
  #
  #echo "1" > /proc/sys/net/ipv4/ip_dynaddr

  # あなたの静的な IP アドレスを以下に指定します
  #
  #   動的に割り当てられる IP アドレスを使用するなら、新しい IP アドレスが割り当てられるたびに適用
  #   するように、ルールセットを書き換えなければなりません。そのためには、、以下のような一行のスクリプトを
  #   有効にする必要があります。（スクリプト例内の一重引用符と二重引用符の違いは意味を持ちますので注意）
  #
  #
  #   DHCP を利用する場合 -
  #   ---------------------
  #   TCP/IP アドレスを DHCP から取得する場合は、 ppp セクションの下にある、
  #   "#" でコメントアウトされた部分を有効にし、"ppp0" とある部分を、
  #   インターネット接続用のインタフェースの名前に置き換えなければ
  #   なりません (例えば、 eth0 や eth1 等) 。
  #   DHCP は割り当てた IP アドレスを随時変更することに注意してください。
  #   この変更を正しく反映させるには、 DHCP リースが更新される度毎に、
  #   DHCP クライアントを再度実行してファイアウォールルールセットを反映
  #   させなければなりません。
  #
  #     注意 #1 -   旧バージョンの "pump" のような (新しいバージョンでは
  #                 問題点は修正されています) DHCP クライアントによっては、
  #                 IP アドレスリース更新後にスクリプトを実行することが
  #                 できないものがあります。
  #                 その場合は、"dhcpcd" か "dhclient" に置き換えなければ
  #                 なりません。
  #
  #     注意 #2 -  最近のバージョンの "dhcpcd" では、コマンド文法が変わって
  #                います。
  #
  #               旧バージョンでの指定方法は、次のようなものでした -
  #                         dhcpcd -c /etc/rc.d/rc.firewall eth0
  #
  #               新しいバージョンでは次のように指定します -
  #                         dhcpcd eth0 /etc/rc.d/rc.firewall
  #
  #     注意 #3 -  Pump を使う場合、 /etc/pump.conf ファイルに次の記述を
  #                追加してください -
  #
  #                   script /etc/rc.d/rc.firewall
  #
  #
  #   PPP を利用する場合 -
  #   --------------------
  #   お気づきではないかもしれませんが、PPP 接続が確立する度毎に、
  #   /etc/ppp/ip-up スクリプトが動作します。
  #   これを利用して、新しい IP アドレスの取得と強固なファイアウォール・
  #   ルールセットの再設定を行います。
  #
  #   もし、/etc/ppp/ip-up がすでに存在しているなら、それを編集して"/etc/rc.d/rc.firewall"
  #   という記述を最後のあたりに追加するようにしてください。
  #
  #   もし、/etc/ppp/ip-up スクリプトが存在しなかったなら、/etc/rc.d/rc.firewall スクリプト
  #   を実行するための次のようなリンクを作成する必要があります。
  #
  #       ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up
  #
  #   * 続いて、以下のコメントアウトされたシェルコマンドを必要に応じて有効にしてください *
  #
  #
  #
  # PPP 及び DHCP を利用する場合 -
  # --------------------------------
  # 次の行の "#" を削除して、その次の行の先頭に "#" を入れてください。
  #
  #ppp_ip="`/sbin/ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e
  #
  ppp_ip="your.static.PPP.address"

  # マスカレードのタイムアウト
  #
  #   2 時間= TCP セッション
  #  10 秒 = TCP/IP の "FIN" パケットが受信されたあとのトラフィック
  #  60 秒 = UDP トラフィック (マスカレードされた環境での ICQ ユーザは、
  #           ICQ クライアントの設定で、ファイアウォールタイムアウト値を
  #           30秒に指定しなければなりません)
  #
  /sbin/ipfwadm -M -s 7200 10 60

  #############################################################################
  # 到着パケットについて、既存のルールを破棄し、初期ポリシーを
  # 拒絶【訳注: reject】に設定。実際は、拒絶してログに記録する
  # 最終ルールを用意するので、このポリシーは動作には無関係になる。
  # 【訳注: ルールを reject にすると、ルールに合致したパケットを破棄して、
  # "destination-unreachable" (目的地に到達しない) という ICMP パケットを
  # 相手側 (送信元アドレスのマシン) に発信します。
  # deny にすると、"destination-unreachable" パケットも出さずに、受信した
  # パケットを単に破棄します。
  #
  /sbin/ipfwadm -I -f
  /sbin/ipfwadm -I -p reject

  # ローカルマシン側からローカルインタフェースに入るパケットは、どこに
  # 向かうものも有効とする。
  #
  /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0

  # リモートインタフェース側から入って来る IP スプーフィング【訳注: IP 偽装】
  # パケットや迷子パケットは、本来ならローカルマシンからであるべきものなので、
  # 拒絶する。
  #
  /sbin/ipfwadm -I -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o

  # リモートインターフェースから入る、宛先アドレスが PPP アドレスのパケットは、
  # どの発信元アドレスからのものも有効とする。
  # 【訳注: 以下のコマンドの前に、
  # /sbin/ipfwadm -I -a deny -V $ppp_ip -S 0.0.0.0/0 -y -D $ppp_ip/32 -o
  # があるか、或は以下のコマンドが
  # /sbin/ipfwadm -I -a accept -V $ppp_ip -S 0.0.0.0/0 -k -D $ppp_ip/32
  # となっている方がより好ましいと思います。】
  #
  /sbin/ipfwadm -I -a accept -V $ppp_ip -S 0.0.0.0/0 -D $ppp_ip/32

  # ループバックインタフェースを有効とする
  #
  /sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

  # 最終ルール。その他の到着パケットは拒絶され、ログに記録される。ポリシーには
  # ログ記録のためのオプションがないため、これがその役割を代わりに果たすことに
  # なる。
  #
  /sbin/ipfwadm -I -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o

  #############################################################################
  # 送出パケットについて、既存のルールを破棄し、初期ポリシーを
  # 拒絶【訳注: reject】に設定。実際は、拒絶してログに記録する最終ルールを
  # 用意するので、このポリシーは動作には無関係になる。
  #
  /sbin/ipfwadm -O -f
  /sbin/ipfwadm -O -p reject

  # ローカルインタフェースから出力される、ローカルネットへ向かうパケットは
  # どこからのものも有効とする。
  #
  /sbin/ipfwadm -O -a accept -V 192.168.0.1 -S 0.0.0.0/0 -D 192.168.0.0/24

  # リモートインタフェース上でローカルネットへ送出されるパケットは、
  # 偽装ルーティングなので、拒絶する。
  #
  /sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o

  # リモートインタフェース上でローカルネットから送出されるパケットは、
  # あり得ないマスカレーディングなので、拒絶する。
  #
  /sbin/ipfwadm -O -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o

  # リモートインタフェース上でローカルネットから送出されるパケットは、
  # あり得ないマスカレーディングなので、拒絶する。
  #
  /sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o

  # 【訳注: 上記ルールは2つ上のものと全く同じですので、明らかに間違いと
  # 思われます。】

  # リモートインタフェースからのそれ以外の送出パケットは有効
  #
  /sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0

  # ループバックインタフェースを有効にする
  #
  /sbin/ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

  # 最終ルール。その他の送出パケットは拒絶され、ログに記録される。
  # ポリシーにはログ記録のためのオプションはないため、これがその役割を
  # 代わりに果たすことになる。
  #
  /sbin/ipfwadm -O -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o

  #############################################################################
  # 転送パケットについて、既存のルールを破棄し、初期ポリシーを
  # 否定【訳注: deny】に設定。実際は、否定してログに記録する最終ルールを
  # 用意するので、このポリシーは動作には無関係になる。
  #
  /sbin/ipfwadm -F -f
  /sbin/ipfwadm -F -p deny

  # ローカルインタフェース上のローカルネットからその他の宛先へのパケットを
  # マスカレードする。
  #
  #
  /sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0
  #
  # 最終ルール。その他の転送パケットは拒絶され、ログに記録される。
  # ポリシーにはログ記録のためのオプションはないため、これがその役割を
  # 代わりに果たすことになる。
  #
  /sbin/ipfwadm -F -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o

  #ファイル終わり。

  IPFWADM では、 -I, -O あるいは -F ルールによって、特定のサイトへのトラ
  フィックを阻止することができます。このルールは最初から最後へと順に適用
  されていきます。また、 IPFWADM の "-a"オプションは、既存のルール群に対
  して新しいルールを「追加」するものだということに注意してください。これ
  に留意すると、全体のルールを指定する前に、他の個別の制限が必要となって
  きます。たとえば、次のようなものです -

  -I (到着)ルール -

  -I (input) ルールを使う -

  【訳注: 全てのインターフェースに到着するパケットが通過するルールです。
  個別のインターフェースの指定は、 -V オプション又は -W オプションで指定
  します。】

  これはおそらくトラフィックをブロックする為の、最も手っ取り早くて効率の
  良い方法ですが、マスカレードされたマシンに対してのみ阻止でき、ファイア
  ウォールマシン自身へのトラフィックは阻止できません。もちろん、この組み
  合わせを許可したいということもあるでしょうが。

  さて、 204.50.10.13 というアドレスへのトラフィックを阻止する場合 -

  /etc/rc.d/rc.firewall ルールセットの中の

  /etc/rc.d/rc.firewall のルールセットの中 -

  ... -I ルールのはじまり ...

  # ローカルインタフェース上で、 204.50.10.13 というマシンへのパケットを
  # 拒絶してログを取る。

  #
  /sbin/ipfwadm -I -a reject -V 192.168.0.1 -S 192.168.0.0/24 -D 204.50.10.13/32
  -o

  # ローカルインタフェース上で、あらゆるローカルマシンから発せられる
  #  パケットは、どこへ向かうものも有効とする。

  #
  /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0

  ... -I ルールの終わり ...

  -o (送出)ルール -

  -O (output) ルールを使う -

  【訳注: 全てのインターフェースから送出されるパケットが通過するルールで
  す。個別のインターフェースの指定は、 -V オプション又は -W オプションで
  指定します。】

  これはトラフィックをブロックするには遅い方法です。何故ならば、パケット
  は破棄されるより以前にマスカレードを通ってしまうからです。しかしながら
  このルールでも、禁止しているサイトからのファイアウォールマシンに対する
  アクセスを阻止することができます。

  ... -O ルールの始まり ...

  # 204.50.10.13 に向けられたパケットを拒否してログを採取する
  #
  /sbin/ipfwadm -O -a reject -V $ppp_ip -S $ppp_ip/32 -D 204.50.10.13/32 -o

  # 上記以外のリモートインタフェース上でのあらゆるパケットの送出は
  # 有効にする。
  #
  /sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0

  ... -O ルールの終わり ...

  -F (転送)ルールの使用 -

  -F (forward) ルールを使う -

  【訳注: 全てのインターフェース上で転送されるパケットが通過するルールで
  す。個別のインターフェースの指定は、 -V オプション又は -W オプションで
  指定します。】

  おそらく、トラフィックをブロックするには、 -I (input) ルールより遅い方
  法ですが、マスカレードされたマシン (たとえば、ローカルエリアネットワー
  クのマシン) に対するトラフィックだけは阻止できます。ファイアウォールマ
  シンは禁止したいサイトから到達可能のままです。

  ... -F ルールの開始 ...

  # PPP インタフェース上での 204.50.10.13 に向けたパケットを拒否してログ採取する
  #
  /sbin/ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/24 -D 204.50.10.13/32 -o

  # ローカルインターフェース側のローカルネットからのマスカレードを行う
  #
  /sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0

  ... -F ルールの終わり ...

  192.168.0.0/24 のマシンから 204.50.11.0 に向けてのアクセスを許す特別な
  ルールは不要です。なぜなら、それらは全体的なマスカレーディングのルール
  によってまかなわれているからです。

  注意 - 前出の方法以外にも、各インタフェースを記述する方法はあります。
  例えば、 "-V 192.168.255.1" という記述の代わりに、"-W eth0"とも書けま
  すし、 "-V $ppp_ip" という記述の代わりに "-W ppp0" とも書けます。 "-V"
  を使う方法は IPCHAINS へ移行する場合には使えません。しかし、 IPFWADM
  のユーザがどちらを選択するかは個人の自由であり、明文化して述べるまでも
  ないことです。

  6.5.  IPCHAINS によるさらに強固な IP ファイアウオール・ルールセット

  この章では、 2.2.x 系カーネルのファイアウォールツールである IPCHAINS
  の詳細なガイドを記します。 IPFWADM については前出を参照してください。

  この例は、固定的な IP アドレスを持つ PPP 接続の背後にあるファイア
  ウォールとマスカレードです (動的にアドレスを与えられる PPP の命令につ
  いては含まれてはいますが有効にはしていません)。信頼できるインタフェー
  スは 192.168.0.1 であり、 PPP インターフェースのアドレスは「悪い奴ら」
  から守るために書き換えています。出入りそれぞれのインタフェースは別々に
  列挙していますが、これは ルーティングやマスカレードをわかりやすくする
  以外に IP スプーフィングや不正なルーティングを検出しやすくするためのも
  のでもあります。明確に許可されていないものは禁止です(実際には拒絶され
  ます)。もし、あなたの IP マスカレード BOX が、この rc.firewall スクリ
  プトを入れたあとでまともに動かなくなったとしたら、 /var/log/messages
  あるいは /var/adm/messages にある SYSLOG ファイルに何かファイアウオー
  ル関係のエラーがないか確認して、設定が間違っていないかを確かめてくださ
  い。

  PPPやケーブルモデムなどを使った、IPCHAINS によるもっと強固な IP マスカ
  レードの実用的な例については TrinityOS - Section 10
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> や GreatCircle's Firewall WWW page を参照してく
  ださい。

  注意 #1 - 2.2.16以前の Linux カーネルには、 TCP 接続でルート権限を奪取
  される危険性があり、更に 2.2.11 以前のものには IPCHAINS のフラグメン
  テーションに関するバグがあります。このため、強固な IPCHAINS ルールセッ
  トを稼働させる際には、攻撃に対して無防備です。修正されたバージョンの
  カーネルを使ってください。

  注意 #2 -  もし、TCP/IPアドレスが PPP, ADSL, ケーブルモデムなどを経由
  して ISP から動的に割り当てられる場合には、この強固なルールセットを起
  動時に設定することはできません。このような場合には、IP アドレスが割り
  当てられる度にこのファイアウォール・ルールセットを再度読み込ませるか、
  あるいは /ec/rc.d/rc.firewall ルールセットをもっとインテリジェントに作
  る必要があります。 PPP ユーザがこのルールセットを適用する場合には、後
  述する "Dynamic PPP IP fetch" と書かれた部分のコメントを注意深く適切に
  外してください。また、強固なルールセット及び動的に割り当てられる IP ア
  ドレスについてのもっと詳しい解説は、 TrinityOS - Section 10
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> にあります。

  また、GUI ベースでファイアウォールの設定を生成するようなツールがいくつ
  か存在します。詳細は ``よくある質問 (FAQ)'' の章を参照してください。

  最後に、もし静的に割り当てられる IP アドレスを使っているなら、以下の例
  の "ppp_ip="your.static.PPP.address"" となっている部分をあなたの IP ア
  ドレスに書き換えてください。
  ----------------------------------------------------------------

  #!/bin/sh
  #
  # /etc/rc.d/rc.firewall - やや強固な IPCHAINS ファイアウオール・ルールセット
  #

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  # 必要なすべての IP マスカレードモジュールをロードする
  #
  #   注意 - 必要な IP マスカレードモジュールだけをロードします。すべての IP マスカレードモジュールが
  #          以下に記述されていますが、ロードされないようにコメントとなっています。

  # モジュールを最初にロードする時にまず必要
  #
  /sbin/depmod -a

  # PORT 方式を使ってFTP ファイル転送における適切な IP マスカレードを提供します
  #
  /sbin/modprobe ip_masq_ftp

  # UDP プロトコルを経由した、RealAudio のマスカレードを提供します。このモジュールがなくても
  #       RealAudio は TCP モードで動作しますが、音質は低下します。
  #
  /sbin/modprobe ip_masq_raudio

  # IRC DCC ファイル転送のマスカレードを提供します
  #
  #/sbin/modprobe ip_masq_irc

  # 以下の指定によって Quake と QuakeWorld をデフォルトで提供します。このモジュールは Linux
  #   の マスカレード・ボックスから内側の複数ユーザが存在する場合のためのものです。
  #   もし、Quake I, II, あるいは III を使いたいならば、２番目の例を使ってください。
  #
  #   注意 - もし、QUAKE モジュールのロード時にエラーが出た場合は、古いバグの
  #   ------ あるカーネルが動いています。
  #          その場合はより新しいカーネルに置き換えてください。
  #
  #Quake I / QuakeWorld (ports 26000 and 27000)
  #/sbin/modprobe ip_masq_quake
  #
  #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
  #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960

  # CuSeeme ビデオ会議ソフトウエアに対するマスカレードを提供
  #
  #/sbin/modprobe ip_masq_cuseeme

  # VDO-Live ビデオ会議ソフトウエアに対するマスカレードを提供
  #
  #/sbin/modprobe ip_masq_vdolive

  #非常に重要 - IP フォワーディングはデフォルトでは無効になっているので、有効にします。
  #
  #           Redhat ユーザの場合は、/etc/sysconfig/network のオプション指定行を
  #
  #                       FORWARD_IPV4=false
  #                             から
  #                       FORWARD_IPV4=true
  #           に変更してください。
  #
  echo "1" > /proc/sys/net/ipv4/ip_forward

  #非常に重要 - 2.2.x カーネルでは IP デフラグメンテーションのサポートはデフォルトでは無効です。
  #
  #           コンパイル時の指定によるものですが、2.2.12 カーネル以降は変更されています。
  #           また、ディストリビューションによっては /proc テーブルから
  #           このオプションが除外されていることもありますので、その場合は
  #           /proc ディレクトリに存在しなければ気にしなくても構いません。
  #
  echo "1" > /proc/sys/net/ipv4/ip_always_defrag

  # 動的に割り当てられる IP アドレスを使用するユーザ向け -
  #
  #   IP アドレスを SLIP, PPP, DHCP などから動的に取得する場合は、次のオプションを有効にしてください。
  #   このオプションは、IP マスカレードで動的 IP アドレスの操作を許可し、Diald や同様なプログラムの
  #   使用をより容易にするものです。
  #echo "1" > /proc/sys/net/ipv4/ip_dynaddr

  # インターネットを必要とする、いくつかのプログラムに対する LooseUDP パッチを有効にする
  #
  #  IP マスカレードを経由してインターネットゲームを動かそうとしていて、どうしてもそれが動かないという
  #  のなら、このオプションを有効にしてみてください(以下の "#" を削除します)。UDP ポートスキャンに
  #  対する脆弱性の可能性があるので、このオプションはデフォルトで禁止されています。
  #
  #echo "1" > /proc/sys/net/ipv4/ip_masq_udp_dloose

  # あなたの静的な IP アドレスを以下に指定します
  #
  #   動的に割り当てられる IP アドレスを使用するなら、新しい IP アドレスが割り当てられるたびに適用
  #   するように、ルールセットを書き換えなければなりません。そのためには、、以下のような一行のスクリプトを
  #   有効にする必要があります。（スクリプト例内の一重引用符と二重引用符の違いは意味を持ちますので注意）
  #
  #
  #   DHCP を利用する場合 -
  #   -----------
  #   TCP/IP アドレスを DHCP から取得する場合は、ppp セクションの下にある"#"でコメントアウトされた
  #   部分を有効にし、"ppp0" とある部分を、インターネット接続用のインタフェースの名前に置き換えなければ
  #   なりません(たとえば、eth0 や eth1 などに）。
  #   DHCP は割り当てた IP アドレスを随時変更することに注意してください。この変更を正しく反映させるには
  #   DHCP リースが更新されるたびに、DHCP クライアントを再度実行してファイアウオールルールセットを反映
  #   させなければなりません。
  #
  #     注意 1 -   いくつかの DHCP クライアントは古いバージョンの "pump" で（新しいバージョン
  #               では問題点は修正されています）、それはリース更新後にスクリプトを実行することが
  #               できないものです。その場合は、"dhcpcd" か "dhclient" に置き換えなければ
  #               なりません。
  #
  #     注意 2 -   "dhcpcd" は最近のバージョンでは、コマンド文法が変わっています。
  #
  #               旧バージョンでの指定方法は、次のようなものでした -
  #                         dhcpcd -c /etc/rc.d/rc.firewall eth0
  #
  #               新しいバージョンでは次のように指定します -
  #                         dhcpcd eth0 /etc/rc.d/rc.firewall
  #
  #
  #     注意 3 -   Pump を使う場合、/etc/pump.conf ファイルに次の記述を追加してください。
  #
  #                   script /etc/rc.d/rc.firewall
  #
  #   PPP を利用する場合 -
  #   ----------
  #   お気づきではないかもしれませんが、PPP 接続が行われるたびに、/etc/ppp/ip-up スクリプトが
  #   常に動作します。このことを利用して、新しい IP アドレスの取得と強固なファイアウオール・ルール
  #   セットの再設定を行います。
  #
  #   もし、/etc/ppp/ip-up がすでに存在しているなら、それを編集して"/etc/rc.d/rc.firewall"
  #   という記述を最後のあたりに追加するようにしてください。
  #
  #   もし、/etc/ppp/ip-up スクリプトが存在しなかったなら、/etc/rc.d/rc.firewall スクリプト
  #   を実行するための次のようなリンクを作成する必要があります。
  #
  #       ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up
  #
  #   * 続いて、以下のコメントアウトされたシェルコマンドを必要に応じて有効にしてください *
  #
  # PPP 及び DHCP を利用する場合 -
  # -------------------
  # 次の行の "#" を削除して、その次の行の先頭に "#" を入れてください。
  #extip="`/sbin/ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e

  # 静的な IP アドレスで PPP を使う場合 -
  #
  extip="your.static.PPP.address"

  # PPP と DHCP を使う場合は、必ずこの部分に正しい外部インタフェースの名前を指定します
  extint="ppp0"

  # 内部の IP アドレスの割り当てを指定します
  intint="eth0"
  intnet="192.168.0.0/24"

  # マスカレードのタイムアウト
  #
  #   2 時間= TCP セッション
  #  10 秒 = TCP/IP の "FIN" パケットが受信されたあとのトラフィック
  #  60 秒 = UDP トラフィック (マスカレードされた環境での ICQ 利用者は ICQ 自体の設定の中で
  #          30秒のファイアウオールタイムアウトを指定しなければなりません)
  #
  #
  ipchains -M -S 7200 10 60

  #############################################################################
  # 到着パケットについて、既存のルールを破棄し、初期ポリシーを
  # 拒絶【訳注: reject】に設定。実際は、拒絶してログに記録する
  # 最終ルールを用意するので、このポリシーは動作には無関係になる。
  # 【訳注: ルールを REJECT にすると、ルールに合致したパケットを破棄して、
  # "destination-unreachable" (目的地に到達しない) という ICMP パケットを
  # 相手側 (送信元アドレスのマシン) に発信します。
  # DENY にすると、"destination-unreachable" パケットも出さずに、受信した
  # パケットを単に破棄します。
  #
  ipchains -F input
  ipchains -P input REJECT

  # ローカルマシン側からローカルインタフェースに入るパケットは、どこに
  # 向かうものも有効とする。
  #
  ipchains -A input -i $intint -s $intnet -d 0.0.0.0/0 -j ACCEPT

  # リモートインタフェース側から入って来る IP スプーフィング【訳注: IP 偽装】
  # パケットや迷子パケットは、本来ならローカルマシンからであるべきものなので、
  # 拒絶する。
  #
  ipchains -A input -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT

  # リモートインターフェースに入って来る、宛先アドレスが PPP アドレスの
  # パケットは、どの発信元アドレスからのものも有効とする。
  # 【訳注: 以下のコマンドの前に、
  # ipchains -A input -i $extint -S 0/0 -d $extip/32 -p tcp -y -j DENY -l
  # があるか、或は以下のコマンドが
  # ipchains -A input -i $extint -S 0/0 -d $extip/32 -p tcp ! -y -j ACCEPT
  # となっている方がより好ましいと思います。】
  #
  ipchains -A input -i $extint -s 0.0.0.0/0 -d $extip/32 -j ACCEPT

  # ループバックインタフェースを有効とする
  #
  ipchains -A input -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

  # 最終ルール。その他の到着パケットは拒絶され、ログに記録される。ポリシーには
  # ログ記録のためのオプションがないため、これがその役割を代わりに果たすことに
  # なる。
  #
  ipchains -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

  #############################################################################
  # 送出パケットについて、既存のルールを破棄し、初期ポリシーを
  # 拒絶【訳注: reject】に設定。実際は、拒絶してログに記録する最終ルールを
  # 用意するので、このポリシーは動作には無関係になる。
  #
  ipchains -F output
  ipchains -P output REJECT

  # ローカルインタフェースから出力される、ローカルネットへ向かうパケットは
  # どこからのものも有効とする。
  #
  ipchains -A output -i $intint -s 0.0.0.0/0 -d $intnet -j ACCEPT

  # リモートインタフェース上でローカルネットへ送出されるパケットは、
  # 偽装ルーティングなので、拒絶する。
  #
  ipchains -A output -i $extint -s 0.0.0.0/0 -d $intnet -l -j REJECT

  # リモートインタフェース上でローカルネットから送出されるパケットは、
  # あり得ないマスカレーディングなので、拒絶する。
  #
  ipchains -A output -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT

  # リモートインタフェースからのそれ以外の送出パケットは有効
  #
  ipchains -A output -i $extint -s $extip/32 -d 0.0.0.0/0 -j ACCEPT

  # ループバックインタフェースを有効とする。
  #
  ipchains -A output -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

  # 最終ルール。その他の送出パケットは拒絶され、ログに記録される。
  # ポリシーにはログ記録のためのオプションはないため、これがその役割を
  # 代わりに果たすことになる。
  #
  ipchains -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

  #############################################################################
  # 転送パケットについて、既存のルールを破棄し、初期ポリシーを
  # 否定【訳注: deny】に設定。実際は、否定してログに記録する最終ルールを
  # 用意するので、このポリシーは動作には無関係になる。
  #
  ipchains -F forward
  ipchains -P forward DENY

  # ローカルインタフェースでのローカルネットからその他の宛先へのパケットをマスカレードする
  #
  ipchains -A forward -i $extint -s $intnet -d 0.0.0.0/0 -j MASQ
  #
  # 最終ルール。その他の転送パケットは拒絶され、ログに記録される。
  # ポリシーにはログ記録のためのオプションはないため、これがその役割を
  # 代わりに果たすことになる。
  #
  ipchains -A forward -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

  # ファイルの終わり

  IPCHAINS では "input", "output", "forward" の各ルールにおいて、特定の
  サイトへのトラフィックを阻止することができます。このルールは上から下へ
  と順に適用されていき、 "-A"オプションは IPCHAINS に対して新しいルール
  を既存のルール群に対して「追加」するものだということに注意してくださ
  い。これに留意すると、全体のルールを指定する前に他の個別の制限が必要と
  なってきます。たとえば、次のようなものです -

  "input" ルールを使う -

  【訳注: 全てのインターフェースに到着するパケットが通過するルールです。
  個別のインターフェースの指定は、 -i オプションに続けてインターフェース
  名を指定します。】

  これはおそらくトラフィックをブロックする為の、最も手っ取り早くて効率の
  良い方法ですが、マスカレードされたマシンに対してのみ阻止でき、ファイア
  ウォールマシン自身へのトラフィックは阻止できません。もちろん、この組み
  合わせを許可したいということもあるでしょうが。

  さて、 204.50.10.13 というアドレスへのトラフィックを阻止する場合 -

  /etc/rc.d/rc.firewall ルールセットの中の

  ... 入力 ルールのはじまり ...

  # ローカルインタフェース側の 204.50.10.13 というマシンへのパケットを拒否する
  #
  ipchains -A input -s 192.168.0.0/24 -d 204.50.10.13/32 -l -j REJECT

  # ローカルインタフェース側のどのローカルマシンのどこへ向かうパケットも有効とする
  #
  ipchains -A input -s 192.168.0.0/24 -d 0.0.0.0/0 -l -j ACCEPT

  ... 入力 ルールの終わり ...

  "output" ルールを使う -

  【訳注: 全てのインターフェースから送出されるパケットが通過するルールで
  す。個別のインターフェースの指定は、 -i オプションに続けてインター
  フェース名を指定します。】

  これはトラフィックをブロックするには遅い方法です。何故ならば、パケット
  は破棄されるより以前にマスカレードを通らなければならないからです。しか
  しながらこのルールでも、禁止しているサイトからのファイアウォールマシン
  に対するアクセスを阻止することができます。

  ... 出力ルールの始まり ...

  # 204.50.10.13 に向けられたパケットを拒否してログを採取する
  #
  ipchains -A output -s $ppp_ip/32 -d 204.50.10.13/32 -l -j REJECT

  # その他のリモートインタフェース側への送出は有効にする
  #
  ipchains -A output -s $ppp_ip/32 -d 0.0.0.0/0 -l -j ACCEPT

  ... 出力ルールの終わり ...

  "forward" ルールを使う -

  【訳注: 全てのインターフェース上で転送されるパケットが通過するルールで
  す。個別のインターフェースの指定は、 -i オプションに続けてインター
  フェース名を指定します。】

  おそらく、トラフィックをブロックするには "input" ルールより遅い方法で
  すが、マスカレードされたマシン (例えばローカルエリアネットワークのマシ
  ン) に対するトラフィックだけは阻止できます。ファイアウォールマシンは禁
  止したいサイトから到達可能のままです。

  ... 転送ルールの開始 ...

  # PPP インタフェース上での 204.50.10.13 に向けたパケットを拒否してログ採取する
  #
  ipchains -A forward -i ppp0 -s 192.168.0.0/24 -d 204.50.10.13/32 -l -j REJECT

  # ローカルインターフェース側のローカルネットからのマスカレードを行う
  #
  ipchains -A forward -i ppp0 -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ

  ... 転送ルールの終わり ...

  192.168.0.0/24 のマシンから 204.50.11.0 に向けてのアクセスを許す特別な
  ルールは不要です。なぜなら、それらは全体的なマスカレーディングのルール
  によってまかなわれているからです。

  注意 - IPFWADM と違って、IPCHAINS はインタフェース名を指定する方法が一
  つしかありません。 IPCHAINS は "-i eth0" のように指定しますが、
  IPFWADM では "-W"でインタフェース名を指定し、また "-V" でインタフェー
  スのIPアドレスを指定します。

  6.6.  複数の内部ネットワークへの IP マスカレード

  複数の内部ネットワークを持つ場合のマスカレードはかなり単純です。まず確
  認することは、全ての (内部と外部両方の) ネットワークが正しく動作してい
  ることです。それから、両方の内部インタフェースについてインターネットと
  他の内部インタフェースに対してマスカレードしてトラフィックを許可するよ
  うに設定します。

  続いて、内部インタフェースについて、マスカレードを許可します。この例で
  は、全部で３つのインタフェースを使います - eth0 はインターネットへの接
  続を行う外部インタフェース、 eth1 は 192.168.0.0 のネットワーク、そし
  て eth2 は 192.168.1.0 のネットワークです。 rc.firewall ルールセットで
  の、既存のマスカレードを許可している行の後に、次のような内容を追加しま
  す -

  o  IPCHAINS が利用可能な 2.2.x 系カーネルの場合

       # 内部のインタフェースの間での相互の通信を許可する
       /sbin/ipchains -A forward -i eth1 -d 192.168.0.0/24
       /sbin/ipchains -A forward -i eth2 -d 192.168.1.0/24

       # インターネットに対するマスカレードされた通信を許可する
       /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24 -d 0.0.0.0/0
       /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.1.0/24 -d 0.0.0.0/0

  o  IPFWADM が利用可能な 2.0.x 系カーネルの場合

       # 内部のインタフェースの間での相互の通信を許可する
       /sbin/ipfwadm -F -a accept -V 192.168.0.1 -D 192.168.1.0/24
       /sbin/ipfwadm -F -a accept -V 192.168.1.1 -D 192.168.0.0/24

       # インターネットに対するマスカレードされた通信を許可する
       /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.0.0/24 -D 0.0.0.0/0
       /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.1.0/24 -D 0.0.0.0/0

  eth0 が複数回指定されるのは、上の例では間違いではないことに注意してく
  ださい。Linux カーネルはどのインタフェースが送出トラフィックに対して使
  われるのかを知る必要があるからです。上の例で eth0 はインターネットに対
  する接続のためのもので、それぞれの内部インタフェースについて指定されて
  います。

  6.7.  オンデマンド・ダイアルアップ接続での IP マスカレード

  1. インターネットに対するダイアルアップ時に自動的にネットワークの設定
     を行いたいと思われるなら、 Diald デマンド・ダイアルアップ・サービス
     プログラムか、新しいバージョンの PPPd パッケージが非常に役立つで
     しょう。Diald はより緻密な設定ができるのでお勧めです。

  2. Diald を設定するには Setting Up Diald for Linux Page
     <http://home.pacific.net.sg/~harish/diald.config.html> や TrinityOS
     - Section 23 <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS> を参照してみてください。

  3. Diald と IP マスカレードが適切に設定されれば、マスカレードされたマ
     シンからの Web 参照や telnet, ftp といったセッションが開始された時
     点で、Linux ボックスは動的にインターネットへの接続を実行するように
     なります。

  4. 最初の接続は、タイムアウトが発生するでしょう。これはアナログモデム
     を使っている場合、避けられないことです。クライアントのプログラム
     (Web ブラウザなど) にとってみれば、 PPP接続とモデムのリンクを確立す
     るために時間が取られることになります。しかし、これは一般的なことで
     はありません。もし、このような事が起こったら、 (Web ページの参照な
     どの) インターネットに対するトラフィックリクエストが再度発生したと
     きに再度同じ事を繰り返してうまく動作するでしょう。また、カーネルオ
     プションの echo "1" > /proc/sys/net/ipv4/ip_dynaddr の実行は、接続
     時のこの初期設定を支援するためのものです。

  6.8.  IPPORTFW, IPMASQADM, IPAUTOFW, REDIR, UDPRED, 及びその他のポート
  転送ツール

  IPPORTFW, IPAUTOFW, REDIR, UDPRED 等のプログラムは Linux の IP マスカ
  レードで使用される汎用的な TCP と UDP ポートの転送のために使われるツー
  ルです。これらのツールは一般的に FTP や Quake 用に作成された IP マスカ
  レード用のモジュールの代わりに使うことができます。これらポートフォワー
  ダによって、インターネットから IP マスカレードサーバの元で動作するプラ
  イベートアドレスに配置されたマシンに向かって送られるデータ接続をリダイ
  レクトすることができます。転送機能は、 TELNET, WWW, SMTP, FTP (後述す
  る特別なパッチが必要です), ICQ や、その他多くのものを含んでいます。

  注意 - IP マスカレードを伴わない単純なポート転送をお求めでも、Linux の
  IP 転送ツールを使うには、カーネルと IPFWADM か IPCHAINS いずれかによる
  ルールセットが必要です。

  ではなぜ異なる選択が幾つもあるのでしょうか?  IPAUTOFW, REDIR それに
  UDPRED (これらへの URL は ``2.0.x カーネルの必要条件'' の章に記載して
  あります) などは、IP マスカレードを使うユーザにとって、これらの機能を
  提供する最初のツール類でした。その後、 Linux の IP マスカレード機能が
  成熟するにつれて、これらのツールは IPPORTFW という、もっと高度な解決方
  法にとって代わられるようになりました。より新しいツールの登場によっ
  て、IPAUTOFW や REDIR という古いツールのユーザは大いに落胆させられるこ
  とになりました。というのも、これらのツールは Linux カーネルに対して、
  自身の存在を適切に通知することなく動いているので、負荷のかかるような状
  況では Linux サーバをクラッシュさせてしまうようなことすらあったからで
  す。 MFW という最新の方法もあります。 MFW の最も大きな利点は、IPCHAINS
  ツールとの高い統合性です。この方法では、IPCHAINS ルールセットは特定の
  パケットに対して印を付け、適切な転送を行うためのルールを提供するために
  使われます。今のところ、これについてはこの HOWTO では述べていません。

  注意 #2 - 2.2.x 系カーネルにおける PORTFW では、ネットワーク内部のマシ
  ンから、インターネット上にあるネットワーク外部のマシンに対するアクセス
  に同じポート転送された IP アドレスを使うことができますが、ネットワーク
  内部の他のマシンに対しては使えません。もし、これがあなたの場合に該当す
  るなら、ネットワーク内部のサーバへのリダイレクトを行うために REDIR
  ポート転送ツールを試してみてください。後に述べる ``'' ツールセットを使
  うのも良い考えだと思います。なぜ内部/外部の転送が動かないのかの技術的
  説明については、2.2.x 系カーネルの PORTFW に関する章の最後にある Juan
  による注釈をご覧ください。

  注意 #3 - 内部のマスカレードされた FTP サーバに対するトラフィックの転
  送は PORTFW FTP として知られていますが、現在 2.0.x 系と 2.2.x 系のいず
  れのカーネルでも提供されるようになりました。現状では主流の Linux カー
  ネルではサポートされていませんが、カーネルにパッチを適用するか、外部
  FTP プロキシサーバによって可能となります。カーネルモジュールコードはま
  だ実験中で、PASSIVE 接続よりは ACTIVE FTP セッションによる接続のほうが
  良好な結果となる場合もあるようです。興味深いことに、逆の振る舞いで動く
  ケースもあるようです。あなたの場合の結果がどうだったか私たちに教えてく
  ださい。この件について、以降の2.0.x 系 及び 2.2.x 系それぞれの章に別な
  パッチを用いた解決方法が詳細に述べられています。

  2.0.x 系カーネルの IPPORTFW でも、 2.2.x 系カーネルの IPPORTFW サポー
  トのある IPMASQADM を使う場合でも、ネットワークセキュリティに関する考
  慮はそれらのポートフォワーダ組み込みの前に必要です。なぜなら、これらの
  ツールは基本的には転送された TCP/UDP ポートについて、ファイアウォール
  上にセキュリティ上の穴を作るためのものだからです。これは、あなたの
  Linux マシン【訳注: ファイアウオール自身】に対して被害を及ぼすことはあ
  りませんが、トラフィックが転送される先の内部マシンに対して影響をおよぼ
  します。とはいえ、そんなに心配しないでください。これは Steven Clarke
  (IPPORTFW の作者) が注意を促すために述べなければならなかった、以下のよ
  うな場合です -

          「ポート転送は、IPFWADM や IPCHAINS ルールの内部からのみ呼び出されるように作られており、
          IP マスカレードは、IP フォワーディングの一種の拡張と見なされる。
          しかしながら、 IPPORTFW は IPFWADM ルールセットの到着及び送出マスカレードルールに適合する
          パケットだけについて、取り扱うようになっている。」

  ここで述べているのは、強固なファイアウオールルールセットの必要性なので
  す。強固なルールセットについては ``強い IPFWADM のルールセット'' と ``
  強い IPCHAINS のルールセット'' を参照してみてください。

  ですから、 IPPORTFW による転送サポートを 2.2.x または 2.0.x 系のカーネ
  ルにインストールするためには、IPPORTFW を利用できるように Linux カーネ
  ルを再コンパイルしなければなりません。

  o  2.2.x 系カーネルをお使いの方は、すでに IPPORTFW カーネルオプション
     を、 IPMASQADMを通じて使うための手順で指定しているはずです。

  o  2.0.x 系カーネルをお使いの方は、単純なカーネルオプションのパッチを
     適用する必要があります。

  6.8.1.  2.2.x 系カーネルでの、IPPORTFW サポートつき IPMASQADM

  まず最初に、最新の 2.2.x カーネル【訳注: 翻訳時点では 2.2.19 でした】
  を /usr/src/linuxディレクトリに展開します。まだこの手順をやっていない
  方は、 ``カーネルのコンパイル'' の章の詳細を参照してください。続い
  て、"ipmasqadm.c" プログラムを ``2.2.x カーネルの必要条件'' に述べてい
  る方法でダウンロードして入手し、 /usr/src/ ディレクトリに置きます。

  引き続いて、 2.2.x 系カーネルを ``カーネルのコンパイル'' の章に示され
  ているようにコンパイルします。カーネルのオプションを設定する際
  に、IPPORTFW オプションには YES を指定してください。カーネルがコンパイ
  ルでき、再起動を確認したら、再びこの章に戻って説明の続きを読んでくださ
  い。

  では、 IPMASQADM ツールのコンパイルとインストールを行います -

               cd /usr/src
               tar xzvf ipmasqadm-x.tgz
               cd ipmasqadm-x
               make
               make install

  さて、例としてここで、あなたのインターネット上の TCP/IP アドレスに対す
  る全ての WWW インターネットトラフィック (ポート80) を、内部のマスカ
  レードされたマシンの IP アドレス、 192.168.0.10 に向ける場合を取り上げ
  ます。

  PORTFW FTP - これについては先に説明したように、 FTP サーバに対するネッ
  トワーク内部のマスカレードされたマシンへの転送は 2つの方法があります。
  最初の方法はまだベータレベルですが、内部にあるマスカレードされた FTP
  サーバへ、 FTP 接続をポート転送する 2.2.x カーネル用の IP_MASQ_FTP モ
  ジュールを使うことです。もう一つの方法は、 FTP プロキシプログラム (
  ``2.2.x カーネルの必要条件'' の章に URL を記載してあります) です。 FTP
  カーネルモジュールについては、 IP_MASQ_FTP モジュールをアンロードした
  り再ロードすることなしに、 PORTFW の FTP ポートを動的に追加することが
  できますが、これはその時点で存在している他の FTP 転送を無効にしてしま
  います。この新しいコードの詳細については、 IP マスカレードの web サイ
  ト <http://ipmasq.cjb.net/> をご覧ください。また、 2.0.x 系カーネルの
  章に、ポート転送された FTP 接続に関する例と若干の情報があります。

  注意 - ポート転送をポート 80 で有効にしたなら、それ以降は IP マスカ
  レードサーバでそのポートを使うことはできなくなります。つまり、マスカ
  レードサーバ上ですでに Web サーバを動かしていた場合は、ポート転送に
  よって、すべてのインターネットからの Web アクセスは IP マスカレード
  サーバのページではなく、内部の Web サーバに対して振り向けられてしまう
  のです。

  いずれにせよ、ポート転送を有効にするには、 /etc/rc.d/rc.firewall の
  ルールセットを書き換えなければいけません。以下のような行を追加します
  が、"$extip" の部分はあなたのインターネットに公開する IP アドレスを指
  定するように書き換えてください。

  注意 - もし、PPP, ADSL, ケーブルモデムなどにより ISP から動的な TCP/IP
  アドレスを割り当てられている場合は、 /etc/rc.d/rc.firewall ルールセッ
  トをもっとインテリジェントに作成する必要があります。そのための情報は、
  前出の ``強い IPCHAINS のルールセット'' の章か TrinityOS - Section 10
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> に強固なルールセットを動的な IP アドレス環境で作
  成する詳細が述べられています。ここではヒントだけ - PPPの 場合は
  /etc/PPP/ip-up です。

               /etc/rc.d/rc.firewall
               --

               #echo "IPPORTFW によるリダイレクションを外部 LAN に適用.."
               #
               /usr/sbin/ipmasqadm portfw -f
               /usr/sbin/ipmasqadm portfw -a -P tcp -L $extip 80 -R 192.168.0.10 80

               --

  これだけです！ /etc/rc.d/rc.firewall ルールセットを再度実行してテスト
  してみてください。

  もし、"ipchains: setsockopt failed: Protocol not available" というエ
  ラーメッセージを受け取ってしまったら、あなたはまだ新しいカーネルを動作
  できていません。新しいカーネルを正しく組み込んだことを確認し、 LILO を
  再度実行し、再起動してみてください。もし、新しいカーネルが動いているの
  が確実ならば、 "ls /proc/net/ip_masq" コマンドを実行して、 "portfw"
  ファイルが存在しているか確認してください。これが無いなら、カーネルの構
  築でなにかエラーが出ているはずですので、そこからもう一度やり直してくだ
  さい。

  なぜ PORTFW が外部と内部のインタフェースの双方でトラフィックをリダイレ
  クトできないのか理解したい方のために、 Juanjo 【訳注: IP_MASQ_FTP モ
  ジュールの作者】からのメールをここでお見せします。彼はもっとうまく説明
  してくれています -

  ______________________________________________________________________
  From Juanjo Ciarlante
  --

  >次のような場合 -
  >
  >ipmasqadm portfw -a -P tcp  -L 1.2.3.4 80 -R 192.168.2.3 80
  >
  >外部からの接続は問題なく動くけれど、内部から同じ 1.2.3.4 に対する
  >接続要求は失敗します。
  >ローカルネットの 192.168.2.0 から www.periapt.com へのアクセスを、
  >プロキシなしで許可するようなチェインを用意することはできますか?

  実際のところできないね。

  大概、僕は ipmasqadm ルールを外部の為に設定し、*そして*
  ポートリダイレクタを内部のために設定しているんだ。
  リダイレクションの前に ipmasqadm のフックがあるから、このフックは外部
  からの接続の発生を捉える。
  _だけど_ そうでない場合は、何もしないで素通ししてしまう(つまり、適当な
  ルールの適用が行われる)。

  実際、"概念的な"問題は、真のクライアント (ピア) の IP パケットの
  到達先が、 (ありがたいことにマスカレードによって) 目的のサーバとして
  同じネットワークに存在していることに起因する。

  失敗する"ローカルなマスカレード"というのは次のような場合 -
     クライアント: 192.168.2.100
     マスカレード: 192.168.2.1
     サーバ:       192.168.2.10

  1)クライアントからサーバへのパケット
   a) クライアント:   192.168.2.100:1025  -> 192.168.2.1:80   [SYN]
   b) (マスカレード): 192.168.2.100:1025  -> 192.168.2.10:80  [SYN]
                     (そして、 192.168.2.1:61000 と 192.168.2.100:1025 が
                      関連づけられて記憶される)
   c) サーバ:         マスカレードされたパケットを受ける (1b)

  2)サーバからクライアントへのパケット
   a) サーバ:        192.168.2.10:80     -> 192.168.2.100:1025  [SYN,ACK]
   b) クライアント:  192.168.2.100:1025  -> 192.168.2.10:80     [RST]

  さあ、 (1a) と (2a) を比べてごらん。
  見ての通り、同じネットワークに存在するもの同士だと、サーバは
  マスカレードを通らずに直接クライアントに向けて応答するんだ。
  (サーバがマスカレードにパケット操作を元に戻させるようなことはしない)
  だから、クライアントは接続をリセットしてしまう。

  これが役に立つとうれしいよ。

  よろしく

  Juanjo
  ______________________________________________________________________

  6.8.2.  2.0.x 系カーネルでの IPPORTFW

  最初に、/usr/src/linux ディレクトリに最新の 2.0.x 系カーネルがあること
  を確認してください。まだだった場合の詳細については、 ``カーネルのコン
  パイル'' の章を参照してください。続いて、 "ipportfw.c" プログラムと
  "subs-patch-x.gz" カーネルパッチを ``2.0.x カーネルの必要条件'' の章を
  参照して入手し、 /usr/src/ ディレクトリに置きます。
  注意 - "subs-patch-x.gz" の "x" はサイトで入手できる最新のバージョン番
  号に読み替えてください。

  次に、内部サーバへの FTP トラフィックのポート転送を考えているなら、
  ``2.0.x カーネルの必要条件'' の章にある、新しい IP_MASQ_FTP モジュール
  のパッチを入手してください。これは2.2.x 系カーネルとは違うパッチで、動
  的に FTP ポートを割り当てる機能などは提供されていないことにご注意くだ
  さい。

  それから、IPPORTFW パッチ(subs-patch-x.gz)を Linux ディレクトリにコ
  ピーします。

               cp /usr/src/subs-patch-1.37.gz /usr/src/linux

  つづいて、IPPORTFW カーネルオプションを作るためにパッチを適用します。

               cd /usr/src/linux
               zcat subs-patch-1.3x.gz | patch -p1

  よろしい。 ``カーネルのコンパイル'' の章に示されているように、カーネル
  をコンパイルしましょう。カーネルの構成時に有効になった IPPORTFW オプ
  ションをここでは YES に設定してください。コンパイルが完了し、再起動し
  たなら、この章の説明を続けます。

  新しくコンパイルされたカーネルを使って、実際の"IPPORTFW" プログラムを
  インストールします。

               cd /usr/src
               gcc ipportfw.c -o ipportfw
               mv ipportfw /usr/local/sbin

  さて、この例ではあなたのインターネット上の TCP/IP アドレスに対する全て
  の WWW インターネットトラフィック (ポート80) を内部のマスカレードされ
  たマシンの IP アドレス、 192.168.0.10 に向ける場合を取り上げます。

  注意 -  ポート 80 でポート転送を有効にすると、 Linux IP マスカレード
  サーバからはそのポートは使えなくなります。つまり、もし予めマスカレード
  サーバ上で WWW サーバが動作していたとして、そのサーバで内部のマスカ
  レードされたコンピュータへのポート 80 での転送を行ったならば、全てのイ
  ンターネット上のユーザはマスカレードサーバ上のページではなく、-内部の-
  WWW サーバ上のページを見ることになります。これを回避するための唯一の方
  法は、たとえば 8080 のような別なポートで転送をかけることです。これで動
  作はできますが、内部のマスカレードされた WWW サーバに対するアクセスに
  対して、全てのインターネット上のユーザは :8080 という文字を URL に追加
  しなければなりません。

  いずれにせよ、ポート転送を有効にするには、/etc/rc.d/rc.firewall ルール
  セットを編集しなければなりません。そして、次のような行を追加し
  "$extip" という文字列をあなたのインターネット上の IP アドレスに置き換
  えなければなりません。

  注意 -   もし、 PPP や ADSL や ケーブルモデムなどのような形で ISP から
  動的な IP アドレス割り当てを受けているならば、 /etc/rc.d/rc.firewall
  ルールセットはもっと知的に動作するよう作成しなければなりません。そのた
  めには、既出の ``強い IPCHAINS のルールセット'' の章か、 TrinityOS -
  Section 10 <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> を参照して、強固なルールと動的な IP アドレス割り
  当てに関する情報を参照してください。ここではちょっとしたヒントだけを -
  PPP ユーザでは /etc/ppp/ip-up です。

               /etc/rc.d/rc.firewall
               --

               #echo "IPPORTFW によるリダイレクションを外部 LAN について有効に .."
               #
               /usr/local/sbin/ipportfw -C
               /usr/local/sbin/ipportfw -A -t$extip/80 -R 192.168.0.10/80

           # ポート 20 に対するポート転送は動作中の接続に対しては不要です。
           # 内部にある FTP サーバはポート 20 番での接続を開始して、既存のやり方での
           # マスカレードされたコンピュータを取り扱うことができます。
               --

  これだけです！ /etc/rc.d/rc.firewall ルールセットを再度動かしてテスト
  しましょう！

  もしも、"ipfwadm: setsockopt failed: Protocol not available" というエ
  ラーメッセージが出てしまった場合は、あなたはまだ新しいカーネルを動作さ
  せていないことになります。新しいカーネルファイルを適切な場所に移動させ
  て、LILO コマンドを再実行し、システムを再起動させてください。

  FTP サーバに対するポート転送 -

  もし内部ネットワークに存在する FTP サーバへのポート転送を考えているな
  ら、事態はより複雑になります。というのも、標準的な IP_MASQ_FTP カーネ
  ルモジュールはこのような動作のためには作られていないにも関らず、何人か
  のユーザからは問題なく動いているという報告があるからです。私の知るかぎ
  り、パッチをあてない状態では 30 分を越える転送時間を要する場合において
  は、問題がないと言っているユーザでも転送は失敗すると思います。どちらに
  せよ、既存の ip_masq_ftp モジュールを使った次のようなポート転送の方法
  を試みて、あなたの環境で動くかどうか確かめて見ることをお薦めします。も
  しそれが動かないならば、改良された ip_masq_ftp モジュールを試しましょ
  う。

  Fred Viles はポート転送が動作するように改良した IP_MASQ_FTP モジュール
  を、それらを必要とするユーザのために作成しています。このモジュールが使
  えるかどうかを調べたいなら、次のアーカイブをダウンロードしてみてくださ
  い。Fred の作成した文書では詳細に述べられています。また、このパッチは
  あくまで実験的なものなのでそのつもりで扱ってください。さらに、2.0 系
  カーネルから 2.2 系カーネルまでのいくつかのパッチしか存在していませ
  ん。

  さて、2.0 系カーネル用のパッチを動かすためには、次の事項が必要です -

  o  この章の最初に説明したように、IPPORTFW カーネルパッチを適用します。

  o  "msqsrv-patch-36" パッチを ``2.0.x カーネルの必要条件'' の章にある
     Fred Viles の FTP サーバから取ってきて、/usr/src/linux に置きます。

  o  "cat msqsrv-patch-36 | patch -p1" を実行して、新しいコードをカーネ
     ルに適用します。

  o  つづいて、オリジナルの "ip_masq_ftp.c" カーネルモジュールを新しいも
     のに置き換えます。

     o  mv /usr/src/linux/net/ipv4/ip_masq_ftp.c
        /usr/src/linux/net/ipv4/ip_masq_ftp.c.orig

     o  mv /usr/src/linux/ip_masq_ftp.c
        /usr/src/linux/net/ipv4/ip_masq_ftp.c

  o  最後に、新しいコードを含んだカーネルをビルドしてインストールしま
     す。

  この作業を終えてから、/etc/rc.d/rc.firewall ルールセットを編集して、次
  のような行を追加しますが、"$extip"の部分は外部 IP アドレスとなるように
  注意してください。

  この例では、先程のようにインターネットからあなたの TCP/IP アドレスに対
  する FTP (ポート番号 21) の接続要求は、内部にある IP アドレス
  192.168.0.10 にあるマスカレードされたコンピュータに転送されます。

  注意 - 一旦ポート 21 でポート転送を有効にすると、このポートは IP マス
  カレードサーバからは使えなくなります。つまり、 FTP サーバがあらかじめ
  マスカレードサーバで動作していたとしたら、ポート転送はすべてのインター
  ネットからの接続に対しては、マスカレードサーバではなく内部の FTP サー
  バへの接続を提供することになります。

          /etc/rc.d/rc.firewall
          --

          #echo "IPPORTFW によるリダイレクションを外部 LAN について有効に .."
          #
          /usr/local/sbin/ipportfw -C
          /usr/local/sbin/ipportfw -A -t$extip/21 -R 192.168.0.10/21

          #注意 - もしあなたが複数のローカルなポート番号を使っていてポート転送を
          #      複数の FTP サーバ(たとえば 21,2121,2112など)に対して行いたいなら
          #      ip_masq_ftp モジュールを複数のポートに対してリスンするように設定
          #      しなければなりません。そのためには、たとえば、
          #      /etc/rc.d/rc.firewall の内容を
          #
          # /sbin/modprobe ip_masq_ftp ports=21,2121,2112
          #
          # のようにし、これが有効となるように /etc/rc.d/rc.firewall スクリプトを
          # 再度実行しなければなりません。

          # ポート 20 に対するポート転送は動作中の接続に対してはおそらく不要です。
          # 内部にある FTP サーバはポート 20 番での接続を開始して、既存のやり方での
          # マスカレードされたコンピュータを取り扱うことができます。
          --

  これだけです! /etc/rc.d/rc.firewall ルールセットを再度動かしてテストし
  ましょう!

  もしも、"ipfwadm: setsockopt failed: Protocol not available" というエ
  ラーメッセージが出てしまった場合は、あなたはまだ新しいカーネルを動作さ
  せていないことになります。新しいカーネルファイルを適切な場所に移動させ
  て、LILO コマンドを再実行し、システムを再起動させてください。新しい
  カーネルを動かしているつもりなのに、このエラーが出た場合は、 "ls
  /proc/net" を実行して "ip_portfw" ファイルが存在するかどうか確認してく
  ださい。これが存在しない場合は、カーネルの構成時にエラーが出ているはず
  です。もう一度やり直しましょう。

  6.9.  CU-SeeMe と Linux の IP マスカレード

  Linux での IP マスカレードでは "ip_masq_cuseeme" カーネルモジュールを
  使うことによって CuSeeme をサポートしています。このカーネルモジュール
  は、 /etc/rc.d/rc.firewall スクリプトで読みこまれなければなりません。
  "ip_masq_cuseeme" モジュールが読み込まれると、リモートのリフレクタ【訳
  注: CU-SeeMeのサーバのこと】やユーザとの間で接続を行うことができます。

  注意 - CuSeeme を使用する場合は、IPAUTOFW より IPPORTFW ツールを使いま
  しょう。

  もし CuSeeMe に対してもう少し明確な情報が必要ならば、 Michael Owings's
  CuSeeMe page <http://www.swampgas.com/vc/ipmcus.htm> にある Mini-HOWTO
  か IP マスカレードの情報源 にミラーされた内容を見てください。

  6.10.  ミラビリス社の ICQ

  Linux のマスカレードサーバの背後で ICQ を動かすようにするための方法は
  二つあります。一つの方法は、ICQ のマスカレードモジュールを使うことで、
  もう一つは IPPORTFW を使うことです。

  ICQ マスカレードモジュールにはいくつかの利点があります。このモジュール
  は複数の ICQ ユーザに対しても単純な設定で動作します。また ICQ クライア
  ントプログラムに対してなんら特別な変更を加える必要がありません。最近で
  は このモジュールのバージョン 2.2 系カーネルへのアップデートではファイ
  ル転送やリアルタイムチャットもサポートするようになりました。しか
  し、2.0 系カーネルではファイル転送やリアルタイムチャットは完全にはサ
  ポートされていません。ともかく、2.2 系カーネルの上で IP マスカレードを
  行って ICQ を動かすようにしたほうがいいだろうとは思います。

  IPPORTFW を設定する場合、Linux と ICQ クライアントに対して ICQ メッ
  セージング、 URL、チャット、ファイル転送などなどを変更しなければなりま
  せん。

  もし、 Andrew Deryabin の djsf@usa.net 2.2 系カーネル向け ICQ IP マス
  カレードモジュールに関心があるなら、 ``2.2.x カーネルの必要条件'' の章
  に詳しい説明があります。

  マスカレードサーバの内部で ICQ を動かすために古典的な方法を取りたい場
  合は、次のような方法で行います -

  o  まず最初に、IPPPORTFW を有効にした状態でカーネルを動作させます。 ``
     フォワーダ (ポート転送ツール)'' の章を参照してください。

     o  続いて、/etc/rc.d/rc.firewall ファイルに次のような記述を追加しま
        す。この例では、10.1.2.3 は外部の IP アドレスで、内部のコン
        ピュータの IP アドレスは 192.168.0.10 であると仮定しています。

        下記は、IPFWADM による 2.0 系カーネルのための例です。

          ここで二つの例をあげておきました。どちらも問題なく動作します。

          例その 1
          --
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2000 -R 192.168.0.10/2000
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2001 -R 192.168.0.10/2001
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2002 -R 192.168.0.10/2002
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2003 -R 192.168.0.10/2003
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2004 -R 192.168.0.10/2004
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2005 -R 192.168.0.10/2005
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2006 -R 192.168.0.10/2006
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2007 -R 192.168.0.10/2007
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2008 -R 192.168.0.10/2008
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2009 -R 192.168.0.10/2009
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2010 -R 192.168.0.10/2010
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2011 -R 192.168.0.10/2011
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2012 -R 192.168.0.10/2012
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2013 -R 192.168.0.10/2013
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2014 -R 192.168.0.10/2014
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2015 -R 192.168.0.10/2015
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2016 -R 192.168.0.10/2016
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2017 -R 192.168.0.10/2017
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2018 -R 192.168.0.10/2018
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2019 -R 192.168.0.10/2019
          /usr/local/sbin/ipportfw -A -t10.1.2.3/2020 -R 192.168.0.10/2020
          --

          例その 2
          --
          port=2000
          while [ $port -le 2020 ]
            do
                /usr/local/sbin/ipportfw -A t10.1.2.3/$port -R 192.168.0.10/$port
                port=$((port+1))
            done
          --

     IPCHAINS を使った 2.2 系カーネルのための例を次に示します -

       ここで二つの例をあげておきました。どちらも問題なく動作します -

       例その 1
       --
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2000 -R 192.168.0.10 2000
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2001 -R 192.168.0.10 2001
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2002 -R 192.168.0.10 2002
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2003 -R 192.168.0.10 2003
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2004 -R 192.168.0.10 2004
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2005 -R 192.168.0.10 2005
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2006 -R 192.168.0.10 2006
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2007 -R 192.168.0.10 2007
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2008 -R 192.168.0.10 2008
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2009 -R 192.168.0.10 2009
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2010 -R 192.168.0.10 2010
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2011 -R 192.168.0.10 2011
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2012 -R 192.168.0.10 2012
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2013 -R 192.168.0.10 2013
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2014 -R 192.168.0.10 2014
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2015 -R 192.168.0.10 2015
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2016 -R 192.168.0.10 2016
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2017 -R 192.168.0.10 2017
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2018 -R 192.168.0.10 2018
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2019 -R 192.168.0.10 2019
       /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2020 -R 192.168.0.10 2020
       --

       例その 2
       --
       port=2000
       while [ $port -le 2020 ]
         do
             /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 $port -R
     192.168.0.10 $port
             port=$((port+1))
         done
       --

     o

        新しい rc.firewall が準備できたら、"/etc/rc.d/rc.firewall" とタ
        イプして設定が問題ないことを確認するためにルールセットの再読み込
        みを行います。もし何かエラーが出た場合、IPPORTFW サポートのある
        カーネルを動作させていないか、 rc.firewall ファイルになにかタイ
        プミスがあることでしょう。

     o

        ICQ の [プリファレンス] - [接続] 設定で "LANから使う" と "ファイ
        アウォールまたはプロキシを経由して使う" を設定してください。それ
        から、 "ファイアウォール設定" をクリックして、"SOCKS プロキシを
        使わない" を設定します。以前は "ファイアウォールタイムアウト" を
        "30" にすることを推奨していましたが、多くの利用者はこれにより
        ICQ の信頼性が下がることに気づいている点に注意してください。 ICQ
        は規定のタイムアウト設定 (この ICQ オプションを有効にしない状態)
        が最も信頼性が高いので、マスカレードサーバでのタイムアウトを160
        秒にします。このタイムアウト設定を変更する方法については ``'' と
        ``'' ルールセットを参照してください。それから、 "次へ" をクリッ
        クして "以下の TCP 監視ポートを使う" の項目では、 "2000" から
        "2020" までを指定してください。そして"完了"をクリックして終わり
        です。

        ICQ クライアントは変更を有効にするために ICQ の再起動を促してき
        ます。実は、私の場合は変更を正しく反映させて動かすために
        Windows9x 自体を再起動させなければなりませんでしたが、ある人はそ
        んなことをする必要はないとも言っています。もしだめなら両方試して
        みてください。

  o  ある人はポート番号 4000 だけを ICQ の動いているマシンにポート転送す
     るだけの状態がベストだ、とも話してくれました。彼はこれだけで ICQ 自
     体の設定を既定値から何ら変更することなく全部の機能(チャット、ファイ
     ル転送など)がうまく動作したと報告しています。おそらくやり方はたくさ
     んあるのでしょうが、別な設定の方法を試すのもいいかもしれません。

  6.11.  ゲーマー向け - LooseUDP パッチ

  LooseUDP パッチは NAT との親和性があり、通常 UDP を用いるゲームを
  Linux IP マスカレードサーバの背後で問題なく動作させるためのものです。
  今のところ、LooseUDP はバージョン 2.0.36 以上のカーネルに対してはパッ
  チとして提供され、2.2.3 以上のカーネルには組み込まれていますが、
  2.2.16 以上のカーネルではデフォルトで禁止状態になっています。

  LooseUDP を2.0.x 系カーネルで動作させるには次の手順に従います -

  o  最新の 2.0.x カーネルを用意し、/usr/src/linux ディレクトリに展開し
     ます。

  o  バージョン 2.0.x では必須 -  IPPORTFW パッチを、この HOW-TO の
     ``2.0.x カーネルの必要条件'' の章か、または ``フォワーダ (ポート転
     送ツール)'' の章を参考にしてください。

  o  ``2.0.x カーネルの必要条件'' の章から LooseUDP パッチをダウンロード
     します。

     LooseUDP パッチを /usr/src/linux ディレクトリに置き、次のようにタイ
     プします。

       圧縮されたパッチファイルの場合 - zcat loose-udp-2.0.36.patch.gz |
       patch -p1

       圧縮されていないパッチファイルの場合 -  cat loose-udp-2.0.36.patch |
       patch -p1

  お使いの patch プログラムのバージョンにもよりますが、次のようなテキス
  トを見ることになるでしょう -

  patching file `CREDITS'
  patching file `Documentation/Configure.help'
  patching file `include/net/ip_masq.h'
  patching file `net/ipv4/Config.in'
  patching file `net/ipv4/ip_masq.c'

  もし、"Hunk FAILED" がパッチ過程の各々でそれぞれ一度だけ表示されている
  なら、それは警告ではありません。古いパッチファイルが当たっているのだと
  思われますが、この状態であれば動作します。全く失敗に終わってしまった場
  合は、IPPORTFW パッチがカーネルに適用されているかどうか、まず確認して
  みてください。

  このパッチが組み込まれると、 ``カーネルのコンパイル'' の章に示されてい
  る通りに "IP: loose UDP port managing (EXPERIMENTAL)
  (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?]" オプションに対して "Y" と答えて構
  成してください。

  2.2 系カーネルで LooseUDP が動くようにするためには、次のような手順を実
  施します -

  o  /etc/rc.d/rc.firewall スクリプトの最後のあたりにある LooseUDP の項
     目を探します。 echo "0" > /proc/sys/net/ipv4/ip_masq_udp_dloose と
     いう行にある "0" を "1" に変更して、 rc.firewall ルールセットを再実
     行します。この実例は、``'' と ``'' にあります。

  新しく LooseUDP が有効となったカーネルを動かすと、殆どの NAT との親和
  性のあるゲームが問題なく動くようになります。いくつかのページで、
  BattleZone などといったゲームに NAT 親和性を持たせるパッチを提供する
  web ページもあります。詳細は``'' の章を参照してください。

  7.  よくある質問 (FAQ)

  ここに載せるに相応しい質問を思いついたら、dranch@trinnet.net に送って
  ください。質問と、適切な回答を、分かりやすく書いて頂ければ幸いです。宜
  しくお願いします。

  7.1.  IP マスカレードをサポートしている Linux ディストリビューションは
  どれですか？

  Linux ディストリビューションが IP マスカレードをサポートしていなくても
  心配はいりません。この HOWTO の前の方に書かれているとおりにカーネルの
  再コンパイルを行うだけです。

  注意 - この表に追加できる方はambrose@writeme.com または
  dranch@trinnet.net 宛にメールを送ってください。

  o  Caldera       < v1.2   : NO  - ?

  o  Caldera         v1.3   : YES - 2.0.35 based

  o  Caldera         v2.2   : YES - 2.2.5 based

  o  Caldera eServer v2.3   : YES - ? based

  o  Debian          v1.3   : NO  - ?

  o  Debian          v2.0   : NO  - ?

  o  Debian          v2.1   : YES - 2.2.1 based

  o  Debian          v2.2   : YES - 2.2.15 based

  o  DLX Linux       v?     :  ?  - ?

  o  DOS Linux       v?     :  ?  - ?

  o  FloppyFW        v1.0.2 :  ?  - ?

  o  Hal91 Linux     v?     :  ?  - ?

  o  Linux Mandrake  v5.3   : YES - ?

  o  Linux Mandrake  v6.0   : YES - 2.2.5 based

  o  Linux PPC       vR4    :  NO - ?

  o  Linux Pro       v?     :  ?  - ?

  o  LinuxWare       v?     :  ?  - ?

  o  Mandrake        v6.0   : YES - ?

  o  Mandrake        v6.1   : YES - ?

  o  Mandrake        v7.0   : YES - 2.2.14

  o  Mandrake        v7.1   : YES - 2.2.15

  o  Mandrake        v7.2   : YES - 2.2.17

  o  MkLinux         v?     :  ?  - ?

  o  MuLinux         v3rl   : YES - ?

  o  Redhat        < v4.x   : NO  - ?

  o  Redhat          v5.0   : YES - ?

  o  Redhat          v5.1   : YES - 2.0.34 based

  o  Redhat          v5.2   : YES - 2.0.36 based

  o  Redhat          v6.0   : YES - 2.2.5 based

  o  Redhat          v6.1   : YES - 2.2.12 based

  o  Redhat          v6.2   : YES - 2.2.14 based

  o  Redhat          v7.0   : YES - 2.2.16 based

  o  Slackware       v3.0   :  ?  - ?

  o  Slackware       v3.1   :  ?  - ?

  o  Slackware       v3.2   :  ?  - ?

  o  Slackware       v3.3   :  ?  - 2.0.34 based

  o  Slackware       v3.4   :  ?  - ?

  o  Slackware       v3.5   :  ?  - ?

  o  Slackware       v3.6   :  ?  - ?

  o  Slackware       v3.9   :  ?  - 2.0.37pre10 based

  o  Slackware       v4.0   :  ?  - ?

  o  Slackware       v7.0   : YES - 2.2.13 based

  o  Slackware       v7.1   : YES - 2.2.16 based

  o  Stampede Linux  v?     :  ?  - ?

  o  SuSE            v5.2   : YES - 2.0.32 base

  o  SuSE            v5.3   : YES - ?

  o  SuSE            v6.0   : YES - 2.0.36 based

  o  SuSE            v6.1   : YES - 2.2.5 based

  o  SuSE            v6.3   : YES - 2.2.13 based

  o  Tomsrbt Linux   v?     :  ?  - ?

  o  TurboLinux Lite v4.0   : YES - ?

  o  TurboLinux v6.0        : YES - 2.2.12 based

  o  TriLinux        v?     :  ?  - ?

  o  Yggdrasil Linux v?     :  ?  - ?

  7.2.  IP マスカレードを使うための、ハードウェアに最低限必要な条件と 制
  限事項を教えてください。それでどんな性能が出ますか?

  16MB の RAM を備えた 486/66 のボックスは、 1.54Mb/s T1 のネットワーク
  で 100% 以上の働きをしました!  更にマスカレードは 8MB の RAM を備えた
  386SX-16s のマシンでとても良好に動作することが知られています。しか
  し、Linux IP マスカレードは 500 を越えるマスカレードエントリーでスラッ
  シングを始めてしまうことに注意してください。【訳注: スラッシング: OS
  が実メモリと SWAP スペースの間のデータの読み書きに殆どの時間を費して、
  プログラムが実行できなくなる状況を言います。】

  私が知る Linux IP マスカレードを一時的に壊すことができる唯一のアプリ
  ケーションは、 GameSpy です。なぜかというと、 GameSpy は使っているリス
  トをリフレッシュするために非常に短時間に 10,000 ものインターネット接続
  を行います。このセッションのタイムアウト迄マスカレード・テーブルは一杯
  になってしまいます。詳細は FAQ の ``'' のところを見てください。

  それ以外にも、

  Linus が管理している Linux カーネルでは TCP と UDP 各々に対して 4096
  の同時接続数の制限があります。この制限は、カーネルソースの中の値を
  ちょっといじるだけで簡単に変えることができます。 2.2.x カーネルの場合
  は /usr/src/linux/include/net/ip_masq.h を、 2.0.x カーネルの場合は
  /usr/src/linux/net/ipv4/ip_masq.h を編集します。どんなに忙しいサーバー
  でも正しいファイルの中の制限値を最大 32000 迄増やせば大丈夫でしょう。
  この数を変更したい場合は、 PORT_MASQ_BEGIN & PORT_MASQ_END の値を 32K
  から 64K 迄の適切な範囲内に変更する必要があります。ここに例を示します
  -

  PORT_MASQ_BEGIN=32000
  PORT_MASQ_END=64000

  7.3.  rc.firewall コマンドを実行したら「コマンドが見つかりません」
  (command not found) というエラーが発生しました。なぜでしょう?

  どのように rc.firewall を作りましたか?  TELNET ウインドウ内にカットア
  ンドペーストをしましたか?  或は Windows/DOS マシンから FTP をしました
  か?  次のことを試してみてください..  Linux ボックスにログインし、 "vim
  -b /etc/rc.d/rc.firewall" を実行してみてください。そして、表示された行
  がすべて ^M で終わっているかどうか見てください。もしそうなら ^M を全て
  削除して、もう一度やってみてください。

  7.4.  設定を全てチェックしましたが、未だ IP マスカレードを動作させる
  ことができません。どうしたらよいでしょうか?

  o  まあ落ち着いてください。お茶でもコーヒーでもソーダでも飲んで一息つ
     いてください。気持ちが落ち着いたら、以下に記されていることをやって
     みてください。 Linux IP マスカレードは難しくはないのですが、あなた
     にとって初めての概念が幾つかあります。

  o  もう一度 ``IP マスカレードのテスト'' の章の中にある全てのステップを
     やってみてください。問題を抱えている初めてのマスカレード・ユーザの
     99% はここを見ていません。

  o  IP Masquerade Mailing List Archives
     <http://www.indyramp.com/lists/masq/> をチェックしてみてください。
     恐らく、あなたの質問や問題は共通のもので、単純なアーカイブ探索で見
     つけることができるでしょう。

  o  TrinityOS <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS> の文書をチェックしてみてください。それは、
     カーネル 2.0.x と 2.2.x の両方での IP マスカレードと
     PPPd、DialD、DHCP、DNS、sendmail など、たくさんのトピックスをカバー
     しています。

  o  ROUTED または GATED を走らせていないことを確かめてください。確かめ
     るには "ps aux | grep -e routed -e gated" を走らせてみてください。

  o  IP マスカレード・メーリングリストへ質問を投稿してください (詳しくは
     この章の次の項目を参照)。でもこれはメーリングリストのアーカイブから
     答えを見つけられなかった場合だけにしてください。質問の中に ``IP マ
     スカレードのテスト'' の章の中で要求されている全ての情報を含めてくだ
     さい。

  o  関連する Linux NNTP ニュースグループへ質問を投稿してください。

  o  ambrose@writeme.com と  dranch@trinnet.net 宛にメールを送ってくださ
     い。私たちからより IP マスカレード・メーリングリストから返事をもら
     う機会のほうが多いでしょう。

  o  あなたの設定をもう一度チェックしてください。:-)

  7.5.  IP マスカレード・メーリングリストや IP マスカレード・開発者 メー
  リングリストに参加したり、そのアーカイブを見るにはどうすれば良いです
  か?

  2 つある Linux IP マスカレード・メーリングリストに参加するには 2 つの
  方法があります。第 1 の方法は masq-request@indyramp.com にメールを送る
  ことです。 Linux IP マスカレード・開発者メーリングリストに参加するため
  には masq-dev-request@indyramp.com にメールを送ります。詳細は下の記述
  を参照してください。

  o  メールでの申し込み - メールメッセージの件名または本文のどちらかの中
     に "subscribe" という単語を書いてください。もし IP マスカレード・
     メーリングリストあるいは IP マスカレード・開発者メーリングリストの
     ダイジェスト版のみの申し込みをしたいのなら、メールメッセージの件名
     あるいは本文の中に "subscribe digest" という単語を書いてください (
     その週のメーリングリスト上のメールの全てが大きな 1 つのメールになっ
     て送られます)。

     サーバがあなたのリクエストを受け取れば、メーリングリストに登録し、
     パスワードが送られてきます。このパスワードを保存しておいてくださ
     い。後でリストから登録を取り消したり、オプションを変更するために必
     要です。

  第 2 の方法は、 WWW ブラウザを使います。 IP マスカレード・メーリングリ
  ストに参加したい場合は http://www.indyramp.com/masq-list/ にあるフォー
  ムをアクセスし、 IP マスカレード・開発者メーリングリストに参加したけれ
  ば http://www.indyramp.com/masq-dev-list/ にあるフォームにアクセスし
  て、申し込みをします。

  予約すると予約されたメーリングリストからメールが来ます。予約したユーザ
  も予約していないユーザも 2 つのメーリングリストのアーカイブにはアクセ
  スすることができます。予約のための詳しい説明は、上記 2 つの WWW URL を
  参照してください。

  最後になりますが、最初に予約したアカウント/アドレスからしか IP マスカ
  レード・メーリングリストに投稿できないことに注意してください。

  メーリングリストあるいはメーリングリスト・アーカイブに関して何らかの問
  題があれば Robert Novak に連絡してください。

  7.6.  IP マスカレードは、プロキシや NAT サービスとどう違うのでしょう
  か?

  プロキシ: プロキシサーバは次のもので利用可能です:  Win95, NT, Linux,
  Solarisなど。

                  長所 -  + 1 IP アドレス: 安価
                          + 性能向上のためにキャッシング・オプションがある。
                            (www 他)

                  短所 -  - プロキシサーバに繋がるクライアントの
                            アプリケーションはプロキシ・サービス (SOCKS) を
                            サポートし、且つプロキシサーバを使うように設定
                            しなければならない。
                          - WWW のカウンタと統計情報が狂ってしまいます。

          プロキシサーバは IP マスカレードと同様に、 1 つのグローバル IP
          アドレスのみ使用し、プライベート LAN 上のクライアント (WWW ブラウザ
          等) への翻訳機として動作します。
          このプロキシサーバは、1 つのインターフェースに繋がるプライベート
          ネットワークから TELNET, FTP, WWW 等のような接続要求を受け取ります。
          そして、あたかもローカルボックス上の誰かが接続要求を発しているかの
          ように、順番にこれらのリクエストを外部に送信します。
          遠隔のインターネットサーバが要求された情報を送り返してくると、
          今度は内部クライアントに再度 TCP/IP アドレスを翻訳し、トラフィックを
          送ります。
          このため、それはプロキシサーバ【訳注: 代理サーバ】と呼ばれます。

                  注意 -
                  あらゆるアプリケーションも、ネットワーク内部のマシンで
                  使いたい場合は、 Netscape や幾つかの優秀な TELNET や
                  FTP クライアントのように、プロキシサーバのサポートが
                  されていなければなりません。
                  プロキシサーバのサポートがされていないクライアント
                  プログラムは動作しません。

          プロキシサーバのもう一つの利点として、プロキシサーバの中には
          キャッシングのできるものもあることです (Squid for WWW) 。
          例えば 50 台のプロキシされた PC があって、それらが同時に
          Netscape を起動したと想像してください。
          それらがデフォルトのホームページ URL のままインストールされて
          いたなら、同じ Netscape WWW ページが各々の個々のコンピュータに
          別々に 50 回 WAN リンクを介して送られることになります。
          キャッシュを持ったプロキシサーバでは、 1 回だけがプロキシサーバ
          によってダウンロードされ、プロキシされたマシンはプロキシ内の
          キャッシュから WWW ページを受け取ります。
          これはインターネット接続中の帯域幅を節約するだけでなく、
          プロキシされたマシンにとって非常に早い応答速度になります。

  マスカレード-  IP マスカレード は、Linux 及び Zytel Prestige128, Cisco 770,
    及び         NetGear ISDN routers 等、幾つかの ISDN ルータで利用可能です。
   1対多IPの
    NAT           長所 -  + 1 IPアドレスだけが必要。(安価)。
                          + 特別なアプリケーションによるサポートを要求しない。
                          + ファイアウォール・ソフトウェアを使用するので、
                            ネットワークがより安全になる。

                  短所 -  - Linux ボックスか、特別な ISDN ルータを必要とする。
                            (他の製品は搭載しているかも知れませんが..)
                          - 内部 LAN が最初のトラフィックを発生させるか、或は
                            特定のポート・フォワーディング・ソフトウェアが
                            インストールされていなければ、外から来る
                            トラフィックは内部 LAN にアクセスできない。
                            多くの NAT サーバはこの機能を持っていません。
                          - 特殊なプロトコルを扱うにはファイアウォール・
                            リダイレクタ等によって個々の設定が必要。
                            Linux は、この機能 ( FTP、IRC 等) の全面的な
                            サポートをしているが、多くのルータはサポートして
                            いない。  (NetGear はサポートしています)

          IP マスカレードや 1対多 IP の NAT は、サーバが IP アドレス翻訳を
          行い、内部マシンに代わってあたかもマスカレードサーバが接続要求を
          発生しているかのように、遠隔のサーバ (例えば WWW サーバ) に
          送り出すという意味で、プロキシサーバに似ています。

          IP マスカレードとプロキシサーバの主な違いは、マスカレードサーバは
          クライアントマシンの設定変更を全く必要としないということです。
          クライアントのデフォルトゲートウェイとして Linux ボックスを使うように
          設定さえすれば、問題なく働きます。
          ただ RealAudio, FTP 等を使うには、それらの特別な Linux モジュールを
          インストールする必要があります。

          更に、多くの人々は TELNET, FTP 等の為に IP マスカレード を
          使用します。
          それに加えて、更に www のトラフィックの性能を上げる為に、同じ
          Linux ボックスの中にキャッュを利かせたプロキシを設定します。

  NAT -   NAT サーバは Windows 95/NT, Linux, Solaris や高級な ISDNルータで
          利用可能です。(Ascend 社製のものを除く)

                  長所 -  + 設定が豊富にできる。
                          + 特別なアプリケーションソフトが要らない。

                  短所 -  - ISP からサブネット IP アドレスを貰う必要がある。
                            (高価)

          ネットワークアドレス変換 (Network Address Translation) は、
          パブリックアドレスとして使用できる有効な IP アドレスをプール
          している箱の名前です。
          内部ネットワークからインターネットに行きたい場合、接続要求を
          出しているクライアントのプライベートアドレスを、空いている有効な
          パブリック IP アドレスに書き換えて、接続要求をインターネットに
          発行します。
          その後の応答トラフィックは全て、NAT のパブリック IP アドレスから
          プライベート・アドレスに書き換えられます。
          使用されていたパブリック IP アドレスが予め決められた一定時間
          使用されないと、パブリック IP アドレスはパブリック NAT プールへ
          戻されます。

          NAT に関する大きな問題は、一度自由に使えるパブリック IP アドレスが
          全て使われてしまうと、その後にインターネットサービスを要求する
          どのプライベートユーザも、パブリック NAT アドレスに空きが出る迄は
          不運にもインターネットを利用できないことです。

  色々な形態の NAT に関する、非常に幅の広い優れた記述があるので見てくだ
  さい -

  o  <http://www.suse.de/~mha/linux-ip-nat/diplom/nat.html>

  ここは、 NAT に関して学習するよいサイトです。URL の多くは古いですが、
  まだ有効です -

  o  <http://www.linas.org/linux/load.html>

  ここは、 Linux や他のプラットフォーム用に、他の NAT による解決方法を知
  るための良い URL です -

  o  <http://www.uq.net.au/~zzdmacka/the-nat-page/>

  7.7.  GUI の ファイアーウォール作成管理ツールはありますか?

  はい! ユーザ・インターフェースや複雑さなどにおいて差があり、大部分は
  IPFWADM ツール用だけですが、とても良いものがあります。ここにアルファ
  ベット順に利用可能なツールのリストがあります。他のものを知っているか、
  どれが良いとか、悪いとか、使えないとかの考えがあったら、 David にメー
  ルしてください。

  o  John Hardin の IPFWADM Dot file generator - IPCHAINS バージョンが動
     作します。

     【訳注: 上記 web site ですが、 ipchains バージョンは存在しません。
     作成したルールファイルを ipfwadm2ipchains で変換して欲しい、とあり
     ます。】

  o  Sonny Parlin の fBuilder <http://www.innertek.com> - FWCONFIG 作者
     から、この新しい解決方法は完全な WWW ベースで、冗長性オプション等が
     あり、 IPCHAINS と Netfilter の両方に対応しています。

  o  William Stearns の Mason <http://www.pobox.com/~wstearns/mason/> -
     ルールセットを直接作るタイプのシステム

  7.8.  IP マスカレードは動的に割り当てられた IP アドレスで動作しますか?

  はい、PPP 或は DHCP/BOOTp サーバ等によって、 ISP から割り当てられた動
  的 IP アドレスで動作します。有効なインターネット IP アドレスを持つ限
  り、動作する筈です。勿論、静的な IP でも動作します。 IPFWADM/IPCHAINS
  を使った強いルールセットを使おうとしているか、ポート転送を使おうとして
  いるなら、これらのルールセットは IP アドレスが変更される度毎に再実行し
  なければなりません。強いファイアウォール・ルールセットと動的 IP アドレ
  スに関する補足説明は TrinityOS - Section 10
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
  linux.html#TrinityOS> にありますので見てください。

  7.9.  ケーブル・モデム(双方向とモデム・リターンの両方)や、 DSL, 衛星リ
  ンク等を使用してインターネットに接続し、 IP マスカレードを 使うことが
  できますか?

  はい、 Linux がそのネットワークインターフェイスをサポートしている限
  り、それは動作します。動的 IP アドレスを使っているなら、 FAQ 項目内の
  上記「 IP マスカレードは動的に割り当てられた IP アドレスで動作します
  か?」を参照してください。

  7.10.  Diald または PPPd のダイアルオンデマンド機能を IP マスカレード
  と 一緒に使えるでしょうか?

  もちろんです! IP マスカレードは Diald または PPP において完全に透過的
  です。唯一の問題点は、動的 IP アドレスを備えた「強いファイアウォール・
  ルールセット」を使用するかどうかです。詳しくは FAQ 項目の上記「 IP マ
  スカレードは動的に割り当てられた IP アドレスで動作しますか?」を参照し
  てください。

  7.11.  IP マスカレードでは、どんなアプリケーションがサポートされていま
  すか?

  動作するアプリケーションのリストを更新し続けることは非常に困難です。し
  かしながら、 (Netscape, MSIE, 等の) WWW ブラウザ、 (WS_FTP 等の) FTP,
  TELNET, SSH, RealAudio, POP3 (メール受信 - Pine, Eudora, Outlook),
  SMTP (メール送信) 等、通常のインターネットアプリケーションの殆どはサ
  ポートされています。マスカレード互換のクライアントの多少完全なリストは
  この HOWTO の ``クライアント'' の章にあります。

  より複雑なプロトコルや、或はビデオ会議ソフトウェアのような特別な接続方
  法を使っているアプリケーションは、専用の補助ツールを使う必要がありま
  す。

  より詳細には、Linux IP masquerading Applications
  <http://www.tsmservices.com/masq> を見てください。

  7.12.  どうやったら IP マスカレードを Redhat, Debian, Slackware 等で
  稼働させることができますか?

  この HOWTO の中で説明している IP マスカレードのセットアップ手順は、お
  手持ちの Linux ディストリビューションの種類を問わず適用できます。ディ
  ストリビューションの中には、セットアップをより容易にする GUI 或は特別
  の設定ファイルを持っているものもあるかも知れません。私達はできるだけ一
  般的な HOWTO を書く為に最善を尽くしています。

  7.13.  しばしば使用していないと TELNET 接続が切れるように見えます。 な
  ぜでしょうか?

  IP マスカレードは TCP セッション、 TCP FIN 及び UDP トラフィックのタイ
  ムアウト・タイマをデフォルトで15分に設定します。殆どのユーザには次の設
  定 (この HOWTOの /etc/rc.d/rc.firewall ruleset の中で既に示しました)
  を使ことをお奨めします。

  Linux 2.0.x で IPFWADM を使う場合 -

  # IP マスカレードのタイムアウト
  #
  #  TCPセッションのタイムアウトは 2 時間
  #  TCP/IP の 「 FIN 」パケットが受信された後のタイムアウトは 10 秒
  #  UDP トラフィックのタイムアウトは 60 秒 (マスカレード・クライアントの
  #  ICQ ユーザは、 ICQ の設定の中でファイアウォールのタイムアウト値を
  #  30 秒まで許すようにする必要があります。)
  #
  /sbin/ipfwadm -M -s 7200 10 60

  Linux 2.2.x で IPCHAINS を使う場合 -

  # IP マスカレードのタイムアウト
  #
  #  TCPセッションのタイムアウトは 2 時間
  #  TCP/IP の 「 FIN 」パケットが受信された後のタイムアウトは 10 秒
  #  UDP トラフィックのタイムアウトは 60 秒 (マスカレード・クライアントの
  #  ICQ ユーザは、 ICQ の設定の中でファイアウォールのタイムアウト値を
  #  30 秒まで許すようにする必要があります。)
  #
  /ipchains -M -S 7200 10 60

  7.14.  インターネット接続をしようとしても、最初は接続できません。 もう
  一度やってみると、問題なく動作します。なぜでしょうか?

  その理由は、あなたが動的 IP アドレスを使っていて、最初にインターネット
  接続をしようとした時には IP マスカレードがまだその IP アドレスを知らな
  いからです。この解決策があります。 /etc/rc.d/rc.firewall ルールセット
  に下記を加えてください -

  # 動的 IP ユーザ -
  #
  #    SLIP や PPP, DHCP 等から IP アドレスを動的に受け取っているなら、
  #    以下のオプションを有効にしてください。
  #    これは IP マスカレードが Diald やこれと同様なプログラムと一緒に
  #    使われる時に、動的 IP アドレスのハッキングをやり易くします。
  #
  echo "1" > /proc/sys/net/ipv4/ip_dynaddr

  7.15.  ( MTU ) - IP マスカレードはうまく動作しているように見えます。
  しかし、いくつかのサイトでは動作しません。 これは、通常 WWW と FTP で
  起こります。

  この原因は 2 つ考えられます。1 つ目は非常に一般的ですが、2 つ目は非常
  に希です。

  o  2.0.38 と 2.2.9 以降の Linuxカーネルで、マスカレード・コードの中に
     議論のあるバグがあります。

     ユーザの中には、 IP マスカレードが DF すなわち「断片化しない (Don't
     Fragment)」ビットがセットされているパケットに関して問題を抱えている
     かも知れない、という事実を指摘する人もいます。基本的に、マスカレー
     ド・ボックスがインターネットに 1500 未満の MTU で接続した場合には、
     幾つかのパケットには DF フィールドがセットされるでしょう。 Linux
     ボックスの MTU を 1500 へ変更することでこの問題を解決したように見え
     ますが、バグはまだ消えたわけではありません。起こっていると考えられ
     ることは、マスカレード・コードが ICMP 3 Sub 4 コードを付けて返って
     きた ICMP パケットを適切に書き直して、トラフィックを発行したマスカ
     レード・クライアントに返していないということです。このために、パ
     ケットは落とされます。

     一方、他のユーザはその問題が起きる遠隔のサイト (典型的には SSL 接続
     のサイト等) の管理者のせいだと指摘します。彼らがセキュリティ偏執病
     で、 (Type4 - 必要とされるフラグメント - を含む) 全種類の ICMP メッ
     セージを除去しているので、これは TCP/IP プロトコルの基本原則を壊し
     ていると言うのです。

     双方の主張も各々一理あります。そして、各々のグループは今日まで討議
     し続けています。もし、あなたがネットワークのプログラマで、この問題
     を解決或は推測できるなら、やってみてください。詳しくは MTU Thread
     from the Linux-Kernel をチェックしてください。

     でも心配はありません。完全でよい対処法は、インターネットリンクの
     MTU を 1500 に変更することです。今、ユーザの中には TELNET やゲーム
     等の応答時間に敏感なプログラムに悪いと言ってこれに躊躇する人もいま
     すが、影響はほんの少しです。軽いサイトでは殆どの HTTP や FTP トラ
     フィックが高速になります!

     [ -- DSL またはケーブル・モデムのために PPPoE 接続を行っている
     か、MTU を 1500 に変更しないことに決めた場合は、以下の別の解決法を
     見てください。 -- ]

     これを解決する為に、最初にインターネットリンク用 MTU が今どうなって
     いるかを見てください。この為には "/bin/ifconfig" を実行します。イン
     ターネット接続に相当するラインを見て、 MTU を捜します。これは 1500
     にセットされている必要があります。通常、イーサネット・リンクはデ
     フォルトでこれになりますが、シリアル接続の PPP リンクはデフォルトで
     576 になるでしょう。

  7.15.1.  PPP リンクの MTU の変更 -

  o  PPP リンクの MTU の問題を解決するには、/etc/ppp/options ファイルを
     編集し、上の方に別々な 2 行 "mtu 1500" と "mru 1500" を加えます。新
     しい変更を保存し、PPP を再起動してください。上に書いたやりかたで
     PPP リンクが正しい MTU と MRU になっていることを確認してください。

  o  DSL やケーブルモデム等にブリッジ接続やルータ接続された標準のイーサ
     ネット・リンク上で MTU 問題を解決するためには、使っている Linux
     ディストリビューションでの正しいネットワーク初期化スクリプトを編集
     しなければなりません。 TrinityOS - Section 16 にあるネットワーク最
     適化の為の文書を見てください。

  7.15.2.  古い UNIX のシリアルインターフェース -

  o  最後に、これは共通の問題ではありませんが、これから記す解決法が当て
     はまる人も中にはいます。 PPP ユーザの場合、どのポートに PPPd コード
     が接続されているか確認します。それは /dev/cua* ポートですか? それと
     も /dev/ttyS* ポートですか?  これは /dev/ttyS* ポートでなければなり
     ません。 cua スタイルは過去のもので、非常に奇妙な方法でいくつかのも
     のを壊します。

  7.15.3.  PPPoE ユーザ -

  PPPoE (最大 MTU として 1490 を要求します) を使用するユーザ、或は MTU
  を 1500 にしないことに決めたユーザの為の解決法を書きます。全てのマスカ
  レード・クライアント PC の MTU の値を外部インターネットリンクの MTU と
  同じ値に設定すれば、うまく動作するでしょう。 PPPoE ISP の中には正しく
  接続するために 1460 の MTU を要求する所もあるかも知れませんので、注意
  してください。

  どうやってこれをするかは、以下の各オペレーティング・システム用の単純な
  ステップに従ってください。

  次の例は、ある DSL 及びケーブルモデムユーザの為の、典型的な PPPoE 接続
  用の MTU が 1490 の例を示します。 128Kb/s 以上の接続の場合は全て、可能
  な限り大きな値を使用することを推奨します。

  より小さな MTU を使用する唯一の実際の理由は、処理能力を犠牲にしてでも
  より早い応答時間を得たいときです。このトピックについての詳細は以下を見
  てください -

  http://www.ecst.csuchico.edu/~dranch/PPP/ppp-performance.html#mtu

  *** うまくいったとか、いかなかったとか、或は他の OS でのやり方を ***
  知っているなら、 David Ranch 迄メールを送ってください。よろしく!

  7.15.4.  Linux:

  ______________________________________________________________________
  1. MTU の設定は Linux ディストリビューションにより異なります。

     Redhatでは - /sbin/ifup スクリプトの中の様々な "ifconfig" の行を
                  編集する必要があります。

     Slackwareでは - /etc/rc.d/rc1.inet の中の様々な "ifconfig" の行を
                     編集する必要があります。

  2. ここに、どのディストリビューションでも働く良い例があります。
     /etc/rc.d/rc.local ファイルを編集し、ファイルの最後に以下の行を
     付け加えます -

                   echo "Changing the MTU of ETH0"
                   /sbin/ifconfig eth0 mtu 1490

       "eth0" はインターネットに接続されたマシンの上流側のインターフェース名に
       置き換えます。

  3. "TCP 受信ウインドウ" (TCP Receive Windows) のような高度なオプションや、
     特定の Linux ディストリビューション毎のネットワーキング・スクリプトの
     編集方法等の詳しい例は、
  ______________________________________________________________________

  ______________________________________________________________________
     の16章を見てください。
  ______________________________________________________________________

  7.15.5.  MS Windows 95 -

  ______________________________________________________________________

  1. レジストリにどんな変更を加えることも非常に危険です。安全のために必ずバック
     アップ・コピーを取って行ってください。
     自己責任で行ってください。

  2. [スタート] → [ファイル名を指定して実行(R)] → "RegEdit" と入力します。

  【訳注: ここの項目は日本語 Windows 95 の表示内容を参照しています。】

  3. 作業前にはレジストリのバックアップ・コピーを取ってください。
     方法は、エクスプローラ等で \WINDOWS ディレクトリにある "user.dat" と
     "system.dat" ファイルを安全な場所にコピーしておきます。
     以前に述べた方法である、
     "Regedit 上で [レジストリ(R)]→[レジストリファイルの書き出し(E)]
     [レジストリの書き出し]ウィンドウ上で [ファイル名(N)]→[保存(S)]"
     は、レジストリを単にマージするだけであって、置換をする訳ではないという
     ことに注意してください。

  4. "n" で終了するレジストリツリーの各々を探索します。 (例えば0007)
     NIC の IP アドレスを持った "IPAddress" というレジストリエントリが
     あります。
     そのキーの下に、下記を加えてください -
  ______________________________________________________________________

       から

  ______________________________________________________________________
     [Hkey_Local_Machine\System\CurrentControlset\Services\Class\NetTrans\000n]

           type=DWORD
           name="MaxMTU"           (ダブルクォーテーションは書かないでください)
           value=1490 (10 進数)    ((10 進数)という文字は書かないでください)

           type=DWORD
           name="MaxMSS"           (ダブルクォーテーションは書かないでください)
           value=1450 (10 進数)    ((10 進数)という文字は書かないでください)

  5. "TCP Receive Window" (TCP 受信ウインドウ) も変更できます。
     これは時としてネットワークの性能をかなり向上させることもあります。
     もしスループットが悪くなったとわかったら、これらの項目を元の値に
     戻してからリブートしてください。

       [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
          type=DWORD
          name="DefaultRcvWindow"   (ダブルクォーテーションは書かないでください)
          value=32768 (10 進数)    ((10 進数)という文字は書かないでください)

          type=DWORD
          name="DefaultTTL"         (ダブルクォーテーションは書かないでください)
          value=128 (10 進数)      ((10 進数)という文字は書かないでください)

  6. 再起動して変更を有効にしてください。
  ______________________________________________________________________

  7.15.6.  MS Windows 98 -

  ______________________________________________________________________

  1. レジストリにどんな変更を加えることも非常に危険です。安全のために必ずバック
     アップ・コピーを取って行ってください。
     自己責任で行ってください。

  2. [スタート] → [ファイル名を指定して実行(R)] → "RegEdit" と入力します。

    【訳注: ここの項目は日本語 Windows 98 の表示内容を参照しています。】

  3. 作業前にはレジストリのバックアップ・コピーを取ってください。
     方法は、エクスプローラ等で \WINDOWS ディレクトリにある "user.dat" と
     "system.dat" ファイルを安全な場所にコピーしておきます。
     以前に述べた方法である、
     "Regedit 上で [レジストリ(R)]→[レジストリファイルの書き出し(E)]
     [レジストリの書き出し]ウィンドウ上で [ファイル名(N)]→[保存(S)]"
     は、レジストリを単にマージするだけであって、置換をする訳ではないという
     ことに注意してください。

  4. "n" で終了するレジストリツリーの各々を探索します。 (例えば0007)
     NIC の IP アドレスを持った "IPAddress" というレジストリエントリが
     あります。
     そのキーの下に、下記を加えてください -
  ______________________________________________________________________

       から

  ______________________________________________________________________
     [Hkey_Local_Machine\System\CurrentControlset\Services\Class\NetTrans\000n]

           type=STRING
           name="MaxMTU"           (ダブルクォーテーションは書かないでください)
           value=1490 (10 進数)    ((10 進数)という文字は書かないでください)

  5. "TCP Receive Window" (TCP 受信ウインドウ) も変更できます。
     これは時としてネットワークの性能をかなり向上させることもあります。
     もしスループットが悪くなったとわかったら、これらの項目を元の値に
     戻してからリブートしてください。

       [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
          type=STRING
          name="DefaultRcvWindow"   (ダブルクォーテーションは書かないでください)
          value=32768 (10 進数)    ((10 進数)という文字は書かないでください)

          type=STRING
          name="DefaultTTL"         (ダブルクォーテーションは書かないでください)
          value=128 (10 進数)      ((10 進数)という文字は書かないでください)

  6. 再起動して変更を有効にしてください。
  ______________________________________________________________________

  7.15.7.  MS Windows NT 4.x

  ______________________________________________________________________

  1. レジストリにどんな変更を加えることも非常に危険です。安全のために必ずバック
     アップ・コピーを取って行ってください。
     自己責任で行ってください。

  2. [スタート] → [ファイル名を指定して実行] → "RegEdit" と入力します。

    【訳注: ここの項目は日本語 Windows NT の表示内容を参照しています。】

  3．「レジストリ」 → 「 Export Registry File (レジストリファイルの取り込み)」 →
     「 Save a copy (レジストリファイルの書き出し)」でレジストリのコピーを
      安全な場所にしまいます。

  4． 2 本の可能なレジストリツリーに次のキーを作成してください。
    多数のエントリーが、ダイヤルアップネットワーク (ppp)、イーサネット NIC、PPTP
     VPN などの様々なネットワーク装置用にあります。

     [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parameters\Tcpip]
                       と
     [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Adapter-name>\Parameters
      \Tcpip]

         "<Adapter-Name>" は自分のアップリンク LAN NIC インターフェースの
     それぞれの名前に置換します。

           type=DWORD
           name="MTU"                 (quotes記号は含めない)
           value=1490 (10 進数)      ((10 進数)という文字は含めない)

    *** もしさらにあなたが NT 4.xでの MSS、TCP Window Size 、TTL パラメーターを
    *** 変更する方法を知っていたら dranch@trinnet.net にメールを送ってください。
    *** HOWTO に追加したいと思います。

  5．リブートして変更を有効にしてください。
  ______________________________________________________________________

  7.15.8.  MS Windows 2000

  ______________________________________________________________________

  1．レジストリにどんな変更を加えることも非常に危険です。安全のために必ずバック
    アップ・コピーを取って行ってください．自分自身のリスクで行ってください。

  2. [スタート] → [ファイル名を指定して実行] → "RegEdit" と入力します。

    【訳注: ここの項目は日本語 Windows 2000 の表示内容を参照しています。】

  3．「レジストリ」 → 「 Export Registry File (レジストリファイルの取り込み)」 →
     「 Save a copy (レジストリファイルの書き出し)」でレジストリのコピーを
      安全な場所にしまいます。

  4．キーまでナビゲートします -
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Inter
  faces\<ID for Adapter>

          各 <ID for Adapter> （アダプタの ID ）は、DNS、TCP/IP アドレス、
          デフォルト・ゲートウェイ、サブネット・マスクなどのための
          デフォルト・キーを持っています。自分のネットワーク・カード用のものを見つけてください。

  5．次のエントリーを作ります。

        type=DWORD
        name="MTU"                        (quotes記号は含めない)
        value=1490 (10 進数)      ((10 進数)という文字は含めない)

  http://support.microsoft.com/support/kb/articles/Q120/6/42.asp?LN=EN-US&SD=gn&FR=0

    *** もし NT 2000での MSS、TCP Window Size 、TTL パラメーターを変更する方法を
    *** 知っていたら dranch@trinnet.net にメールを送ってください。
    *** HOWTOに追加したいと思います。

  6．リブートして変更を有効にしてください。
  ______________________________________________________________________

  上述のように、もし OS/2, MacOS 等の他の OS に同様な変更を加える方法を
  知っている方は、 David Ranch へメールを送ってください。 HOWTO に入れて
  いきます。

  7.16.  IP マスカレード FTP クライアントが動作しません。

  "ip_masq_ftp" モジュールがロードされているかチェックしてください。これ
  を行うには、マスカレードサーバにログインして "/sbin/lsmod" コマンドを
  実行します。もし、ロードされている筈の "ip_masq_ftp" モジュールが見当
  たらないなら、 ``IP フォワーディングポリシーを設定する'' の章で推奨さ
  れている基本的な /etc/rc.d/rc.firewall に従っているか確かめてくださ
  い。もし、独自のルールセットを使っているなら、 HOWTO の例にある殆どの
  ルールが含まれているかどうかを確認してください。そうしないといつまでも
  沢山の問題に見舞われることになります。

  7.17.  IP マスカレードが遅いように見えます。

  これには幾つかの原因が考えられます -

  o  あなたはモデム性能に現実以上のものを期待しているかもしれません。標
     準的な 56K のモデム接続について計算してみます。

     1. 56k モデムですから、毎秒 56,000 ビットのデータ速度になります。

     2. 実際には米国 FCC の制限によって 56K のモデムではなく 52k のモデ
        ムを持っていることになります。

     3. でも実際はほとんど 52K で接続できることはありません。私は普段
        48K 以下でつながります。

     4. 毎秒 48,000 ビットということは毎秒 4,800 バイトです。 (8ビットが
        1 バイトで、 RS232 シリアルビットは開始ビットと終了ビットに 2
        ビットが必要です。)

     5. MTU が 1500 のとき、 1 秒間に 3.2 パケット受け取れます。これはフ
        ラグメンテーションを含むので、 1 秒間に 3 パケットに切り捨てられ
        ます。

     6. また MTU が 1500 だと、この場合は 3.2 x 40 バイト (8%) の TCP/IP
        のオーバーヘッドがあります。

     7. 従って、期待できる最高データ転送能力は、圧縮無しで4.68KB/s で
        す。 v.42bis ハードウエア圧縮、 MNP5, 或は MS/Stac 圧縮等で圧縮
        した場合、テキストファイルのような高圧縮に向いたデータでは印象的
        な値を出していますが、実際は ZIP や MP3 のような、既に圧縮されて
        いるファイルの転送では遅くなってしまいます。

  o  イーサネットを使うときの設定 (DSL, ケーブルモデム, LAN 等)

     o  内部と外部のネットワークの両方が "IP Alias" の機能で 1 つのネッ
        トワークカード上で動作しているということがないかどうか確認してく
        ださい。もしそうなっていると、動作してはいるものの、高い率の衝突
        や IRQ の使用率等によってとてつもなく遅くなります。別のネット
        ワークカードを入手して、内部ネットワークと外部ネットワークが各々
        自分のインターフェースを持つようにすることを強くお奨めします。

        イーサネット設定の中の SPEED と DUPLEX の両方が適切であることを
        確かめてください。

        o  10Mb/s イーサネットカードや、殆どの 100Mb/s カードの中には、
           全二重接続【訳注: Full Duplex】をサポートします。イーサネッ
           ト・カードから DSL モデムへの接続 (中間のハブのない場合) は、
           DSL モデムが全二重をサポートしている場合のみ、これを設定する
           ことができます。また使用されている 8 本のワイヤー全てが結線さ
           れている良質のイーサネットケーブルを使うよう心掛けてくださ
           い。

        o  ハブを使った内部ネットワークは全二重【訳注: Full Duplex】機能
           を使えません。全二重通信機能を使うには 10Mb/s または 100Mb/s
           のイーサネットスイッチ【訳注: スイッチングハブ】を使う必要が
           あります。

        o  イーサネットカード上の 10/100Mb/s SPEED 自動ネゴシエーション
           と全二重/半二重自動ネゴシエーションの双方共、ネットワークの破
           壊を起こすことがあります。できれば NIC の speed と duplex の
           両方ともカーネル・ソースに設定を直に書き込む (ハードコード)
           ことをお奨めします。これは、Linux NIC カーネル・モジュールに
           は直接設定可能なのですが、カーネルモジュールを使わずドライバ
           を直に組み込むよう設定してコンパイルされたカーネル (モノリ
           シック・カーネル) においては直接設定可能ではありません。この
           場合、 ``'' からの MII utilities を使うか、またはカーネルソー
           スに設定を直に書き込む必要があります。

  o  MTU を最適化し、少なくとも 8192 に TCP Sliding window をセットしま
     す。

     o  完全にこの文書の範囲外なのですが、これは PPP, イーサネット,
        TokenRing 等、内部または外部に持っている全てのネットワーク・リン
        クを少しだけ良くします。このトピックの詳細は、上記の ``MTU 問
        題'' の項目の中で簡潔に触れられています。更にもっと詳しくは
        TrinityOS - Section 16 の ネットワークの最適化 (Network
        Optimization) の章をチェックしてください。

  o  PPP を使っているシリアルモデムのユーザ

     o  外部モデムを使っているなら、よいシリアルケーブルを使っていること
        を確かめてください。さらに、多くの PC は、マザーボードか I/O
        カードからシリアルポートコネクタまでを平べったいリボン・ケーブル
        で接続しています。これらがあれば、それがよい状態であることを確か
        めてください。個人的に、私は全てのリボン・ケーブルのまわりにフェ
        ライト・コア(灰黒色の金属的なリング)を付けています。

     o  この HOWTO の FAQ セクションの上のほうに記載されたように MTU が
        1500 にセットされていることを確かめてください。

     o  シリアルポートが 16550A あるいはそれより良い UART であることを確
        かめてください。 調べるには "dmesg | more" コマンドを実行しま
        す。

     o  シリアルポートの IRQ の設定

        o  ほとんどの PC ハードウエア上で Craig Estey の IRQTUNE
           <http://www.best.com/~cae/irqtune/> tool を使うと SLIP や PPP
           接続を含むシリアルポートの性能を著しく向上させます。

     o  PPP 接続用のシリアルポートが 115,200 bps（或は ISDN ターミナルア
        ダプタ等のような、モデムとシリアルポートの両方が扱える場合は、こ
        れより早い速度）で動作しているか確認してください。

        o  2.0.x カーネル - 2.0.x カーネルでは直接 115200 にシリアルポー
           トを設定することができないので、奇妙なやりかたをします。例え
           ば COM2 に接続されたモデムの場合は /etc/rc.d/rc.local 又は
           /etc/rc.d/rc.serial のような起動スクリプトファイルの中で、次
           のようなコマンドを実行します -

           o  setserial /dev/ttyS1 spd_vhi

           o  PPPd スクリプトの中で、pppd の man ページに従って speed
              "38400" を含むように実際の pppd 実行ラインを編集してくださ
              い。

        o  2.2.x カーネル - 2.1.x と 2.2.x のカーネルは両方共 2.0.x カー
           ネルと違い、この "spd_vhi" 問題はありません。

           o  ですので、 PPPd スクリプト中で pppd の man ページに従い、
              "115200" のシリアル転送速度を含むように実際の pppd コマン
              ドラインを編集してください。

  o  All interface types:

  7.18.  PORTFW を IP マスカレードで使っていますが、ラインが長い間待ち状
  態に なると切れてしまいます。

  DSL かケーブルモデムのユーザならば、不運にもこの現象は非常に一般的で
  す。基本的に起こっていることは、 ISP は使用中の他の接続を優先してサー
  ビスするために、あなたの接続を優先度の非常に低いキューに追いやってしま
  うからです。問題はユーザの DSL やケーブルモデム接続からのトラフィック
  が ISP のハードウエアを起こすまでの間、実際にエンドユーザの接続が使え
  なくなってしまうことです。

  o

  o  DSL 設備の中には、使用されていない接続を切断してしまい、クライアン
     トが接続されているか否かを 30 秒に一度程度しかチェックしないものも
     あります。

  o  ケーブルモデムの設定によっては、使用されていない接続を低い優先度
     【訳注: priority queue】に設定し、クライアントが接続されているか否
     かを 1 分間に 1 回程度しかチェックしないものも存在します。

  どうしたらいいでしょうか?  30 秒に一度 ping をデフォルトゲートウェイに
  投げましょう。これをやるには /etc/rc.d/rc.local ファイルを編集し、ファ
  イルの一番下に以下を付け加えてください。

  ______________________________________________________________________
           ping -i 30 100.200.212.121 > /dev/null &
  ______________________________________________________________________

  100.200.212.121 を自分のデフォルト・ルータ (上流のルータ) に置き換えて
  ください。

  【訳注: ADSL 或はケーブルモデム等でインターネット接続する際に、プロバ
  イダ側から自動的にデフォルトゲートウェイが割り振られる場合は、このアド
  レスが接続の度毎に随時変更される可能性があるので、注意が必要です。プロ
  バイダが提示する接続資料に、固定のデフォルトゲートウェイが示されている
  場合は、上記固定 IP の方法が使えますが、そうでない場合は、接続確立の際
  に実行されるシェルスクリプトから、デフォルトゲートウェイの IP アドレス
  を拾い出して、上記コマンドを実行しなければなりません。】

  7.19.  IP マスカレードを動かすことができましたが、SYSLOG のログファイ
  ルに あらゆる種類の妙な通知やエラーを受け取っています。 IPFWADM や
  IPCHAINS のファイアウォールエラーをどう読めばよいでしょうか?

  恐らく、確認すべき共通事項が二つあります -

  o  マスカレード - 失敗した TCP のチェックサムエラー - このエラーは、イ
     ンターネット側から来るパケットのデータ部分にエラーがあった時に見る
     でしょうが、それ以外の時に見ることはないでしょう。 Linux ボックスが
     このパケットを受信したとき、パケットの CRC を計算してエラーがないか
     確かめます。マイクロソフト Windows 等の OS のマシンでは、単にパケッ
     トを捨てるだけですが、 Linux IP マスカレードはこれを報告します。も
     し、あなたが PPP リンクで沢山の報告を受けるようなら、先ずこの FAQ
     の前の方にある "マスカレードが遅い" の項に従ってください。

  o  もし上記の全てを実行しても解決できなかった場合は、 /etc/ppp/options
     ファイルに "-vj" を加えてから PPPd を再起動してください。

  o  ファイアウォールヒット - インターネット上で適正なファイアウォールを
     備えると、なんと多くの人々があなたの Linux ボックスに侵入しようとし
     たかに驚くでしょう。そして、これらのファイアウォール・ログの全ては
     何を意味するのでしょうか?

     TrinityOS - Section 10
     <http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html#TrinityOS>
     の文書から -

             以下に記すルールセット中、ファイアウォール・ヒットのログを取る為に、
             DENY 或は REJECT の行には "-l" (IPCHAINSを使う場合。これは小文字の
             "L") または "-o" (IPFWADMを使う場合) が付され、これにひっかかった
             トラフィックは全て以下に示す SYSLOG メッセージファイルのいずれかに
             書き出されます。

     【訳注: 「ファイアウォール・ヒット」(firewall hit) とは、 DENY 或は
     REJECT ルールに適合し、パケットを叩き落した現象を指しています。
     適切な日本語訳が思い付かなかったことと、この後に何度も出て来ますので、
     敢えて日本語訳にしませんでした。】

                     Redhat:         /var/log
                     Slackware:      /var/adm

             これらのファイルのいずれかに記録されるファイアウォール・ログは、
             このようになるでしょう -

             ---------------------------------------------------------------------
             IPFWADM:
             Feb 23 07:37:01 Roadrunner kernel: IP fw-in rej eth0 TCP 12.75.147.174:1633
                100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254

             IPCHAINS:
             Packet log: input DENY eth0 PROTO=17 12.75.147.174:1633 100.200.0.212:23
               L=44 S=0x00 I=54054 F=0x0040 T=254
             ---------------------------------------------------------------------

       このたった 1 行の中に沢山の情報があります。
       この例を解きほぐしていきましょう。
       その後、自分のログファイルに記録されているファイアウォール・ヒット
       に戻って、これを読んだように読み変えてみてください。
       IPCHAINS ユーザは直接読むことができるので、この例は IPFWADM の為に
       あります。

             --------------

             - このファイアウォールのヒットは "Feb 23 07:37:01" に生じました。

             - このヒットは "RoadRunner" コンピュータへのヒットです。

             - このヒットは "IP" または TCP/IP プロトコルです。

             - このヒットは ファイアウォールの IN へのヒットです。 ("fw-in")
                     * 他に "fw-out"は OUT 、 "fw-fwd" は FORWARD へのヒットです。

             - このヒットはここで拒絶（ "rejECTED"）されました。
                     * 他の LOG は "deny" または "accept"と表示されます。

             - このファイアウォール・ヒットは "eth0" インターフェース上の
               ものです。 (Internet link)

             - このヒットは "TCP" パケットでした。

             - このヒットは IP アドレス "12.75.147.174" の返信ポート "1633" から
               来ました。

             - このヒットはアドレス "100.200.0.212" のポート "23" すなわち
               TELNET 宛です。
                     * もし 23 が TELNET ポートと知らないなら, /etc/services
                       ファイルで他にどんなポートが使われているか見てください。

             - このパケットは "44" バイトの長さでした。
             - このパケットには "Type of Service" (TOS) がセットされて
               いませんでした。
                     --これが理解できなくても心配要りません。.. 知る必要は
                       ありません。
                     * ipchains ユーザが TOS を得るには、これを 4 で割ってください。

             - このパケットは "IP ID" 番号 "18" を持っていました。
                     --これが理解できなくても心配要りません。.. 知る必要は
                       ありません。

             - このパケットには "0x0000" のフラグを持つ TCP/IP パケットを含んだ
               16bit fragment offset が設定されていました。
                     --これが理解できなくても心配要りません。.. 知る必要は
                       ありません。
                     * "0x2..." または "0x3..." で始まる値は "More Fragments" bit
                       がセットされていて、分割されたパケットを一つの大きな
                       パケットに完成させる為の別のパケットが来ることを意味します。
                     * "0x4..." または "0x5..." で始まる値は "Don't Fragment" bit
                       がセットされています。
                     * これ以外の値は元の大きなパケットを再現するために後で使われる
                      (8 で割られた) フラグメントオフセットです。

             - このパケットには TimeToLive (TTL) として 20 が設定されていました。
                     * パケットがインターネットの経路上にある全てのルータを通過
                       する【訳注: hop】際に、この数から (1) が引かれます。
                      通常、パケットは (255) という数で始まります。そしてこの数が
                       (0) に達すると、実際はパケットが失われ、削除されることを意味
                       します。

  7.20.  インターネットユーザが直接に内部マスカレード・クライアントと連
  絡を 取ることができるように IP マスカレードを設定できますか?

  はい!  IPPORTFW を使えば、全部のもしくは少数の決まったインターネットホ
  ストがマスカレード接続されたネットワーク内部の任意のコンピュータに接続
  できるように設定することができます。このトピックはこのHOWTOの ``フォ
  ワーダ (ポート転送ツール)'' の章で完全に網羅されています。

  7.21.  SYSLOG ファイルに "kernel: ip_masq_new(proto=UDP): no free
  ports." の メッセージがあります。 どうしたのでしょう?

  ネットワーク内部のマスカレードされているコンピュータの 1 つが、イン
  ターネットに向けて異常に大きな数のパケットを発生しています。 IP マスカ
  レード・サーバがマスカレード・テーブルを作って、インターネット上にこれ
  らのパケットを転送するときのテーブルが急速に書かれています。テーブルが
  満杯になるとこのエラーが生じます。

  私が知っている 一時的にこの状態を作り出すただ一つのアプリケーション
  は、ゲームプログラムの "GameSpy" です。なぜでしょうか?  Gamespy はサー
  バリストを作ってリストにあるすべての数千ものサーバに ping を打ちます。
  この ping を打つことにより、非常に短い時間内に数万もの急速な接続を作り
  ます。 IP マスカレード のタイムアウトによってこのセッションがタイムア
  ウトするまで、マスカレード・テーブルは満杯になります。

  どうしたらいいでしょうか?  現実的には、このようなプログラムを使用しな
  いことです。もしログからこのようなエラーを見つけたら、その原因になって
  いるプログラムを見つけて、使うのを止めてください。もし本当に GameSpy
  が好きなら、サーバ・リフレッシュだけは行わないでください。とにかく、こ
  のマスカレードされたプログラムの実行をやめれば、このマスカレード・エ
  ラーはマスカレード・テーブルの接続タイムアウトにより、自然に解消しま
  す。

  7.22.  IPPORTFW を使おうとすると "ipfwadm: setsockopt failed: Protocol
  not available" というエラーが出ます。

  もし、 "ipfwadm: setsockopt failed: Protocol not available" 【訳注:
  "ipfwadm: setsockopt が失敗: プロトコルは無効です"】というエラーメッ
  セージが出るなら、新しいカーネルが動作していません。新しいカーネルに移
  行した事を確認し、LILO を再実行してからもう一度再起動してください。

  詳しくは ``フォワーダ (ポート転送ツール)'' の章の最後のほうを見てくだ
  さい。

  7.23.  ( SAMBA ) - Microsoft ファイルとプリンタ共用 (File and Print
  Sharing) と Microsoft ドメインクライアントが IP マスカレードで動作しま
  せん。 Microsoft の SMB プロトコルを適切にサポートするには、 IP マスカ
  レード・ モジュールが書かれる必要がありますが、3 つの実行可能な方法が
  あります。 詳細はthis Microsoft KnowledgeBase article を見てください。

  最初の方法は ``フォワーダ (ポート転送ツール)'' の章を参考にして
  IPPORTFW を設定し、 TCP ポートの 137, 138, 139 番を内部の Windows マシ
  ンの IP アドレスにポートフォワードします。これでも動作しますが、この方
  法では内部ネットワークのマシンのうちの 1台でしか動作しません。

  第 2 の解決法は、 Linux マスカレードサーバ上で Samba をインストール
  し、設定する事です。 Samba が動作するなら、 Samba サーバ上に内部の
  Windows のファイルとプリンタの共有 (Windows File and Print shares) を
  マッピングできます。それから新しくマウントされた SMB 共有を、全ての外
  部クライアントにマウントできます。 Samba の設定方法は Linux
  Documentation Project の中にある HOWTO にて完全に網羅されており、また
  これと同様に TrinityOS の文書にもあります。

  第 3 の解決法は、2 台のウインドウズマシン間で、或は 2 つのネットワーク
  間で VPN (仮想プライベート・ネットワーク) を形成することです。これは
  PPTP 経由か IPSEC VPN による解決方法のどちらでも行うことができます。
  Linux 用の ``'' パッチがありますし、IPSEC の実装は 2.0.x と 2.2.x のど
  ちらのカーネルでも可能です。この解決法が恐らく 3 つの全ての解決法の中
  で最も確実で最も安全な方法になるでしょう。

  これらの解決方法の全貌は、この HOWTO では網羅されていません。 IPSEC の
  ヘルプは TrinityOS の文書を見てください。更に多くの情報を得たいなら、
  JJohn Hardin の PPTP のページを見てください。

  また、 Microsoft の SMB プロトコルはセキュリティ上非常に問題があること
  を理解してください。このため、 Microsoft ファイルとプリンタの共有
  (File and Print sharing) や Windows ドメインログインを、インターネット
  上で暗号化されないトラフィックのまま使うことは非常に危険です。

  7.24.  ( IDENT ) - IRC がマスカレード・クライアントの IRC ユーザでうま
  く 動作しません。 なぜでしょうか?

  最も可能性が高い原因は、多くの Linux ディストリビューションにおいて共
  通に装備されている IDENT, すなわち "Identity" サーバは、 IP マスカレー
  ド・リンクに対処できないことです。でも心配は無用です。 Linux で動作す
  る、これに対応できる IDENT プログラムが他にあります。

  このソフトウェアのインストールはこの HOWTO の範囲外です。しかし、各
  ツールにはその為の文書があります。ここに、その URL を幾つか紹介します
  -

  o  Oident <http://freshmeat.net/projects/oidentd/homepage/> は、マスカ
     レード・ユーザお気に入りの IDENT サーバです。

  o  Mident <ftp://ftp.code.org/pub/linux/midentd/> は人気のあるもう一つ
     の IDENT サーバです。

  o  Sident <http://insecurity.net/sidentd.gz>

  o  Other Idents
     <ftp://sunsite.unc.edu/pub/Linux/system/network/daemons/>

  サーバが Ident 情報を得てユーザが異なっていたと知っても、同じホストか
  らの多重接続を許そうとしないいくつかのインターネット IRC サーバがある
  ことに注意してください。サーバのシステム管理者に苦情を言ってください。
  :)

  7.25.  ( DCC ) - mIRC の DCC 送信が動作しません。

  これは mIRC の設定の問題です。これを解決するには、最初に mIRC を IRC
  サーバから切断してください。それから mIRC で、 File → Setup と進み、
  IRC servers タブをクリックします。ポート 6667 が設定されていることを確
  かめてください。他のポートを要求するなら後述の記載を参照してください。
  次に、 File →  Setup → Local Info を開いて、 Local Host と IP
  Address のフィールドをクリアしてください。次に "LOCAL HOST" と "IP
  address" のチェックボックスを選択します。 ( IP address はチェックでき
  るかもしれませんが無効になります。) 次に "Lookup Method" の下で
  "normal" に設定します。もし "server" が選択されていると動作しません。
  それだけです。 IRC サーバに再び繋いでみてください。

  【訳注: mIRC は  にある、 Windows 系 OS 向けの、シェアウェアの IRC ク
  ライアントです。なお、訳者がダウンロードして試用してみましたが、日本語
  の表示はできませんでした。】

  もし 6667 以外 (例えば6969) のIRC サーバのポートを要求するなら、IRC マ
  スカレード・モジュールをロードする為に、起動ファイル
  /etc/rc.d/rc.firewall を編集する必要があります。このファイルの
  "modprobe ip_masq_irc" の行に "ports=6667,6969" を追加します。更に、カ
  ンマで区切ってポートの指定を追加できます。

  最後に、全てのマスカレードマシン上の全ての IRC クライアントを切断し
  て、 IRC マスカレード・モジュールをリロードしてください -

  /sbin/rmmod ip_masq_irc /etc/rc.d/rc.firewall

  7.26.  ( IP Aliasing ) - IP マスカレードは1枚だけのイーサネット ネット
  ワークカードで動作しますか?

  「はい」とも「いいえ」とも言えます。ユーザはカーネルの "IP Alias" 機能
  を使って、 eth0:1, eth0:2 のように別名を使った多重のインターフェースを
  設定できます。しかし、 IP マスカレードをこの別名インターフェースに使う
  ことはお薦めしません。何故なら、単一の NIC カードでは安全なファイア
  ウォールを提供することが非常に困難になります。これに加えて、入って来た
  パケットがほとんど同時に発送されるので、このリンク上で異常な量のエラー
  を経験するでしょう。この理由と、現在は NIC カードが $10 未満の価格です
  から、私はそれぞれのマスカレード接続されたネットワーク・セグメント毎に
  1 つずつの NIC を手に入れることを強くお奨めします。

  またIPマスカレードは eth0, eth1 のような物理的なインターフェース上でし
  か動作しないと思ってください。 "eth0:1, eth1:1, など" の別名インター
  フェースを使ってもマスカレードは動作しないでしょう。言い替えれば、以下
  のようなものは動作しません -

  o  /sbin/ipfwadm -F -a m -W eth0:1 -S 192.168.0.0/24 -D 0.0.0.0/0

  o  /sbin/ipchains -A forward -i eth0:1 -s 192.168.0.0/24 -j MASQ"

  それでも別名インターフェースにまだ興味を持っているのでしたら、カーネル
  の "IP Alias" 機能を有効にする必要があります。その後、再コンパイルし、
  リブートします。一度新しいカーネルを実行すると、新しいインターフェース
  (つまり /dev/eth0:1 など) を使用するために Linux の設定が必要になりま
  す。その後は上記のような幾つかの制限がありますが、通常のイーサネット・
  インターフェースのように扱うことができます。

  7.27.  ( MULTI-LAN ) - 私は 2 つのマスカレードされた LANを持っています
  が、それらは互いに通信できません。

  詳細は ``複数の内部ネットワークへの IP マスカレード'' を見てください。

  7.28.  ( SHAPING ) - 私は、特定のタイプのトラフィックの速度を制限した
  いと思います。

  このトピックは実際は IP マスカレードとは関係なく、Linux カーネルに組み
  込まれているトラフィックシェーピングとレート制限機能が全てを行います。
  詳細はカーネルソースツリーにある
  /usr/src/linux/Documentation/networking/shaper.txt を見てください。
  【訳注: 「トラフィックシェーピング」は、カーネルの Traffic Shaper
  (CONFIG_SHAPER) というスイッチで指定される機能で、一般にネットワーク機
  器の出力側で行われる機能を指します。「レート制限」という言葉は、広い意
  味でのネットワークの帯域制限技術全体を指し、前述のトラフィックシェーピ
  ングだけでなく、具体的にはポリシングやキューのマネジメント、スケジュー
  リング等の機能も含まれます。】

  これに関して、IPROUTE2 の為の ``2.2.x カーネルの必要条件'' の章の下
  に、いくつかの URL を含む多くの情報があります。

  7.29.  ( ACCOUNTING ) -  私は誰がネットワークを使用しているかについて
  管理する必要があります。

  IP マスカレードでできることはそう多くはありませんが、ここに幾つかのア
  イデアがあります。もし、もっと良い解決法を知っているなら、この HOWTO
  の著者にメールを送ってください。そうすれば、HOWTO に載せられます。

  o  アイデア #1 - インターネットへ出ていく www トラフィックを全て記録し
     たいと言うことですね。ファイアウォール・ルールに「ポート 80 番を
     ACCEPT 」と設定して、 SYN ビットが設定されたトラフィックをログ記録
     するように設定できます。ただ、これは非常に大きなログファイルを作成
     することに注意してください。

  o  アイデア #2 - "ipchains -L -M" コマンドを 1 秒間に一度実行し、これ
     らのエントリーの全てをログ記録しましょう。その後、この情報をひとつ
     の大きなファイルへ合併するプログラムを書きましょう。

  7.30.  ( MULTIPLE IPs ) -  いくつかの外部 IP アドレスを使って、いくつ
  かの内部マシンへ PORTFW したいのですがどのようにやるのでしょうか。

  できません。マスカレードは 1対多の NAT セットアップです。あなたが捜し
  ているようなツールではありません。あなたが捜しているのは多対多の NAT
  による解決方法で、従来の NAT セットアップです。あなたが必要なのは
  IPROUTE2 ツールで、詳しくは FAQ の章の ``トラフィックシェーピング'' に
  ある IPROUTE2 に関する箇所を見てください。

  1 つの内部 NIC を "IP Alias" を使って複数 IP アドレスにし、そしてこれ
  らすべてのポート (0-65535) をポートフォワードし、IPROUTE2 を使って適切
  なソース／ディスティネーションの IP ペアを維持することを考えている人へ
  の回答になります。これはカーネル 2.0.x でうまくいき、カーネル 2.2.x で
  もよりうまくいきました。この成功にかかわらず、このやりかたはそれを行う
  適切な方法でなく、サポートされたマスカレードの使い方ではありませ
  ん。IPROUTE2 を見てください.. 本当の NAT を行う正しい方法があります。

  またもう一つの注意ですが -

  もし、ブリッジされた DSL かケーブル・モデム (PPPoEではない)を使って接
  続していれば、あなたの構成では経路を決められないので、少し難しくなりま
  す。でも心配はいりません。 LDP の "Bridge+Firewall, Linux
  Bridge+Firewall Mini-HOWTO" をチェックしてください。 Linux ボックスが
  一つのインターフェース上で、複数の IP アドレスをサポートする方法を教え
  てくれるでしょう。

  7.31.  私はマスカレードされた接続を見る為、 NETSTAT コマンドを 使おう
  としましたが、これが動作してくれません。

  2.0.x ベースの Linux ディストリビューションに含まれる "netstat" プログ
  ラムに問題があるかもしれません。 Linux をリブートした後、"netstat -M"
  を起動すると、うまく動作します。しかし、マスカレードされたコンピュータ
  が ping や traceroute のような、 ICMP トラフィックを発生した後に、以下
  のようなエラーを見るかもしれません -

  masq_info.c: Internal Error `ip_masquerade unknown type'.

  このための代替手段は "/sbin/ipfwadm -M -l" コマンドを使用することで
  す。また一度リストされた ICMP マスカレード・エントリがタイムアウトする
  と、 "netstat" は再び動作することに気が付くでしょう。

  7.32.  ( VPNs ) - Microsoft PPTP (GRE tunnels) または IPSEC (Linux
  SWAN) トンネルを IP マスカレード を通して使いたいのですが。

  これは可能です。それは多少この文書の範囲外ですが、詳しくは John Hardin
  の PPTP Masq ページをチェックしてください。

  7.33.  XYZ ネットワーク・ゲームを IP マスカレード を通して使いたいので
  すが、 うまくいきません。助けて!

  まず、Steve Grevemeyer's MASQ Applications page
  <http://www.tsmservices.com/masq> をチェックしてください。もし解決法が
  そこになかったら、LINUX カーネルに Glenn Lamb の LooseUDP
  <ftp://ftp.netcom.com/pub/mu/mumford/loose-udp-2.0.36.patch.gz> パッチ
  を当ててください。それはこの文書の ``'' の章の中に網羅されています。ま
  たもっと多くの情報は Dan Kegel の NAT Page
  <http://www.alumni.caltech.edu/~dank/peer-nat.html> をチェックしてくだ
  さい。

  もし技術的に興味があるなら、"tcpdump" プログラムを使って、あなたのネッ
  トワークを覗いてみてください。そして XYZ ゲームが使っているプロトコル
  とポート番号を見つけ出してください。この情報をメモしたら、IP Masq メー
  リングリスト を閲覧して、調べた結果をメールして助けてもらってくださ
  い。

  7.34.  IP マスカレード は暫くの間はうまく動作します。 しかし、その後、
  動作しなくなります。 再起動すると暫くの間これが解決されたように見えま
  す。 なぜでしょうか?

  あなたは IPAUTOFW を使っているか、或はそれをカーネルにコンパイルしてい
  ることに賭けましょう。ね、そうじゃないですか?  これは IPAUTOFW に関す
  る既知の問題です。 Linux カーネルに IPAUTOFW を使わないで、代わり
  にIPPORTFW を使ってください。詳細は ``フォワーダ (ポート転送ツール)''
  の章の中で網羅されています。

  7.35.  ネットワーク内部のマスカレードされているコンピュータが SMTP や
  POP-3 メールを送ってくれません!

  これはマスカレーディングの問題ではないのですが、多くの人がこうなるの
  で、言及します。

  SMTP - 問題は、恐らく SMTP 中継サーバとして Linux ボックスを使用してお
  り、以下のエラーが発生しているのではないでしょうか -

       "error from mail server: we do not relay" (メールサーバからのエラー -
       転送できません。)

  Sendmail のより新しいバージョンや他のメール転送エージェント (MTA) サー
  バは、デフォルトで中継を禁止しています。(これはよいことです) 従って、
  これを解決するために下記を行ってください -

  o  Sendmail - /etc/sendmail.cw ファイルを編集して、そのファイルにネッ
     トワーク内部のマスカレードされているコンピュータのホスト名及びドメ
     イン名を加えて、マスカレードされているマシンからのメールの中継を許
     可してください。更に /etc/hosts ファイルの中で IP アドレス及び FQDN
     (ホスト名とドメイン名が完全に記述された名前) を設定していることを
     チェックしてください。終わったら、その設定ファイルを読み込む為に
     sendmail を再起動する必要があります。これは TrinityOS - Section 25
     <http://www.ecst.csuchico.edu/~dranch/LINUX/index-
     linux.html#TrinityOS> の中で網羅されています。

     POP-3 - あるユーザはネットワーク内部のマスカレードされているコン
     ピュータの POP-3 クライアントを、ある外部の SMTP サーバへ接続するよ
     うに設定します。接続がされている間、多くの SMTP サーバはポート 113
     を通じてこの接続に IDENT を試みるでしょう。ここで最もありがちな問題
     は、デフォルトのマスカレード・ポリシーが DENY に設定されていること
     です。これは良くありません。これを REJECT にして、rc.firewall ルー
     ルセットを再実行してください。

  7.36.  ( IPROUTE2 ) - 私は、外に出るための異なる外部 IP アドレスを、異
  なる 内部マスカレードネットワークの各々に割り当てる必要があります。

  この問題を言い換えるとこういうことです - 複数の内部ネットワークと更に
  複数の外部 IP アドレスまたはネットワークを持っています。やりたいことは
  LAN #1 からは外部 IP #1 だけを使用し、LAN #2 からは外部 IP #2 を使用す
  ることです。

  内部 LAN  -%#045;--------> 公式な IP

  LAN #1                 外部 IP #1 192.168.1.x      -->
  123.123.123.11

  LAN #2                 外部 IP #2 192.168.2.x      -->
  123.123.123.12

  基本的に、ここで記述したものは宛先アドレスによるルーティング (典型的な
  IP ルーティング) だけでなく、送信元アドレスに基づいてのルーティングに
  ついてです。これは一般的に "policy-based routing" 【訳注: ポリシーに基
  づいたルーティング】 あるいは "source routing" 【訳注: 送信元ルーティ
  ング】と呼ばれます。この機能はカーネル 2.0.x では提供されていません
  が、カーネル 2.2.x では IPROUTE2 パッケージによって提供されています。
  そしてこれは IPTABLES を使う新しいカーネル 2.4.x には組み込まれていま
  せん。

  先ず、 IPFWADM 及び IPCHAINS は両方共、ルーティングシステムが受け取っ
  たパケットをどこへ送るべきか決定した *後になって* 初めて関与するものだ
  ということを理解しなければなりません。この動作の仕組みは、全ての
  IPFWADM/IPCHAINS/IPMASQ の文書に大きな赤いスタンプで押されるほど、本当
  に重要なことです。この理由は、ユーザは最初にルーティングを正しく設定し
  なければならず、その後に IPFWADM/IPCHAINS 及び/又はマスカレード機能を
  追加し始めることができるからです。

  とにかく、上に示された例のケースについては、ルーティングシステムが
  192.168.1.x からのパケットは 123.123.123.11 経由に、 192.168.2.x から
  のパケットは 123.123.123.12 経由となるようにさせる必要があります。ここ
  が難しい部分で、ルーティングが正しくなればその上にマスカレードを加える
  のは簡単です。

  この気まぐれなルーティングを行うために、IPROUTE2 を使用します。この機
  能は全く IP マスカレードと関係がないので、このHOWTO はこのトピックをそ
  れほど詳しく網羅しません。このトピックについては ``2.2.x カーネルの必
  要条件'' にある完全な URL と文書を見てください。

  "iprule" と "iproute" コマンドは "ip rule" と "ip route" コマンドと同
  じです。 (私は検索し易いので前者のほうが好きです。) 下記のコマンドは全
  て完全には試験されていません。これが動作しない場合、 IPROUTE2 の著者と
  連絡をとってください..これは全く IP マスカレーディングと関係がありませ
  んので、David Ranch や IP マスカレード・メーリングリストの誰とも関係し
  ません。

  最初のいくつかのコマンドは起動時に一度だけ実行する必要があるだけですの
  で、 /etc/rc.d/rc.local ファイルの中に記述します。

       # 内部LANが互いのルーティングを可能にします。
         /sbin/iprule add from 192.168.0.0/16 to 192.168.0.0/16 table main pref 100
       # すべての他の 192.168.1.x からのトラフィックは外部です、テーブル 101 によって扱う。
         /sbin/iprule add from 192.168.1.0/24 to 0/0 table 101 pref 102
       # すべての他の 192.168.2.x からのトラフィックは外部です、テーブル 102 によって扱う。
         /sbin/iprule add from 192.168.2.0/24 to 0/0 table 102 pref 102

       eth0 が設定されている時に、これらのコマンドを実行する必要があります。
       Redhat システムでは、恐らく /etc/sysconfig/network-scripts/ifup-post
       の中で記述することとなるでしょう。
       これが動作することを確かめるために最初は必ず手動で行ってください。

       # テーブル 101 は、割り当てられたパケットをすべて 123.123.123.11 経由に指示します。
         /sbin/iproute add table 101 via 62123.123.123.11
       # テーブル 102 は、割り当てられたパケットをすべて 123.123.123.12 経由に指示します。
         /sbin/iproute add table 102 via 62123.123.123.12

       この段階では、192.168.1.x から外部の世界へのパケットが 123.123.123.11 を経由しており、
       192.168.2.x からのパケットは 123.123.123.12 を経由していることを知っておいてください。

       ルーティングが正確になったら、今度はどんな IPFWADM あるいは IPCHAINS
       ルールをも加えることができます。
       次の例は IPCHAINS 用です -

       /sbin/ipchains -A forward -i ppp+ -j MASQ

       すべての設定が合っている場合、マスカレード・コードはパケットが 123.123.123.11 と
       123.123.123.12 経由にルーティングされていることを見て、マスカレードの
       送信元・アドレスとしてそれらのアドレスを使用します。

  7.37.  なぜ新しい 2.1.x 及び 2.2.x カーネルは、IPFWADM の代わりに
  IPCHAINS を使うのですか?

  IPCHAINS は IPFWADM が持っていない次の機能をサポートします。 -

  o  "サービスの質 " (QoS  サポート)

  o  IPFWADM のような線形システムに対して、ツリー形式のチェインシステム
     です。(例えば、 IPCHAINS は「もしそれが ppp0 であれば、 (異なるルー
     ル群を含んでいる)このチェインにジャンプせよ。」の様なことができま
     す。)

  o  IPCHAINS は設定がより柔軟です。例えば、("insert" 【訳注: 挿入】と
     "add" 【訳注: 追加】に加えて) "replace" 【訳注: 置換】コマンドを装
     備しています。さらにルールを否定することができます。 (例えば、「私
     のネットワーク上で登録済みの IP アドレスから発生したものではない外
     向きのパケットを全て廃棄します。」と設定すれば、あなたは代理攻撃の
     源にはならずに済みます。)

  o  IPCHAINSは単なるTCP, UDP, ICMP だけでなく、任意の IP プロトコルを明
     示的にフィルタできます。

  7.38.  カーネルを 2.2.x にアップグレードしたら、 IP マスカレードが 動
  かなくなりました。なぜでしょう?

  IP マスカレードを行っている Linux マシンが、既にインターネットと LAN
  に正しく接続されているのであれば、以下の項目をチェックしてみてください
  -

  o  必要な機能とモジュールがコンパイルされ、ロードされていることを確か
     めてください。詳しくは、前の方の章を見てください。

  o  /usr/src/linux/Documentation/Changes をチェックして、最低限必要な
     ネットワーク関係のツールがインストールされていることを確かめてくだ
     さい。

  o  この HOWTO の ``IP マスカレードのテスト'' の章の中にあるすべてのテ
     ストに従ったか確認してください。

  o  IP マスカレードとファイアーウォール・ルールを設定するために
     ipchains <http://netfilter.filewatcher.org/ipchains/> を使わなけれ
     ばなりません。

  o  標準の IPAUTOFW 及び IPPORTFW ポート転送プログラムは IPMASQADM
     <http://juanjox.kernelnotes.org/> に置き換えられました。カーネルに
     これらのパッチを当て、カーネルを再コンパイルし、新しい IPMASQADM
     ツールをコンパイルし、かつ、次に古い IPAUTOFW/IPPORTFW ファイア
     ウォール・ルールセットを新しい構文に変換する必要があります。これ
     は、 ``フォワーダ (ポート転送ツール)'' の章で完全に網羅されていま
     す。

  o  全ての設定をもう一度やり直してみましょう!  原因の殆どはコマンドの打
     ち間違いや単純なミスの見逃しです。
  7.39.  カーネルを 2.0.38 (あるいはそれ以降) にアップグレードしたら、
  IP マスカレードが動かなくなりました。なぜでしょう?

  IP マスカレードを行っている Linux マシンが、既にインターネットと LAN
  に正しく接続されているのであれば、以下の項目をチェックしてみてください
  -

  o  必要な機能とモジュールがコンパイルされ、ロードされていることを確認
     してください。詳しくは、前の方の章を見てください。

  o  /usr/src/linux/Documentation/Changes をチェックして、最低限必要な
     ネットワーク関係のツールがインストールされていることを確かめてくだ
     さい。

  o  この HOWTO の ``IP マスカレードのテスト'' の章の中にある全てのテス
     トに従ったか確認してください。

  o  IP マスカレードとファイアウォール・ルールを設定するためにはipfwadm
     <http://www.xos.nl/> を使わなければなりません。もし IPCHAINS を使い
     たいのなら、カーネル 2.0.x にパッチを当てる必要があります。

  o  全ての設定をもう一度やり直してみましょう!  原因の殆どはコマンドの打
     ち間違いや単純なミスの見逃しです。

  7.40.  EQL 接続と IP マスカレードを使たいのですが。

  EQL は IP マスカレードは、よく Linux ボックス上で組み合わせられます
  が、これらは全く関係ありません。 EQL が必要なら、Robert Novak's EQL
  HOWTO の最新バージョンをチェックすることを薦めます。

  7.41.  IP マスカレードが動作してくれません! Windows プラットフォーム上
  での選択肢はありますか?

  最低限のハードウェアで動作し、フリーで信頼性があり、高性能な解決法を諦
  めて、重いハードウェアを必要とする、性能の低い、その上信頼性もない方法
  の為に金を払うのですか? (これは私の個人的な意見です。勿論、私も実際に
  このような経験をしたことがあります ;-)

  いいでしょう、あなたが必要だと言うなら仕方がありません。 Windows NAT
  及び/又は プロキシによる解決を望むのなら、ここに丁度良い一覧がありま
  す。私はこれらのツールに関して今まで使ったことがないので、これらの好み
  はわかりません。

  o  Firesock (Trumpet Winsockのメーカーから)

     o  Does Proxy

     o  http://www.trumpet.com.au

  o  Iproute

     o  286+ クラスのコンピュータで働くように設計された DOS プログラム。

     o  Linux マスカレードのような他のボックスを必要とする。

     o  http://www.mischler.com/iproute/

  o  Microsoft Proxy

     o  Windows NT Server が必要

     o  非常に高価

     o  http://www.microsoft.com

  o  NAT32

     o  Windows 95/98/NT コンパチブル

     o  http://www.nat32.com

     o  Win9x 用は約 $25 Win9x と WinNT 用は約 $47

  o  SyGate

     o  http://www.sygate.com

  o  Wingate

     o  プロキシ機能

     o  価格は 2-3 クライアント用で $30

     o  http://www.wingate.com

  o  Winroute

     o  NAT 機能

     o  http://www.winroute.cz/en/

  最後に "MS Proxy Server", "Wingate", "WinProxy" でウェブサーチをする
  か、www.winfiles.com <http://www.winfiles.com> に行ってみてください。
  でも、絶対に誰にも私たちが教えたと言わないでください。

  【訳注: 日本では BlackJumboDog が有名でしょう。】

  7.42.  IPマスカレード開発に協力したいのですが、何ができますか?

  Linux IP マスカレード開発者メーリングリストに参加して、あなたのできる
  ことを開発者に尋ねてください。リストへの参加についてのより詳細は、FAQ
  の章の ``IP マスカレード・メーリングリスト'' をチェックしてください。

  そこで IP マスカレードの開発に関係ない質問はしないでください!!!!

  7.43.  IP マスカレードの情報がもっと欲しいのですが。

  IP マスカレードに関するより多くの情報は David Ranch が管理している
  Linux IP マスカレードの情報源 <http://ipmasq.cjb.net/> で見つけられま
  す。

  また TrinityOS と他の Linux の文書が含まれている Dranch's Linux page
  <http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html> にて、よ
  り多くの情報を見つけられます。

  IP マスカレードメーリングリストを提供している Indyramp Consulting が管
  理している The Semi-Original Linux IP Masquerading Web Site
  <http://www.indyramp.com/masq/> でも、もっと多くの情報を見つけられるで
  しょう。

  最後に IP マスカレードメーリングリストのアーカイブや IP マスカレード開
  発者メーリングリストのアーカイブの中から特定の質問を捜すことができます
  し、これらのメーリングリストに質問をすることもできます。詳細は FAQ の
  ``IP マスカレード・メーリングリスト'' をチェックしてください。

  7.44.  この HOWTO を別の言語に翻訳したいのですが、どうすればいいでしょ
  う?

  訳そうとする言語での翻訳を、まだ誰も出していないことを確認してくださ
  い。しかし、翻訳された HOWTO の殆どは今古くなっていて、更新する必要が
  あります。現在ある HOWTO 翻訳の一覧は Linux IP マスカレードの情報源
  <http://ipmasq.cjb.net/> で見つけられます。

  もし翻訳したい言語の IP マスカレード HOWTO の現バージョンのコピーが無
  ければ、 Linux IP マスカレードの情報源 <http://ipmasq.cjb.net/> から
  IP マスカレード HOWTO の SGML コードの最新版をダウンロードしてくださ
  い。そこから、良い SGML コーディングを維持しながら翻訳を進めてくださ
  い。 SGML に関するより多くのヘルプについては、www.sgmltools.org
  <http://www.sgmltools.org> をチェックしてください。

  7.45.  この HOWTO は古くなっているように見えますが、まだこれを保守し続
  けて いますか? ...に関する情報を追加してもらえますか? この HOWTO を改
  善する予定はありますか?

  はい、この HOWTO は保守され続けています。ごめんなさい。過去に私たちは
  2 つの仕事で忙し過ぎて、この改訂に費やす時間が取れずにいました。 v1.50
  の時点で、 David Ranch は文書を大幅に改訂し、現在のものになっていま
  す。

  HOWTOに 含めた方がよいと思われるトピックがあれば、 ambrose@writeme.com
  及び dranch@trinnet.net 宛にメールを送ってください。詳しい情報を提供し
  てくれるともっといいですね。その後、その情報が適切であることがわかり、
  またテストで確認できたら HOWTO へ含めます。ご協力に感謝します!

  私達はこの HOWTO を改善するためのアイデアと計画を持っています。その中
  には IP マスカレードを使い、異なったネットワークのセットアップをカバー
  するケース・スタディや、 IPFWADM/IPCHAINS を使った強いファイアウォー
  ル・ルールセットでの安全性強化、 IPCHAINS の使用法、より多くの FAQ エ
  ントリ等があります。もしあなたが協力してくれるなら、是非お願いします!
  宜しくお願いします。

  7.46.  IPマスカレードが動作してくれました。 これは素晴らしい! 私はあな
  たがたに感謝したいのですが、何ができるでしょうか?

  o  HOWTO のより新しいバージョンを別の言語に翻訳していただけませんか。

  o  開発者に感謝して、かれらがこれに費やした時間及び努力を評価してくだ
     さい。

  o  IP マスカレード・メーリングリストに参加し、新規のマスカレードユーザ
     を支援してください。

  o  私たちへメールを送り、あなたがどんなに幸福か知らせてください。

  o  他の人々に Linux を手ほどきして、彼らが問題を抱えていた場合、彼らを
     支援してあげてください。

  8.  その他の情報

  8.1.  有用な情報源

  o  Linux IP マスカレードの情報源 <http://ipmasq.cjb.net/> には IP マス
     カレードの設定に関する最新情報の全てが満載されています。 2.0.x,
     2.2.x, そして古い 1.2 カーネルさえも網羅されています!

  o  現在の Linux IP マスカレードの管理者である Juan Jose Ciarlante の
     WWW サイト <http://juanjox.kernelnotes.org> 。

  o  IP マスカレードメーリングリストアーカイブ
     <http://www.indyramp.com/lists/masq> にはメーリングリストに投稿され
     た最新のメッセージがあります。

  o  TrinityOS Linux 文書及び IP-MASQ-HOWTO の最新バージョンを含む David
     Ranch の Linux web ページ
     <http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html> 。強
     い IPFWADM/IPCHAINS のルールセット、 PPP, Diald, ケーブルモデム,
     DNS, Sendmail, Samba, NFS, セキュリティ等の、 IP MASQ に関する話題
     が満載されています。

  o  The IP Masquerading Applications page
     <http://www.tsmservices.com/masq>: Linux IP マスカレーディングサー
     バ上で動作するか、或は動作するように調整されているアプリケーション
     の包括的なリスト。

  o  MkLinux 上で IP Masq を設定するなら、 tarozax@earthlink.net の Taro
     Fukunaga 氏にメールして、彼によるこの HOWTO の MkLinux バージョンの
     短いコピーを入手してください。

  o  IP masquerade FAQ <http://www.indyramp.com/masq/ip_masquerade.txt>
     には全般的な情報が幾つかあります。

  o  Paul Russel の http://netfilter.filewatcher.org/ipchains/ にある
     IPCHAINS-HOWTO 。そしてこの古いバックアップが Linux IPCHAINS HOWTO
     にあります。この HOWTO には IPCHAINS の使い方に関する情報が満載され
     ており、 ipchains ツールのソースコードとバイナリも入手できます。
     【訳注: 日本語訳は

     にあります。】

  o  X/OS Ipfwadm page <http://www.xos.nl/linux/ipfwadm/> には、 ipfwadm
     パッケージに関するソース、バイナリ、文書及びその他の情報がありま
     す。

  o  GreatCircle's Firewall mailing list をよく読んで、強いファイア
     ウォールのルールセットの為の素晴らしい情報源を得てください。

  o  LDP Network Administrator's Guide
     <http://www.linuxdoc.org/LDP/nag/nag.html> は、ネットワークを構築し
     ようとする Linux 管理者の卵にとって必携の文書です。

  o  Linux NET-3-4 HOWTO
     <http://www.linuxdoc.org/HOWTO/NET3-4-HOWTO.html> もまた Linux ネッ
     トワークを構築し、設定する為の、もう一つの包括的な文書です。

  o  Linux ISP Hookup HOWTO <http://www.linuxdoc.org/HOWTO/ISP-Hookup-
     HOWTO.html> 及び Linux PPP HOWTO
     <http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html> は、あなたの Linux
     ホストをインターネットに接続する方法に関する情報を提供します。

  o  Linux Ethernet-Howto <http://www.linuxdoc.org/HOWTO/Ethernet-
     HOWTO.html> は、イーサネット上で動作する LAN の構築に関する良い情報
     源です。

  o  Donald Becker NIC ドライバとサポートユーティリティ
     <http://cesdis.gsfc.nasa.gov/linux/drivers/> 【訳注: 上記 URI は既
     にリンク切れです。現在は、 Linux Network Drivers
     <http://www.scyld.com/network/> に移動しています。】

  o  きっと、Linux Firewalling and Proxy Server HOWTO
     <http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html> にも興味を示さ
     れることでしょう。

  o  Linux Kernel HOWTO <http://www.linuxdoc.org/HOWTO/Kernel-
     HOWTO.html> はあなたにカーネルをコンパイルする方法を導いてくれま
     す。

  o  上記 Kernel HOWTO 以外の Linux HOWTO 一覧
     <http://www.linuxdoc.org/HOWTO/HOWTO-INDEX/howtos.html> がここにあ
     ります。

  o  USENET ニューズグループに投稿するなら: comp.os.linux.networking

  8.2.  Linux IP マスカレードの情報源

  Linux IP マスカレードの情報源 <http://ipmasq.cjb.net/> は、 Ambrose Au
  氏によって管理されている、 Linux IP マスカレードに熱心な web サイトで
  す。 IP マスカレードに関する最新情報と、この HOWTO に含まれない情報が
  掲載されています。

  以下の場所で、Linux IP マスカレードの情報源が見つかります -

  o  プライマリサイト - http://ipmasq.cjb.net/ ここは http://www.e-
     infomax.com/ipmasq/ へ転送されます。

  o  セカンダリサイト - http://ipmasq2.cjb.net/ ここは
     http://members.home.net/ipmasq/ へ転送されます。

  8.3.  謝辞

  アルファベット順 -

  o  Gabriel Beitler, gabrielb@voicenet.com
     3.3.8 章 の執筆 (Novell の設定)

  o  Juan Jose Ciarlante, irriga@impsat1.com.ar
     IPFWADM ポートフォワードツールにおける彼の功績、カーネル 2.1.x 及び
     2.2.x のコード、オリジナルの LooseUDP パッチ等。

  o  Steven Clarke, steven@monmouth.demon.co.uk
     彼の IPPORTFW IP ポートフォワーダーツールにおける貢献。

  o  Andrew Deryabin, djsf@usa.net
     彼の ICQ MASQ モジュールにおける貢献。

  o  Ed Doolittle, dolittle@math.toronto.edu
     セキュリティを改善する ipfwadm コマンドの -V オプションの提案。

  o  Matthew Driver, mdriver@cfmeu.asn.au
     この HOWTO の拡張を手伝うと共に、 3.3.1 章 (Windows95 の設定) の提
     供。

  o  Ken Eves, ken@eves.com
     FAQ における、この HOWTO の為の貴重な情報の提供。

  o  John Hardin, jhardin@wolfenet.com
     彼の PPTP 及び IPSEC フォワーディングツール。

  o  Glenn Lamb, mumford@netcom.com
     LooseUDP パッチ。

  o  Ed. Lott, edlott@neosoft.com
     テストされたシステムとソフトウェアの長いリスト。

  o  Nigel Metheringham, Nigel.Metheringham@theplanet.net
     彼のバージョンの IP Packet Filtering and IP Masquerading HOWTO の貢
     献。この HOWTO をより良くし、技術的に深い文書に仕上げてくれた。
     4.1, 4.2 章及びその他。
  o  Keith Owens, kaos@ocs.com.au
     4.2 章の ipfwadm の素晴らしい手引の提供。
     セキュリティホールを回避する ipfwadm -deny オプションの修正、及び
     IP マスカレード上の ping の状態を明らかにしたこと。

  o  Michael Owings, mikey@swampgas.com
     CU-SeeMe 及び Linux IP-Masquerade Teeny How-To の章の提供

  o  Rob Pelkey, rpelkey@abacus.bates.edu
     3.3.6 及び 3.3.7 章の提供 (MacTCP 及び オープントランスポートの設
     定)

  o  Harish Pillay, h.pillay@ieee.org
     4.5 章 の提供(Diald を用いるダイヤルオンデマンド)

  o  Mark Purcell, purcell@rmcs.cranfield.ac.uk
     4.6 章の提供(IPautofw)

  o  David Ranch, dranch@trinnet.net
     この HOWTO の更新及び保守、Linux IP マスカレードの情報源の web ペー
     ジ、 TrinityOS の文書、 , ..., ここに列挙するには多すぎます。 :-)

  o  Paul Russell, rusty@linuxcare.com.au
     IPCHAINS, IP マスカレードのカーネルパッチ等における彼の仕事。

  o  Ueli Rutishauser, rutish@ibm.net
     3.3.9 章の提供(OS/2 Warp の設定)

  o  Steve Grevemeyer, grevemes@tsmservices.com
     Lee Nevo から IP Masq アプリケーション web ページを引き継ぎ、 DB
     バックエンドの全てを更新。

  o  Fred Viles, fv@episupport.com

  o  John B. (Brent) Williams, forerunner@mercury.net
     3.3.7 章の提供(オープントランスポートの設定)

  o  Enrique Pessoa Xavier, enrique@labma.ufrj.br
     BOOTp 設定の提案。

  o  IP-MASQ メーリングリスト上の全ての参加者, masq@tiffany.indyramp.com
     新たな Linux MASQ ユーザに対する援助とサポート。

  o  その他、この素晴らしい機能である IP マスカレードのコード及び文書の
     開発者。

          o  Delian Delchev, delian@wfpa.acad.bg

          o  David DeSimone (FuzzyFox), fox@dallas.net

     o  Jeanette Pauline Middelink, middelin@polyware.iaf.nl

     o  Miquel van Smoorenburg, miquels@q.cistron.nl

     o  Jos Vos, jos@xos.nl

     o  そして私がここで列挙し忘れてしまった人達。(教えてくだ
        さい)

  o  特にドキュメントやクライアントの誤りを報告した、メーリングリストへ
     フィードバックや提案を送る全てのユーザが援助されるとは限りません。

  o  もし、まだ重要な名前を忘れていたり、何人かの仲間のユーザが送ってく
     れた情報等が含まれていないなら、陳謝します。多くの提案とアイディア
     が送られていますが、それを検証してこの文書に統合するために十分な時
     間がありません。 David Ranch はこの HOWTO に私宛に送られる全ての情
     報を組み入れるべく、彼の最善を尽くしています。彼の努力に感謝すると
     共に、私達のこの状況を皆さんに理解して頂きたいと思います。

  8.4.  参考文献

  o  Ken Eves によるオリジナルの IP マスカレード FAQ

  o  Indyramp Consulting の、 IP マスカレードメーリングリストアーカイヴ

  o  Ambrose Au の IP Masquerade WWW サイト

  o  X/OS の Ipfwadm ページ

  o  その他ネットワークに関係する Linux HOWTO 群

  o  David Ranch の TrinityOS にて網羅されている幾つかの話題

  8.5.  変更点

  o  宿題 - HOWTO -

     o  フォワーダの章にIPMASQADMのスクリプトの実例を加えること。更に、
        構文を確認すること。

     o  MASQサーバーの後ろに複数のサブネットがある場合に関する小さな章を
        加えること。

     o  IPCHAINS ルールセットを確認し、それが IPFWADM ルールセットと整合
        が取れていることを確かめること。

     宿題 - WWW ページ -

     o  PPTP の url をすべて lowrent から
        ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html
        へ更新すること。

     o  masq サイトの PPTP パッチを更新すること。

     o  portfw FTP パッチを更新すること。

     1.90 から 1.95 までの変更 - 11/11/00
     o  MASQ された複数のイーサネットセグメントの中で一つの NIC を稼働さ
        せることは好ましくないことに関する短い注意書きと、信頼できる FAQ
        へリンクを張りました。この HOWTO をより明確にしてくれた Daniel
        Chudnov に感謝します。

     o  MASQ が NAT やプロキシのサービスとはどう違うのかを探しているユー
        ザのために、 FAQ の章に導入部の章の中へのポインタを加えました。

     o  2.2.x, 2.4.x, 2.0.x カーネルの、各々の章の必要条件を更新しまし
        た。

     o  3章で、カーネルが既に MASQ をサポートしているか否かを検証する方
        法を拡張しました。

     o  (2.2.x 及び 2.0.x) の、単純な MASQ ルールセットの例の順番を反転
        させました。

     o  2.0.x と 2.2.x の rc.firewall ファイルにある幾つかの書式の問題を
        片付けました。

     o  2.2.x の rc.firewall に関し、幾つかのディストリビューション
        (Debian, TurboLinux, 等)において、デフラグオプションがなくなって
        いることに関する注意書きを加えました。

     o  Pump の使い方を含む rc.firewall スクリプトに 3番目の注意書きを追
        加しました。 Ross Johnson に感謝します。

     o  2.2.x 及び 2.2.x カーネルの両方で、単純な MASQ ルールセットの例
        を片付けました。

     o  いくつかの内部ネットワークのトラフィック MASQ に関係する問題を回
        避するために、外部インターフェース名(IPCHAINSは -i です; IPFWADM
        は -W です。)を含むために、単純でより強い IPCHAINS 及び IPFWADM
        のルールセットを更新しました。

     o  試験コマンドが本来の出力になるような、完全な実例を追加した試験ス
        テップを伴って、5章(試験)を大幅に拡張しました。

     o  H.323 アプリケーションを未サポートからサポート済みへ移動しまし
        た。:)

     o  複数の LAN の章の例 (2.2.x、その後 2.0.x) を再び整理しました。

     o  複数の LAN の例に説明を幾つか追加しました。

        ネットワークの例で、複数の NIC によるマスカレーディングにおい
        て、ネットワークの指定が逆になっていたという重大な誤植を修正しま
        した。 Matt Goheen に感謝します。

     o  PORTFW の章の中の MFW に関し、簡単な紹介を追加しました。

     o  PORTFW のための 2.0.x と 2.2.x の章の順番を逆にしました。

     o  2.2.x カーネルの FTP トラフィックのポートフォワーディングに関
        し、最新情報を更新しました。

        ________________________________________________________________
          注 - 現時点で、 2.2.x カーネルにおけるポートフォワーディング FTP 接続の
               IP_MASQ_FTP モジュールはベータレベルです。
               これはアンロードする必要なく、動作中に FTP ポートのポートフォワー
               ディングを追加する機能がサポートされています。
               よって、 IP_MASQ_FTP モジュールをリロードすると既存の FTP 接続は
               全て破壊されます。

        ________________________________________________________________

     o  FTP のポートフォワーディング (PORTFW) のサポートに関し、トップレ
        ベルの注釈を加えました。

     o  カーネル 2.0.x の ポートフォワーディングされた FTP の例で、何故
        ユーザはポート20番をポートフォワーディングする必要がないのかとい
        うことに関する注意書きを追加しました。

     o  ポートフォワーディングの章に、ユーザは、例えば SuSe から入手でき
        るような、ポートフォワーディングされた FTP のような機能をサポー
        トするための FTP プロキシアプリケーションが使えることに関する言
        及を追加し、更新しました。 Stephen Graham に感謝します。

     o  複数の内部 FTP サーバに接続するために複数のポートを使用するユー
        ザが ip_masq_ftp モジュールをロードする方法の為の必要な設定を含
        む、FTP のポートフォワーディングを有効にする方法の例を更新しまし
        た。これに関して思い出させてくれた Bob Britton に感謝します。

     o  rc.firewall ファイルに ^M が紛れ込んだユーザの為の FAQ 項目を追
        加しました。

     o  幾つかの有益な URL を含む、 MASQ と NAT やプロキシとの相違点に関
        する FAQ 項目を拡張しました。

     o  MASQ MTU 問題の説明を更新し、問題の主要な2つの説明について記述し
        ました。

     o  いくつかの ISP は 1460 MTU のセッティングを要求しますが、 PPPoE
        は 1490 の MTU を単に要求するべきですので、 RFC に従ってこれを明
        確にしました。このため、私は 1490 の MTU を示すために例を更新し
        ました。

     o  Win95 と Win98 は異なる設定 (DWORD 対 STRING) を使用するので、
        Windows 9x の章を破棄しました。これと共にこの章をより明確にする
        為に更新し、レジストリのバックアップ方法が更新されました。

     o  NT 4.0 のレジストリエントリが後ろにあった (Tcpip/パラメータ 対パ
        ラメータ/Tcpip) 誤植を修正しました。

     o  WinNT エントリは DWORD であり STRING ではない問題を修正しまし
        た。

     o  様々な PPPoE 及び様々な Windows レジストリエントリの修正に関し、
        Geoff Mottram に深く感謝します。

     o  IRC FAQエントリーに Oident の URL を追加しました。

     o  幾つかの壊れた "netstat" のバージョンに関する FAQ の章を更新しま
        した。

     o  MASQ アカウンティングのアイディアとトラフィックシェーピングに関
        する新たな FAQ の章を追加しました。

     o  ポリシールーティングは何かに関する、 IPROUTE2 の FAQ 項目を拡張
        しました。

     o  2.2.x カーネルの必要条件の章に IPROUTE2 の URL を移動し、更に同
        様の URL を幾つか追加しました。

     o  残りの例と矛盾のない 192.168.0.0 ネットワークに反映させる為の、
        より強い IPCHAINS のルールセットの "intnet" 変数を修正しました。
        Ross Johnson に感謝します。

     o  複数の内部 MASQ された LAN 同士のフォワーディングの問題を質問す
        る人々の為に、新たな FAQ の章を追加しました。

     o  複数の外部 IP アドレスから単一の内部 IP アドレスへ全てのポートを
        ポートフォワーディングしたいユーザに関する、新たな FAQ の章を追
        加しました。更に、複数の IP エイリアスインターフェース上の全ての
        ポートのポートフォワーディングを試みる人に言及しました。また、
        ルーティングされない環境下で複数の IP を所持する DSL 及びケーブ
        ルモデムユーザの為の、 Bridge+Firewall HOWTO に言及しました。

     o  サポート済みリストに Mandrake 7.2 と Slackware 7.1 を追加しまし
        た。

     o  MASQ サポート済みディストリビューションに RedHat 7.0 を追加しま
        した。 Eugene Goldstein に感謝します。

     o  FAQ の章の "最大スループット" の計算の間違いを修正しました。 Joe
        White @ ip255@msn.com に感謝します。

     o  Windowx9x の MTU の変更は STRING の変更であり、 DWORD の変更では
        ない事実に基づいて修正しました。 jmoore@sober.com に感謝します。

     o  ip_defrag オプションは 2.0 及び 2.2 カーネルの両方にあることに関
        する、 rc.firewall スクリプトの注釈を更新しました。このことを明
        示してくれた pumilia@est.it に感謝します。

     1.85 から 1.90 までの変更 - 07/03/00

     o  その新しいレイアウトを反映するために、 TrinityOS の URLを更新し
        ました。

     o  IPCHAINS のルールセット内に "ip_always_defrag" と書かずに
        "ip_ip_always_defrag" と書いてしまっていた誤植を見つけました。

     o  Taro Fukunaga 氏への URL を "mailto:" を使用せずに "mail:" にし
        てしまっていました。

     o  何故 eth0 が複数回参照されるのかを理解してくれなかった人達の為
        に、 "複数の内部インターフェースをマスカレードする" 件に幾つか説
        明を加えました。

     o  より強い IPCHAINS の章の中で、もう一つの「EXTIP 変数の後のスペー
        ス」のバグを修正しました。私は、 1つを逃したと推測します。

     o  5章のテスト #7 にて、ステップ #4 に戻るようにユーザに誘導しまし
        た。それはステップ #6 であるべきでした。

     o  SuSe 5.2 及び 6.0 に付属するカーネルのバージョンを更新しました。

     o  7.2章の誤植 (or 対 of) を修正しました。

     o  マスカレードの問題を未だに抱えているユーザに、 FAQ 内に MTU の項
        目を読ませる為に、マスカレードのテストの章にアイテム #9 を追加し
        ました。
     o  5章の箇条書きを改善しました。

     o  MASQ/FORWARD テーブルを示すために IPCHAINS の構文を更新しまし
        た。以前は "ipchains -F -L" で正常に動作しましたが、現在は
        "ipchains -M -L" でしか動作しません。

     o  2.2.16 以降のカーネルにおける新たな LooseUDP の振る舞いを反映す
        るために、 LooseUDP の文書を更新しました。以前は常に有効でした
        が、現在はマスカレードされた UDP ポートスキャニングの脆弱性か
        ら、デフォルトでオフとなっています。通常の、及びやや強い
        IPCHAINS のルールセットにこのオプションを反映すべく更新しまし
        た。

     o  古いバージョンのカーネルは TCP ルート権限搾取の脆弱性があるの
        で、 2.2.x カーネルはバージョン 2.2.16 以降にすべきである旨を加
        えました。

     o  MASQ サポート済みリストに RedHat 6.2 を追加しました。

     o  Sonny Parlin の FWCONFIG へのリンクを現在の fBuilder へのものに
        更新しました。

     o  様々な例における IP アドレスを有効なものにすべく、
        111.222.333.444 を 111.222.121.212 へ更新しました。

     o  ベータ版 H.323 MASQモジュールの URL を更新しました。

     o  ようやく、 PPPoE DSL 及びケーブル・モデム・ユーザを支援するため
        に MTU FAQ の章を更新しました。基本的に ``MTU 問題'' の章は、現
        在、ユーザは恐れられた MASQ MTU 問題を解決するために、全ての内部
        マシンの MTU 設定を変更することもできることを反映しています。

     o  PORTFW の章に、外部クライアントに動作するポートフォワードされた
        接続は、内部クライアントには動作しないことの解明を追加しました。
        内部ポートフォワーディングも必要なら、 REDIR ツールの実装も同様
        に必要です。この問題は 2.4.x カーネルと Netfilter にて解決される
        ことも記しておきました。

     o  更に、何故このシナリオが適切に動作しないのか、ということに関し、
        Juanjo からの技術的な説明を PORTFW の章の最後の方に加えました。

     o  IPCHAINS の URL の全てを Paul Rusty の 新しいサイト
        http://netfilter.filewatcher.org/ipchains/ へ更新しました。

     o  Paul Rusty の メールアドレスを更新しました。

     o  FAQ の章に、接続が長い間使われていないままだと、もはやポートフォ
        ワード接続は動作しないことを追加しました。

     o  LDP の URL の全てをmetalab.unc.edu から新しいサイトである
        linuxdoc.org へ更新しました。

     o  Updated the Netfilter URLs to point to renamed HOWTOs, etc.  リ
        ネームされた HOWTO 等に合わせて Netfilter の URL を更新しまし
        た。

     o  2.4.x カーネルのサポートに関し、時期が来たら Netfilter をフルサ
        ポートし、またその後は別の HOWTO に切り離すつもりであることを記
        しました。

     o  2.4.x カーネルの必要条件の章で、 Netfiler は IPFWADM や IPCHAINS
        と比較してどのように変わったかを反映させ、利点/欠点の一覧に新機
        能と旧来の動作への変更を加えました。

     o  "私のマスカレード接続が遅い" という FAQ 項目に、ユーザがパフォー
        マンスを賢明に見込む際の良い説明の為に、 TCP/IP の数値の例を追加
        しました。

     o  "pump" DHCP クライアントの新しいバージョンは、起動 (bringup) 、
        【訳注: IP アドレスの】リース更新等のスクリプト上で動作できるこ
        とを反映すべく、 HOWTO を更新しました。

     o  何人かのユーザが ip_masq_ftp モジュールを使わずに内部マシンへの
        FTP トラフィックの転送に成功したと言っていることを反映させるべ
        く、 FTP ポートフォワーディングの項目を更新しました。私は、ユー
        ザは先ず修正されたモジュール無しで試みてから、次に要求されれば
        パッチを適用するべきであると、 HOWTO に反映させました。

     1.82 から 1.85 までの変更 - 05/29/00

     o  David Ranch が 1年以上 HOWTO の主要なメンテナであると共に、
        Ambrose Au の名前がタイトルページから削除されました。しかしなが
        ら、 Ambrose は WWW サイト上で未だ含まれるでしょう。

     o  6.4 章の誤って混入したスペースを削除しました。

     o  マスカレード互換 OS の章を再構成し、 OS/400 システムが稼働する
        AS/400 の設定方法を追加しました。 jaco@libero.it に感謝します。

     o  HTTP アクセスが失敗する場合の、 FTP アクセス用の付加的な FTP
        ポートフォワーディングパッチの URL を追加しました。

     o  FAQ 中の Redhat 5.1 及び 6.1 のカーネルバージョンを更新しまし
        た。

     o  マスカレード可能な Linux ディストリビューションの一覧に FloppyFW
        を追加しました。

     o  より強い IPFWADM のルールセット中の "ppp_ip" と "=" の間にスペー
        スがあった場合の問題を修正しました。

     o  2.2.x カーネルのコンパイルの章で、 "CONFIG_IP_ALWAYS_DEFRAG" ス
        イッチをオンする参照を削除しました。このオプションはコンパイルの
        章から削除され、2.2.12 カーネルにおいてマスカレードをオンする際
        のデフォルトになりました。

     o  カーネルの動作の変化によって、 rc.firewall の全ての例に
        ip_always_defrag を可能にすることを追加しました。

     o  H.323 のサポート状況を更新しました。現在、 2.0.x 及び 2.2.x カー
        ネルの両方で、 H.323 をサポートするアルファ版バージョンのモ
        ジュールがあります。

     o  マスカレードをサポートするディストリビューションの一覧に Debian
        v2.2 を追加しました。

     o  長い間存在していた、IPCHAINS 用の明示的 IP アドレスフィルタリン
        グの章に古い IPFWADM の文法が残っていた問題を修正しました。更に
        この章を少し整理し、もう少し理解しやすくしました。

     o  くぅ! 重要な MASQ の情報源の章に Juan Ciarlante の URL を追加し
        ました。そう.. 君達はこの文書よりもっと私に正直になる必要がある
        んだよ!!

     o  カーネル 2.0.38 及び 2.2.15 を反映すべく HOWTO を更新しました。

     o  2.0.x カーネルがかなり古くなっていることに鑑み、カーネルコンパイ
        ルの開示の順番を 2.2.x カーネルを先にして、逆順にしました。

     o  最新の 2.2.x カーネルの変更されたオプションを反映すべく、 2.2.x
        カーネルのコンパイルの章を更新しました。

     o  過去のマスカレードテストの #5 に失敗する人の為に可能な解決方法を
        追加しました。

     1.81 から 1.82 までの変更 - 01/22/00

     o  6.5 章のより強い IPCHAINS のルールセットの中の、
        /proc/sys/net/ipv4/ip_dynaddr に関する記載忘れを追加しました。

     o  IP マスカレードサポートの項目で、 Debian 2.1 を YES に変更しまし
        た。

     o  FAQ の章の"マスカレードが遅い"項目に、固定イーサネット速度及び複
        合問題を含めるべく再構成し、更新しました。

     o  Donald Becker のイーサネット NIC カード用 MII ユーティリティのリ
        ンクを追加しました。

     o  2.2.x カーネルの章(以前はカーネルバージョン 2.0.x の部分だけ修正
        していました)に、 ICQ ポートフォワーディングスクリプトの ")" の
        記載忘れを追加しました。また、 -lt から -le までの評価を変更しま
        した。

     o  マスカレードサポート済一覧に Caldera eServer v2.3 を追加しまし
        た。

     o  マスカレードサポート済一覧に Mandrake 6.0, 6.1, 7.0 を追加しまし
        た。

     o  マスカレードサポート済一覧に Slackware v7.0 を追加しました。

     o  マスカレードサポート済一覧に Redhat 6.1 を追加しました。

     o  マスカレードサポート済一覧に TurboLinux 4.0 Lite を追加しまし
        た。

     o  マスカレードサポート済一覧に SuSe 6.3 を追加しました。

     o  安定版 2.2.x カーネルは 2.2.11 より新しいものを薦めるべく更新し
        ました。

     o  3.3章において、各々のリブート上でどのように
        /etc/rc.d/rc.firewall を読み込むのかをユーザに伝える方法
        を、HOWTO に記載することを忘れていました。これは現在 Redhat (及
        びその派生するディストリビューション) 及び Slackware をカバーし
        ました。

     o  Windows WFWG v3.x 及び NT の設定の章に、何故ユーザは DHCP, WINS
        及びフォワーディングのオプションを設定すべきでないかの明確な説明
        を追加しました。

     o  FAQ の章に、マスカレードされたマシンにおける FTP の問題の解決方
        法を追加しました。

     o  Fixed a typo in the Stronger firewall rulesets.  The "extip"
        variabl cannot have the SPACE between the variable name and the
        "=" sign.  Thanks to johnh@mdscomp.com for the sharp eye.  より
        強いファイアウォールのルールセットの誤植を修正しました。 "extip"
        変数は変数名と"="の間にスペースを挟むことは許されません。
        johnh@mdscomp.com の鋭い目に感謝します。

     o  互換性の章を更新しました - Mandrake 7.0 はカーネル 2.2.14 ベース
        で、 TurboLinux v6.0 はカーネル 2.2.12 が動作します。

     1.80 から 1.81 までの変更 - 01/09/00

     o  新しい ICQ マスカレードモジュールがファイル転送とリアルタイム
        チャットをサポートすることを反映すべく、 ICQ の章を更新しまし
        た。カーネル 2.0.x のモジュールはまだこれらの制限があります。

     o  Steven E. Grevemeyer のメールアドレスを更新しました。彼は IP マ
        スカレードアプリケーションページのメンテナです。

     o  "setsockopt" エラー用でない作業が抜けていたので、数行程修正しま
        した。

     o  変数名に "extip" を使わずに "ppp_ip" を使用していた、より強い
        IPCHAINS のルールセットのエラーを更新しました。

     o  DHCP のコメントの章の 3.3.1 章で、 "." 対 "?" の誤植を修正しまし
        た。

     o  ICQ ポートフォワーディングスクリプトの ")" の記載忘れを追加しま
        した。また、 -lt から -le までの評価を変更しました。

     o  Quake モジュールの文法は "ports=" を使用しないことを更新しまし
        た。

     1.79 から 1.80 までの変更 - 12/26/99

     o  "ppp_ip" アドレスの設定で、スペースの誤植を修正しました。

     o  単純な IPCHAINS のルールセットの誤植を修正しました。 "deny" を
        "DENY" にです。

     o  Bjorn の Linux 用 "modutils" の URL を更新しました。

     o  NetFilter と IPTables に関する verbage を加え、この HOWTO 或は違
        う HOWTO に追加されるまでの間、 URL を記しておきました。

     o  古い Quake モジュールのバグをユーザに通知するために、単純な
        /etc/rc.d/rc.firewall の例を更新しました。

     o  動的 IP アドレス(PPP 及び DHCP)、より新しい DHCPCD の文法、古い
        Quake モジュールのバグに関してユーザに明示するために、 IPFWADM
        を使用した強い /etc/rc.d/rc.firewall の例を更新しました。

     o  動的 IP アドレス(PPP 及び DHCP)と、古い Quake モジュールのバグに
        関する章の書き忘れを*追加*するために、 IPCHAINS を使用した強い
        /etc/rc.d/rc.firewall の例を更新しました。

     o  "アプリケーションが動作しない"の章に、カーネル 2.0.x の (H.323
        ベースの) Microsoft NetMeeting v2.x のベータ版モジュールの注記を
        追加しました。 NetMeeting 3.x 及び/又は カーネル 2.2.x で動作す
        るバージョンはまだありません。

     1.78 から 1.79 までの変更 - 10/21/99

     o  この HOWTO の名前を更新しました。もはやこの HOWTO は MINI ではあ
        りません!

     1.77 から 1.78 までの変更 - 8/24/99

     o  Fixed a typeo in "Section 6.6 - Multiple Internal Networks"
        where the -a policy was ommited.  "6.6章 - 複数の内部ネットワー
        ク" で、 -a ポリシーが省略された誤植を修正しました。

     o  2.2.x カーネルの設定オプションの "ソース経路制御されたフレームを
        捨てる" を削除しました。これは現在デフォルトで有効になっており、
        カーネルコンパイル時のオプションとして取り除かれたからです。

     o  IPCHAINS のフラグメンテーションのバグをユーザに通知するべく、
        カーネル 2.2.x 及び全ての IPCHAINS の章を更新しました。

     o  Lee Nevo の古い IP マスカレードアプリケーションのページを指して
        いた全ての URL を Seg の新しいページへ更新しました。

     1.76 から 1.77 までの変更 - 7/26/99

     o  ポートフォワーディングの章で、 "ipmasqadm ipportfw -f" でなく
        "ipmasqadm ipportfw -C" としていた誤植を修正しました。

     1.75 から 1.76 までの変更 - 7/19/99

     o  フォワーダの章にてユーザが回答を探すことなくより明確にするため
        に、 FAQ 内の "ipfwadm: setsockopt failed: Protocol not
        available" 【訳注: "ipfwadm: setsockopt は失敗しました: プロトコ
        ルは利用できません"】 を更新しました。

     o  6.7章の IPMASQADM と "portfw" の間違った文法を修正しました。

     1.72 から 1.75 までの変更 - 6/19/99

     o  弱い IPFWADM 及び IPCHAINS のルールセットと強い IPFWADM のルール
        セットを同様に、 quake モジュールのポート設定の要求を修正しまし
        た。

     o  ICQ のポート4000番を直接ポートフォワーディングし、"非Sock"プロキ
        シの設定を用いることなく ICQ のデフォルト設定を使用するユーザレ
        ポートを追加しました。

     o  IPMASQADM ツールの URL を更新しました。

     o  Taro Fukunaga tarozax@earthlink.net への参照を追加しました。彼は
        HOWTO の MkLinux への移植を行っています。

     o  新しい IPCHAINS をサポートする Sonny Parlin の FWCONFIG ツールの
        宣伝を更新しました。

     o  Fred Vile のパッチによる FTP ポートフォワーディングアクセスは
        2.0.x カーネルで*のみ*有効であることを追記しました。

     o  2.2.x カーネルのステップで、実験段階のタグに関する僅かな説明を更
        新しました。

     o  協力者一覧に LooseUDP パッチの作者 Glen Lamb の名前を追加しまし
        た。

     o  LooseUDP パッチのインストールに関し、非圧縮パッチは "cat" を使用
        すべきである説明を追加しました。

     o  IPAUTO FAQ の章の誤植を修正しました。

     o  私は IPFWADM と IPCHAINS のルールセットのために DHCP クライアン
        トのポート番号を逆にしました。私が行った要求は、あなたの Linux
        サーバが DHCP サーバであったかどうかでした。

     o  全ての弱いルールセット、及び強いルールセットの例に明示的に /sbin
        への PATH を追加しました。

     o  PPP 及び DHCP ユーザの為に、強い IPFWADM の章に動的 IP アドレス
        に関する幾つかの解明を行いました。私はまた、強いルールセットは
        PPP が起動されたり DHCP の IP アドレスのリースが更新された時に再
        起動されるべきであることを追記しました。

     o  カーネル 2.2.x の必要条件の中に参照を加えて、ICQ の FAQ の章を更
        新し、ICQ MASQ モジュールの作者の Andrew Deryabin を協力者一覧の
        章に追加しました。

     o  FAQ の章に何故 2.1.x 及び 2.2.x カーネルで IPCHAINS に移行したの
        かに関し、幾つかの説明を追加しました。

     o  マスカレードサーバを通過する Microsoft のファイル/印刷/ドメイン
        サービス (Samba) に関する小さな FAQ の章を追加しました。これと同
        時に、より詳細な内容の為に Microsoft 知識ベース文書 (Knowledge
        base document) の URL を追加しました。

     o  FAQ の章に Debian ディストリビューションは IP マスカレードをサ
        ポートしていない説明を追加しました。

     o  FAQ の章のマスカレードサポート済みディストリビューションを更新し
        ました。

     o  FAQ のエイリアス NIC の章に、インターフェースのエイリアスはマス
        カレード*できない*旨を追加しました。【訳注: 「インターフェースの
        エイリアス」は、カーネルの設定にある "IP: Aliasing"を指していま
        す。一つのインターフェースに複数の IP アドレスを割り振る機能で
        す。】

     o  うわっ.. 今まで気づかなかったけど、強いルールセットの章の "ppp-
        ip" という変数名は無効です!  "ppp_ip" にリネームしました。

     o  IPFWADM 及び IPCHAINS の両方の単純なルールセットの設定領域で、
        DHCP トラフィックを許可する箇所をコメントアウトしました。問題
        は、最後の reject 行でした!  チクショウ!  これら両方を章の上へ移
        動させました。

     o  単純な IPCHAINS の設定で、 DHCP ユーザの為のコメントアウト行で、
        IPCHAINS の "-i" パラメータでなく、 IPFWADM の "-W" コマンドを使
        用していました。

     o  フォワーダの章に、有名な "ipfwadm: setsockopt failed: Protocol
        not available" 【訳注: "ipfwadm: setsockopt は失敗しました: プロ
        トコルは利用できません"】 エラーメッセージの解決の小さな宣伝を追
        加しました。これは更に、もしカーネルの IPPORTFW が有効な場合に、
        人々に確認させる小さな /proc テストを含んでいます。また、単純な
        検索の為に FAQ の章にこのエラーを追加しました。

     o  この HOWTO に強い IPCHAINS のルールセットを追加しました。

     o  FAQ の章に "kernel: ip_masq_new(proto=UDP): no free ports."【訳
        注: "kernel: ip_masq_new(prot=UDP): 空きポートがありません。"】
        エラーメッセージの説明を追加しました。

     o  IPMASQADM PORTFW ルールのスクリプトの例を追加しました。

     o  Linux Documentation Project (LDP) の URL の幾つかを更新しまし
        た。

     o  全ての rc.firewall ルールセットのモジュール読み込みの章に、
        Quake III サポートを追加しました。

     o  ICQのための IPMASQADM フォワーディングを修正しました。

  o  1.72 - 4/14/99 - Dranch - Windows の NAT/プロキシの代替手段を、価格
     の概略と URL と共に、大規模なリストに追加しました。

  o  1.71 - 4/13/99 - Dranch - 複数のマスカレードされた内部ネットワーク
     の為の IPCHAINS の設定を追加しました。 ICQ の設定で、 ICQ のデフォ
     ルトの60秒タイムアウトと IPFWADM/IPCHAINS の160秒タイムアウトを変更
     しました。 MASQ 及び MASQ-DEV メーリングリストとその登録の手順を更
     新しました。

  o  1.70 - 3/30/99 - Dranch - SMTP/POP-3 のタイムアウト問題と、複数の内
     部ネットワークを IPROUTE2 を用いて異なる外部 IP アドレスへマスカ
     レードする方法を FAQ の章に追加しました。

  o  1.65 - 3/29/99 - Dranch - 誤植を修正しました。 2.2.x カーネルオプ
     ションの必要項目を解明しました。動的 PPP IP アドレスのサポートを強
     いファイアウォールの章に追加しました。 quake II モジュールの移植を
     追加しました。 LooseUDP パッチは最新の 2.2.x カーネルに組み込まれ、
     Dan Kegel ではなく Glenn Lamb の作であることを明記しました。互換性
     の章により多くのゲームの情報を追加しました。

  o  1.62 - Dranch - 最後の第1ドラフト段階の変更を文書に行い、 MASQ メー
     リングリストに告知しました。

  o  1.61 - Dranch - 編集の変更を加えて、体裁を整え、、Windows95 と NT
     の設定におけるいくつかのエラーを修正しました。

  o  1.58 - Dranch - ポートフォワーディングの章の追加; LooseUDP の設定;
     IRC ユーザ の為の Ident サーバ、ファイアウォールのログの読み方、滅
     多に使われない CuSeeme Mini-HOWTO の削除。

  o  1.55 - Dranch - 完全なオーバーホール、特徴と FAQ の追加、 v1.50
     HOWTO の全般的な編集。 2.2.x カーネルと IPCHAINS の設定を完成しまし
     た。適用例の為に IPAUTOFW から IPPORTFW への変換を行いました。諸々
     の他の文書やユーティリティのサイトへの多くの URL を追加しました。と
     ても多くの変更があります.. みんなが好んでくれることを望みます。文書
     が IP MASQ メーリングリストによって調べられ、承認されるまでは、こ
     のHOWTO の新版の LDP プロジェクトによる最終発行は行われません(その
     後 v2.00 になります)。

  o  1.50 - Ambrose - HOWTO の重大な更新と、 2.2.0 カーネルと IPCHAINS
     の設定の初期段階の追加。

  o  1.20 - Ambrose - 2.0.x カーネル以前と IPFWADM にて単独で扱われた、
     より新しい HOWTO のうちの一つ。

  9.  日本語訳について

  日本語訳 初版: 2001年 7月12日 JF Project 「チーム Masquerade」 翻訳者
  一覧(敬称略、50音順):

  o  後藤雅晴 <magotou@fubyshare.gr.jp> 6章

  o  松田陽一 <matsuda@palnet.or.jp> 2,3,8章

  o  山口しんご <shingo@axs2.com> 1,5,7章

  o  四亭 <isao@m05.htmnet.ne.jp> 4章

  この文書を翻訳するにあたり、水原文さん <mizuhara@acm.org> の Linux IP
  Masquerade mini HOWTO 日本語訳 <http://www.linux.or.jp/JF/JFdocs/IP-
  Masquerade.html> から多くを引用致しました。

  この文書を翻訳するにあたり、以下の方々からアドバイスをいただきまし
  た。(50音順)
  本当にありがとうございました。

  o  岡本一幸さん <kokamoto@itg.hitachi.co.jp>

  o  かねこせいじさん <se-kane@str.hitachi.co.jp>

  o  konkitiさん <konkiti@lares.dti.ne.jp>

  o  千旦裕司さん <ysenda@pop01.odn.ne.jp>

  o  武井伸光さん <takei@webmasters.gr.jp>

  o  野本浩一さん <hng@ps.ksky.ne.jp>

  o  早川仁さん <uv9h-hykw@asahi-net.or.jp>

  o  水原文さん <mizuhara@acm.org>

  o  森本淳さん <morimoto@xantia.citroen.org>

