| |
次のページ
前のページ
目次へ
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 サービスとどう違うのでしょうか?
をご覧ください。
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 されたシステム上での成功例を示します -
- Unix: Sun Solaris, *BSD, Linux, Digital UNIX, 等.
- Microsoft Windows 2000, NT (3.x と 4.x), 95/98/ME, Windows for
Workgroups (TCP/IP パッケージを含む)
- IBM OS/2
- MacTCP 或は Open Transport のいずれかが稼働する Apple Macintosh MacOS マシン
- パケットドライバと NCSA Telnet パッケージを含む DOS ベースのシステム
- VAXen
- Linux と NT が稼働する Compaq/Digital Alpha
- AmiTCP 或は AS225-stack を含む Amiga コンピュータ
このリストはまだまだ続きます。要するに、 TCP/IP を喋れる OS
プラットフォームであれば、 IP マスカレードと一緒に使えるはずなのです。
- インターネットに接続された Linux ホストがあり、
- その Linux box にローカルサブネット上で TCP/IP 接続された
コンピュータがあるか、
- Linux ホストにモデムが接続されていて、他のコンピュータに接続する
PPP 或は SLIP サーバとして動作し、
- それら 他の マシンは公式或は公共に割り当てられた IP アドレスを
持たず (すなわち、プライベート TCP/IP 番号が割り当てられている)、
- そして勿論、あなたが追加の公式/公共の TCP/IP アドレスを ISP
から入手し、 Linux をルータとして設定するか或は外部ルータを購入
する為の余分なお金を使うことなく、それら 他の マシンが
インターネットに接続できるようにしたいのならば。
- インターネットに接続されているマシンがスタンドアロンの Linux
ホストの場合。 (しかしながらファイアウォールを構築するのは良い考えです)
あるいは、
- 既に 【訳注: サーバだけでなく】 クライアントマシンの為にも
公式な IP アドレスを複数割り当てている場合、IP マスカレードは必要
ありません。
- そしてもちろん、 Linux を使って 'タダ乗り' する考えが好きで
なく、全く同じことをする高価な商用ツールを使うことをより快適だと
感じる場合。
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 を持ち、その他のホストは
以下のアドレスを持っています -
- A-Box: 192.168.0.2
- B-Box: 192.168.0.3
- 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) をご覧ください -
- NAT, MASQ とプロキシサーバとの相違点
- パケットファイアウォールの動作
** 最新の情報については
IP マスカレードの情報源 を参照してください。 **
- カーネル 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 にあります。
- ロード可能なカーネルモジュール、好ましくは 2.1.121 以降。
http://www.pi.se/blox/modutils/index.html 或は
ftp://ftp.ocs.com.au/pub/modutils/ から入手可能です。
-
Linux NET-3-4 HOWTO 及び
Network Administrator's Guideで扱われているTCP/IP ネットワーク 或は LAN
TrinityOS のドキュメントも調べておいてください。
TrinityOS は Linux ネットワーキングにおけるとても広範囲なガイドです。
IP マスカレード、セキュリティ、 DNS, DHCP, Sendmail, PPP, Diald, NFS,
IPSEC ベースの VPN, またパフォーマンスの章が少々挙げられます。
50 以上の章があります。
- Linux ホストのインターネットへの接続に関しては、以下の文書にて
扱われています -
Linux ISP Hookup HOWTO,
Linux PPP HOWTO,
TrinityOS,
Linux DHCP mini-HOWTO,
Linux Cable Modem mini-HOWTO そして
http://www.linuxdoc.org/HOWTO/mini/ADSL.html
- IPCHAINS 1.3.9 以降のバージョンは
http://netfilter.filewatcher.org/ipchains/ から入手可能です。
バージョンの必要条件に関する更なる情報に関しては、最新の IPCHAINS HOWTO 等は
Linux IP Firewalling Chains page から得られます。
- 新しいカーネルの設定、コンパイル及びインストールのノウハウは
Linux Kernel HOWTO に詳しく書かれています。
- その他諸々の機能を実現する付加的な IP マスカレードツールは以下から
ダウンロードして使用できます -
- TCP/IP ポートフォワーダ又はリダイレクタ -
ICQ MASQ モジュール
PORTFW FTP ソリューション(問題解決方法) -
- マスカレードされたマシンへ FTP をポートフォワーディングする
ための、2.2.x と 2.0.x の両方のカーネルの MASQ モジュールの
問題解決方法があります。
詳細は
IP マスカレードの情報源
のアプリケーションページをご覧ください。
- SuSe に、内部の FTP サーバに到達する為のポートフォワーディングに
似た機能を提供する完全な FTP プロキシアプリケーションがあります。
詳細は
SuSe Proxy URL
をご覧ください。
真の 1 対 1 NAT の為の IPROUTE2, ポリシーベースの (発信元) ルーティング、
そして トラフィックシェイピング -
詳細な情報とその他パッチ等は
IP マスカレードの情報源 をご覧ください。
** 最新情報については
IP マスカレードの情報源 を参照してください。 **
- 現在、最新の 2.3.x 及び 2.4.x カーネルは NetFilter と呼ばれる
全く新しいシステムが導入されています ( 2.2.x カーネルにおける
IPCHAINS に似ています)。
幸い、 IPCHAINS への移行の時とは異なり、新しい NetFilter
ツールは、現状の IPCHAINS と IPFWADM の文法に*完全に*適合できる
カーネルモジュールを持っているので、古いスクリプトを書き換える必要は
ありません。
さて、どれほどあなたがご自身の古いルールセットの良さに依存していたと
しても、それを書き換えることによる幾つかの利点 (スピード、新しい
機能等) があります。
ユーザーに多くの柔軟性と将来の機能等を提供する、多くの
基本設計的な変更が、新しいコードによりもたらされました。
新しい機能の中にはこんな賛否両論を含んでいるものもあります -
賛成意見 -
-
- TCP/IP サブネットに真の 1:1 NAT 機能を提供します。
- ビルトインタイプのポートフォワーディングはもはや IPMASQADM
を必要としません。
- 新しいビルトインタイプのポートフォワーディング機能は、外部と
内部のトラフィックの両方に対して動作します。
このことは外部トラフィックに PORTFW を使い、内部リダイレクションに
REDIR を使っていたユーザーにとって、もはやこの二つのツールを使う
必要がないことを意味します。
- 完全にポリシーベースのルーティング機能 (ソースベースの TCP/IP
アドレスルーティング) 。
- より高速なパケットフォワーディングを表す Linuxの FastRoute
機能との互換性 ( Linux ネットワークスイッチングとして知られています) 。
- TCP/IP v4, v6, そして DECnet でさえも完全にサポートします。
- PPP0, PPP1, 等を指す ppp* のようなワイルドカード
インターフェースをサポートします。
- input と output の両方のインターフェースに対してフィルタリング
をサポートします。
- イーサネットの MAC フィルタリング。
- サービス不能攻撃 (DoS: Denial of Service) パケットレートの
制限。
- とてもシンプルで汎用的な状態検査機能
- パケット REJECT は現在ユーザーが選択可能な ICMP メッセージの
返答をサポートします。
- 変更可能なロギングレベル (異なるパケットが異なる SYSLOG レベル
に到達できます)
反対意見 -
このバージョンの 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 マスカレードの情報源 をご覧ください。
** 最新情報は
IP マスカレードの情報源 を参照してください。 **
次のページ
前のページ
目次へ
|