次のページ 前のページ 目次へ

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

プライベートネットワーク上に重要な情報がある場合には、IP マスカレードを 使う前に慎重に検討してください。IP マスカレードはあなたがインターネットへ 出てゆくゲートウェイともなりますが、逆に外側の世界にいる誰かがあなたの ネットワークに侵入するゲートウェイともなるのです。

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

お使いの Linux ディストリビューションが、下記の必要な機能とモジュールを 組み込んでコンパイルされている (大部分のモジュラーカーネルには必要なものは すべて含まれています) ならば、カーネルの再コンパイルは 必要ありません。その場合でも、このセクションには役立つ情報が含まれて いますので、ぜひお読みになることをお勧めします。

Linux カーネル 2.2.x

Linux カーネル 2.0.x

3.2 プライベートネットワーク IP アドレスの割当

クライアントマシンには公式にはアドレスが割り当てられていないわけですから、 これらのマシンに適切な方法でアドレスを割り当てなければなりません。

IP マスカレード FAQ からの引用:

外部に接続されていないネットワークでどのような IP アドレスを使うべきかに ついて、RFC (#1597、今はもう古くなっているかもしれません) が 発行されています。
訳注: 現在は RFC1918 が最新です。
この目的のために、3つのブロックが予約されています。 私が使っているのは、この中の 192.168.1.n から 192.168.255.n までの255個の クラス C サブネットです。

RFC 1597 からの引用:

Section 3: プライベートアドレス空間

Internet Assigned Numbers Authority (IANA) は、IP アドレス空間のうち
以下の3つのブロックをプライベートネットワーク用に予約しています。

              10.0.0.0        -   10.255.255.255
              172.16.0.0      -   172.31.255.255
              192.168.0.0     -   192.168.255.255

最初のブロックは「24ビットブロック」、2番目のブロックは「20ビット
ブロック」、3番目のブロックは「16ビット」ブロックと呼ばれます。
最初のブロックは単一のクラス A ネットワーク番号以外のなにものでもなく、
2番目のブロックは連続する16個のクラス B ネットワーク番号の集合であり、
3番目のブロックは連続する255個のクラス C ネットワーク番号の集合であることに
注意してください。
従って、クラス C ネットワークを使っている場合、マシンのアドレスは 192.168.1.1、192.168.1.2、192.168.1.3、…、192.168.1.x と割り当てる ことになります。

192.168.1.1 は通常ゲートウェイマシン、つまりインターネットに接続された Linux ホストとなります。 192.168.1.0 と 192.168.1.255 はネットワークアドレスとブロードキャストアドレス として予約されています。これらのアドレスをマシンに割り当てることは避けて ください。

3.3 クライアントマシンの設定

適切な IP アドレスを設定したら、次は適切なゲートウェイを設定しなければ なりません。普通はそう難しいことではありません。Linux ホストのアドレス (普通は 192.168.1.1)をゲートウェイとして入力すればいいのです。

DNS には任意のサーバーを指定することができますが、 Linux マシンと同じサーバーを指定するのが分かりやすいでしょう。 また、ドメインサーチサフィックスを追加することもできます。
訳注: Linux マシンが 0.0.0.0 または 127.0.0.1 (どちらも自分自身を 示すアドレスです) を DNS サーバーとして指定している場合、これをこのまま クライアントマシンに指定してはいけません! この場合には、Linux マシンの IP アドレス(この例では 192.168.1.1)を指定 します。

IP アドレスを設定し直した後、適当なサービスを再起動するか、リブートする ことを忘れないでください。

以下の設定方法は、クラス C ネットワークを使い、Linux ホストのアドレスが 192.168.1.1 であると仮定しています。192.168.1.0 と 192.168.1.255 は予約 されていることに注意してください。

Windows 95 の設定

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. 「コントロールパネル」/「ネットワーク」を開く。
  3. 「TCP/IP」 がない場合には、追加する。
  4. 「TCP/IP のプロパティ」 の中で「IP アドレス」を開き、 IP アドレスを 192.168.1.x (1 < x < 255) に設定する。 サブネットマスクを 255.255.255.0 に設定する。
  5. 「ゲートウェイ」 の項目に、192.168.1.1 を指定する。
  6. 「DNS 設定」/「DNS サーバーの検索順」 に、Linux ホストが 使っている DNS サーバーを追加する(通常 /etc/resolv.conf にあり ます)。必要に応じて「ドメインサフィックスの検索順」を追加する。
  7. その他の項目は、特に必要がない限り変更しないこと。
  8. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  9. Linux マシンに ping し、ネットワーク接続をテストする。 「ファイル名を指定して実行」 を選択し、ping 192.168.1.1 と 入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)
  10. 必要に応じて HOSTS ファイルを windows ディレクトリに作成すれば、 LAN 上のマシンをホスト名で参照できるようになります。 windows ディレクトリには、HOSTS.SAM という名前のサンプルファイルが あります。

Windows for Workgroup 3.11 の設定

訳注: 日本語版の Windows for Workgroup 3.11 は、発売されていません。

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. TCP/IP 32b パッケージをインストールしていない場合には、インストールする。
  3. 「Main」/「Windows Setup」/「Network Setup」で、 「Drivers」をクリックする。
  4. 「Network Drivers」セクションで、 「Microsoft TCP/IP-32 3.11b」を選択し、「Setup」を クリックする。
  5. IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを 192.168.1.1 に設定する。
  6. 「Automatic DHCP Configuration」をイネーブルしないこと。 また、Windows NT のドメインに参加していて特に必要のある場合以外には、 「WINS Server」には何も入力しないこと。
  7. 「DNS」 をクリックし、「Windows 95 の設定」のステップ6で 説明したように情報を入力する。設定し終ったら 「OK」 をクリックする。
  8. 「Advanced」 をクリックし、 「Enable DNS for Windows Name Resolution」 をチェックする。 「Windows 95 の設定」のステップ10で説明したようにホストファイルを 参照したければ、「Enable LMHOSTS lookup」 をチェックする。
  9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  10. Linux マシンに ping し、ネットワーク接続をテストする。 「Start/Run」 を選択し、 ping 192.168.1.1 と入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

Windows NT の設定

  1. ネットワークカードやドライバをインストールしていない場合には、 インストールする。
  2. 「メイン」/「コントロールパネル」/「ネットワーク」 を開く。
  3. TCP/IP サービスをインストールしていない場合には、 「ソフトウェアの追加」 メニューを使って TCP/IP プロトコルと関連するコンポーネントを追加する。
  4. 「ネットワークソフトウェアとアダプターカード」「組み込まれているネットワークソフトウェア」セレクションボックス中の 「TCP/IP プロトコル」 を選択する。
  5. 「構成」ボタンをクリックし、「TCP/IP の構成」 ウィンドウで、適切なアダプタを選択する。 例えば、[1]Novell NE2000 Adapter。 IP アドレスを 192.168.1.x (1 < x < 255) に、サブネットマスクを 255.255.255.0 に、デフォルトゲートウェイを 192.168.1.1 に設定する。
  6. 「DHCP 自動構成を有効にする」をイネーブルしないこと。 また、Windows NT のドメインに参加していて、特に必要のある場合以外は、 「WINS サーバー」には何も入力しないこと。
  7. 「DNS」ボタンをクリックし、「Windows 95 の設定」のステップ6で 説明したように適切な情報を入力する。入力し終ったら、「OK」ボタンを クリックする。
  8. 「詳細」ボタンをクリックし、「Windows 名前解決に DNS を 使用する」をクリックする。「Windows 95 の設定」のステップ10で説明した ようにホストファイルを参照したければ、「LMHOSTS の参照を行なう」を クリックする。
  9. すべてのダイアログボックスの 「OK」 ボタンをクリックし、 システムを再起動する。
  10. Linux マシンに ping し、ネットワーク接続をテストする。 「ファイル/ファイル名を指定して実行」 を選択し、 ping 192.168.1.1 と入力する。
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

UNIX ベースのシステムの設定

  1. ネットワークカードをインストールしていなかったり、適切なアダプタ ドライバを組み込んでカーネルをリコンパイルしていない場合には、それを 行なう。
  2. nettools パッケージのような TCP/IP ネットワーキングをインストール していない場合には、インストールする。
  3. IPADDR を 192.168.1.x (1 < x < 255) に、NETMASK を 255.255.255.0 に、GATEWAY を 192.168.1.1 に、BROADCAST を 192.168.1.255 に設定する。
    例えば Red Hat Linux システムの場合には、 /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集するか、 コントロールパネルを使って上の設定を行ないます。
    (SunOS や BSDi、Slackware Linux などでは別の設定方法があります…)
  4. /etc/resolv.conf に DNS サーバーと ドメインサーチサフィックスを追加する。
  5. You may want to update your /etc/networks file depending on your settings.
  6. 適切なサービスを再起動するか、システムを再起動する。
  7. ping コマンドを発行し、ゲートウェイマシンへの接続をテストする。 ping 192.168.1.1
    (これは LAN の接続をテストしているだけです。 まだ外の世界に ping することはできません。)

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

  1. ネットワークカードをインストールしていない場合には、インストールする。
  2. 適切なパケットドライバをロードする。 IRQ が 10、ハードウェアアドレスが 0x300 に設定されている NE2000 カードの 場合、nwpd 0x60 10 0x300 を実行する。
  3. 新しいディレクトリを作成し、 次のコマンドを実行して NCSA telnet パッケージを展開する。 pkunzip tel2308b.zip
  4. テキストエディタで config.tel ファイルをオープンする。
  5. myip=192.168.1.x (1 < x < 255)、netmask=255.255.255.0 と 設定する。
  6. この例では、hardware=packet, interrupt=10, ioaddr=60 と 設定する。
  7. 少なくとも一台のマシンをゲートウェイとして設定する必要があります。 これはつまり Linux ホストのことです。
    name=default
    host=yourlinuxhostname
    hostip=192.168.1.1
    gateway=1
    
  8. DNS の設定をする。
    name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
    
    原注: Linux ホストが使用している DNS 情報で置き換えてください。
  9. config.tel ファイルをセーブする。
  10. Linux マシンに telnet して、ネットワーク接続をテストする。 telnet 192.168.1.1

MacTCP の動作している MacOS ベースのシステム

  1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインストール していない場合には、今すぐインストールしましょう。
  2. MacTCP コントロールパネルを開く。適当なネットワークドライバ (EtherTalk ではなく Ethernet) を選択し、「More...」ボタンを クリックする。
  3. 「アドレスの取得:」で、「手入力」をクリックする。
  4. 「IP アドレス:」で、ポップアップメニューからClass C を 選択する。ダイアログボックス中のこのセクションの残りは無視する。
  5. 「ドメインネームサーバ:」に、適当な情報を入力する。
  6. 「ゲートウェイアドレス:」に、192.168.1.1 を入力する。
  7. 「OK」をクリックし、設定を保存する。 MacTCP コントロールパネルのメインウィンドウで、「IP アドレス:」 ボックスに Mac の IP アドレス (192.168.1.x、1 < x < 255) を入力する。
  8. MacTCP コントロールパネルを閉じる。再起動を促すダイアログボックスが 現れた場合、システムを再起動する。
  9. Linux マシンに ping して、ネットワーク接続をテストすることができます。 フリーウェアプログラム MacTCP Watcher をお使いの場合、 「Ping」ボタンをクリックし、Linux マシンのアドレス (192.168.1.1) をポップアップダイアログボックスに入力します (これは LAN の接続をテストしているだけなので、 まだ外の世界に ping することはできません)。
  10. HOSTS ファイルをシステムフォルダに作成すれば、 LAN 上のマシンをホスト名で参照できるようになります。 このファイルはすでにシステムフォルダに存在し、必要に応じて変更できるように いくつかのコメントアウトされたサンプルエントリを含んでいます。

Open Transport の動作している MacOS ベースのシステムの設定

  1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインストール していない場合には、今すぐインストールしましょう。
  2. TCPIP コントロールパネル/を開き、「利用者モード...」編集 メニューから開く。利用者モードが少なくとも「詳しい情報も指定」に設定されていることを確認し、「OK」 ボタンをクリックする。
  3. 「ファイル」 メニューから、「設定...」を選択する。 「省略時設定」 設定を選択し、「複製...」ボタンを クリックする。「設定の複製」ダイアログにはおそらく「省略時設定 のコピー」と表示されているが、これを「IP Masq」(あるいはこれが 特別な設定であることが分かるような名前) に書き換える。そして「OK」 ボタン、「済み」ボタンををクリックする。
  4. 「経由先:」ポップアップから「Ethernet」を 選択する。
  5. 「Configure:」ポップアップから、適当なものを選ぶ。 どのオプションを選択して良いか分からなければ、おそらく「Default」 設定を再度選んで終了するのが良いでしょう。私は「Manually」を 選びました。
  6. 「IP アドレス:」ボックスに Mac の IP アドレス (192.168.1.x、1 < x < 255) を入力する。
  7. 「サブネットマスク:」ボックスに 255.255.255.0 を入力する。
  8. 「ルータアドレス:」ボックスに 192.168.1.1 を入力する。
  9. 「ネームサーバアドレス:」ボックスにドメインネームサーバの IP アドレスを入力する。
  10. 「インプリシット・サーチ:」「自分のドメイン名」 ボックスにインターネットドメイン (例えば「microsoft.com」) を入力する。
  11. 以下の手順は必要に応じて行なってください。不正確な値を入力すると 動作が不安定になることがあります。確信が持てない場合には、おそらく何も 入力せず、チェックやセレクトもしないのが良いでしょう。必要であれば、 これらのフィールドからすべての情報を消去してください。私の知る限り、 以前に選択されていた非標準の Hosts ファイルを使用しないようにシステムに 指示して TCP/IP ダイアログを終了する方法はありません。もしその方法を ご存知の方は、ぜひ教えてください。
    ネットワークが 802.3 フレームタイプを必要とする場合、「802.3 を使用」をチェックしてください。
    訳注: この設定が必要になることは、まず絶対にありません。
  12. 「オプション」ボタンをクリックし、TCP/IP がアクティブである ことを確認します。私は「必要な時にのみロード」オプションを使用して います。マシンをリブートせず TCP/IP アプリケーションを何度も起動しては終了 するような使い方をする場合には、「必要な時にのみロード」オプションを チェックしない方が、メモリ管理への影響を防止あるいは減少することができる でしょう。このオプションをチェックしないと、TCP/IP プロトコルスタックは 常にロードされているので、いつでも使うことができます。チェックした場合には、 TCP/IP スタックは必要な時に自動的にロードされ、必要なくなるとアンロード されます。このローディングとアンローディングのプロセスが、マシンのメモリを 断片化させるのです。
  13. Linux マシンに ping して、ネットワーク接続をテストすることができます。 フリーウェアプログラム MacTCP Watcher をお使いの場合、 「Ping」ボタンをクリックし、Linux マシンのアドレス (192.168.1.1) をポップアップダイアログボックスに入力します (これは LAN の接続をテストしているだけなので、 まだ外の世界に ping することはできません)。
  14. HOSTS ファイルをシステムフォルダに作成すれば、 LAN 上のマシンをホスト名で参照できるようになります。 このファイルはすでにシステムフォルダに存在するかもしれないし、ないかも しれません。存在する場合には、必要に応じて変更できるように いくつかのコメントアウトされたサンプルエントリを含んでいます。 存在しない場合には、MacTCP が動作しているシステムからこのファイルの コピーを取得することもできますし、自分で作成することもできます (このファイルのフォーマットは、RFC952 に記述されている Unix の /etc/hosts ファイルと同じです)。このファイルを作成したら、 TCP/IP コントロールパネル を開き、「Hosts ファイルの選択...」 ボタンをクリックし、Hosts ファイルをオープンします。
  15. クローズボックスをクリックするか、ファイル メニューから 「閉じる」または「終了」を選択し、「保存」ボタンを クリックして変更内容をセーブします。
  16. 変更はただちに有効となりますが、リブートしても問題はありません。

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

  1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインストール していない場合には、今すぐインストールしましょう。
  2. から tcpip16.exe をダウンロード
  3. c:\nwclient\startnet.bat
    
    の編集: (これは私の場合です)
    SET NWLANGUAGE=ENGLISH
    LH LSL.COM
    LH KTC2000.COM
    LH IPXODI.COM
    LH tcpip
    LH VLM.EXE
    F:
    
  4. c:\nwclient\net.cfg
    
    の編集: (リンクドライバをお使いのもの、例えば NE2000 に変更してください)
    Link Driver KTC2000
            Protocol IPX 0 ETHERNET_802.3    
            Frame ETHERNET_802.3     
            Frame Ethernet_II        
            FRAME Ethernet_802.2
    
    NetWare DOS Requester
               FIRST NETWORK DRIVE = F
               USE DEFAULTS = OFF
               VLM = CONN.VLM
               VLM = IPXNCP.VLM
               VLM = TRAN.VLM
               VLM = SECURITY.VLM
               VLM = NDS.VLM
               VLM = BIND.VLM
               VLM = NWP.VLM
               VLM = FIO.VLM
               VLM = GENERAL.VLM
               VLM = REDIR.VLM
               VLM = PRINT.VLM
               VLM = NETX.VLM
    
    Link Support
            Buffers 8 1500
            MemPool 4096
    
    Protocol TCPIP
            PATH SCRIPT     C:\NET\SCRIPT
            PATH PROFILE    C:\NET\PROFILE
            PATH LWP_CFG    C:\NET\HSTACC
            PATH TCP_CFG    C:\NET\TCP
            ip_address      xxx.xxx.xxx.xxx
            ip_router       xxx.xxx.xxx.xxx
    
  5. 最終的に作成された
    c:\bin\resolv.cfg
    
    :
    SEARCH DNS HOSTS SEQUENTIAL
    NAMESERVER 207.103.0.2
    NAMESERVER 207.103.11.9
    
  6. 以上の説明が、Novel ネットワークを接続する手助けになれば幸いです。 この方法は Netware 3.1x にも 4.x にも有効です。

OS/2 Warp の設定

  1. 使用中のイーサネットアダプタに適当なドライバソフトウェアをインストール していない場合には、今すぐインストールしましょう。
  2. TCP/IP プロトコルをインストールしていない場合には、インストールします。
  3. 「プログラム」/「TCP/IP」の設定を開く。
  4. 「ネットワーク」で TCP/IP アドレスを追加し、ネットマスク (255.255.255.0) を設定する。
  5. 「ルーティング」「追加」ボタンをクリックする。 「タイプ」「デフォルト」 に設定し、Linux マシンの IP アドレスを「ルータのアドレス」フィールドに設定する (192.168.1.1)。
  6. Linux マシンと同じ DNS (ネームサーバ) アドレスを「ホスト」 に設定する。
  7. TCP/IP コントロールパネルを閉じる。その後の質問には「はい」と答える。
  8. リブートする。
  9. Linux マシンに ping し、ネットワークの設定をテストする。 「OS/2 コマンドプロンプト」で ping 192.168.1.1 と入力する。 ping パケットが受信できればすべて OK。

それ以外のシステムの設定

他のプラットフォームの設定に関しても、同じロジックが適用できるはずです。 今までのセクションを参照してください。 これらのシステムの設定について書いてみようと思う方は、 詳細な設定方法を ambrose@writeme.comdranch@trinnet.net にメールしてください。

3.4 IP フォワーディングポリシーの設定

この時点で、カーネルと必要なパッケージがインストールされ、モジュールが ロードされているはずです。また、クライアントマシンの IP アドレス、 ゲートウェイ、それに DNS 設定もすべてできているはずです。

あと残っているのは、IP ファイヤウォールツールを使って、適当なパケットを 適当なマシンに転送することだけです。

これには、いろいろなやり方があります。これから説明する方法は私にとっては うまくいきましたが、あなたはまた別の考えを持っているかもしれません。 セクション 4.4 と ipchains(2.2.x) / ipfwadm(2.0.x) マニュアルページを参照してください。

ここで提供するのは、IP マスカレードを動かすための必要最小限のルールセット だけです。セキュリティの問題は考慮されていません。ある程度の時間を費やして、 適切なファイヤウォールのルールを適用し、セキュリティを強化することを 強くお勧めします。

Linux カーネル 2.2.x

カーネル 2.2.x では、IP マスカレードのルールを設定するためのツールとして ipfwadm はもう使われていません。ipchains を使ってください。

ipchains -P forward DENY
ipchains -A forward -s yyy.yyy.yyy.yyy/x -j MASQ
ここで x はサブネットのクラスによって決まる数 (次の表を参照してください)、 また yyy.yyy.yyy.yyy はネットワークアドレスです。
netmask         | x  | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0       | 8  | Class A
255.255.0.0     | 16 | Class B
255.255.255.0   | 24 | Class C
255.255.255.255 | 32 | Point-to-point

yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx というフォーマットも使えます。 ここで xxx.xxx.xxx.xxx は、例えば 255.255.255.0 のように、 サブネットマスクを指定します。

例えば、クラス C サブネットを使っている場合には、次のように入力します。

ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ

または

ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/255.255.255.0 -j MASQ

マシンごとに設定することもできます。 例えば、192.168.1.2 と 192.168.1.8 にインターネットへのアクセスを許可し、 他のマシンには禁止したい場合には、次のように入力します。

ipchains -P forward DENY
ipchains -A forward -s 192.168.1.2/32 -j MASQ
ipchains -A forward -s 192.168.1.8/32 -j MASQ

デフォルトポリシーでマスカレードを行なわないでください。 ルーティングを操作することができる外部の人間が、あなたのゲートウェイを 使って正体を仮装 (マスカレード) し、あなたのネットワークに侵入して くるおそれがあるのです!

これらのコマンドを /etc/rc.local ファイル (または適当と思われる rc ファイル) に追加しておくのが良いでしょう。 そうでなければ、IP マスカレードが必要になるたびに実行する必要があります。

ipchains の詳しい使い方については、 Linux IPCHAINS HOWTO を参照してください。

Linux カーネル 2.0.x

ipfwadm -F -p deny 
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 

または

ipfwadm -F -p deny 
ipfwadm -F -a masquerade -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
ここで x はサブネットのクラスによって決まる数 (次の表を参照してください)、 また yyy.yyy.yyy.yyy はネットワークアドレスです。
netmask         | x  | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0       | 8  | Class A
255.255.0.0     | 16 | Class B
255.255.255.0   | 24 | Class C
255.255.255.255 | 32 | Point-to-point

yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx というフォーマットも使えます。 ここで xxx.xxx.xxx.xxx は、例えば 255.255.255.0 のように、 サブネットマスクを指定します。

例えば、クラス C サブネットを使っている場合には、次のように入力します。

ipfwadm -F -p deny 
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 

bootp クライアントは自分の IP アドレスを知らないため、bootp リクエストパケットは正しい IP ソースアドレスを持っていません。 したがって、bootp サーバがマスカレード/ファイヤウォールマシンで 動いている場合、次のコマンドが deny コマンドの前に必要です。

ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp

マシンごとに設定することもできます。 例えば、192.168.1.2 と 192.168.1.8 にインターネットへのアクセスを許可し、 他のマシンには禁止したい場合には、次のように入力します。

ipfwadm -F -p deny 
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0 
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0 

よくある間違いとして、最初のコマンドを次のように入力することがあげられます。

ipfwadm -F -p masquerade

デフォルトポリシーでマスカレードを行なわないでください。 ルーティングを操作することができる外部の人間が、あなたのゲートウェイを 使って正体を仮装 (マスカレード) し、あなたのネットワークに侵入して くるおそれがあるのです!

これらのコマンドを /etc/rc.local ファイル (または適当と思われる ファイル) に追加しておくのが良いでしょう。 そうでなければ、IP マスカレードが必要になるたびに実行する必要があります。

ipfwadm の詳しい説明は、セクション 4.4を参照してください。

3.5 IP マスカレードをテストする

設定お疲れ様でした。いよいよ試運転です。 Linux ホストとインターネットの接続に問題がないことを確認しておいてください。

クライアントマシンから「インターネット上の!!!」ウェブサイトに アクセスして、うまくつながるかどうか見てみましょう。 DNS の設定が間違っているかもしれないので、 最初はホスト名ではなく IP アドレスを使うことをおすすめします。

例えば、Linux Documentation Project サイト http://metalab.unc.edu/mdw/linux.html を、 http://152.19.254.81/mdw/linux.html としてアクセスしてみましょう。

Linux Documentation Project のホームページが見えましたね? おめでとうございます! IP マスカレードはちゃんと動いています! 次の段階としてホスト名でのアクセスや、ping、telnet、ssh、ftp、Real Audio、True Speech などなど、IP マスカレードでサポートされているクライアントを 試してみましょう。

これまでに説明した設定で、今のところ私は何のトラブルも経験していません。 この素晴らしい機能を実現してくれた人たちに感謝します。


次のページ 前のページ 目次へ