<back> <home>

ウインドウズでファイルやプリンターの共有をLAN内で安全に行う方法
2002年6月7()

 ウインドウズ2000やXPでは

●Microsoft ネットワーク用クライアント
●Microsoft ネットワーク用ファイルとプリンター共用

がデフォルトで設定されていて、LAN内でファイルやプリンターの共有が行えます。これは、マイクロソフト仕様の「NetBIOS」プロトコルで動きます。

☆ファイル共有は便利だが危険性も高い

  ファイルやプリンターの共有は非常に便利で是非持っていたい機能の一つです。問題は安全性です。共有できると言うことは誰でも共有ファイルにアクセスできると言うことですから、悪意あるユーザーにウイルスでも仕掛けられたらLANを乗っ取られることになります。共有システムは、家庭内LANなど閉じたネットワーク内で使う限りは問題ありません。しかし、インターネットに接続すると外から侵入の可能性が出て来るわけであり、マイクロソフトファイルの共有はとりわけ危険性が高いと見なされています。

  NetBIOSを機能させるためのプロトコルとして、ウインドウズ2000/XPではTCP/IPを標準として採用します。そのためにポート番号135,137,138,139を使用しますが、TCP/IPはインターネットプロトコルのため、ここが侵入口として使われるわけです。しかし、安全対策を講じてウィンドウズにファイヤーウオールをセットしたり、ルーターでNetBIOSのパケットを遮断すると(*1)、副作用としてこのポートも閉ざされてしまうため、LAN内の共有設定が機能しなくなります。ネットセキュリティの本を読みますと、安全性を重視する識者は、NetBIOSを削除してファイル共有については別途策を講じなさいと薦めますが、不便この上なしです。そこで、安全性を維持しつつファイル共有を使用する解決策として、別のプロトコル「NetBEUI」もしくは「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」を使う方法があります。

第1の選択: NetBEUIを使いファイルやプリンターの共有を設定する。

☆NetBEUIとは何か?

  「NetBEUI」はマイクロソフト独自のネットワークプロトコルで、相手マシンの認識にIPアドレスを使わず、マシン名(NetBIOS名:ユーザーが自分で付けたコンピュータ名)を直接使います。名前認識の手段としてブロードキャスト方式を使うため、同一ブロードキャストドメイン内のみで有効です。通常は、クライアントの数が 1 〜 200 の、小規模な事業部サイズのローカル エリア ネットワーク (LAN) で使用されます。限られた狭い範囲でしか有効でなく、またルーティング(ルーターを越えること)が不可能なプロトコルなので、最近は「NetBIOS over TCP/IP略してNBT」に置き換わりつつあり、XPではサポートされなくなりました。「NetBEUI」プロトコルは、ルーターを越えて外へ出られないことが欠点なのですが、逆に言うと外から侵入しにくいと言うことを意味するわけで、セキュリティと言う観点からは強みなのです。「NetBEUI」を使う解決策は、古くからのウインドウズユーザーならばすぐに気が付いたと思うのですが、私自身は新参で2000からすぐにXPに切り替えてしまったものですから、この方法を見つけるのにたいそうな時間をむだにしました。

  NetBEUIにかんしては「NetBIOSとか、NetBEUIって、何ですか?」「Windows XP では NetBEUI プロトコルを使用できない」を参考にしてください。

☆NetBEUIのインストール法

  「NetBEUI」はウインドウズ2000までは標準装備ですが、XPではサポートされていません。しかし、XPインストール用のCD-ROMには「NetBEUI」ファイルがValueadd\msft\net\netbeui フォルダーに含まれていて、「Windows XP に NetBEUI をインストールする方法」が紹介されています。「 Netnbf.inf」 ファイルを %SYSTEMROOT%\INF\ ディレクトリに、「nbf.sys」 ファイルを %SYSTMROOT%\SYSTEM32\DRIVERS\ フォルダディレクトリにコピーすればOKです。%SYSTEMROOT%とは、ウインドウズXPプロフェッショナルでは、C:\WINNT、ホーム版ではC:\WINDOWSディレクトリーのことです。LAN内の共有ファイルを使用したい全てのコンピューターにインストールする必要があります。

 

☆ NetBEUIの設定法

  「NetBEUI」がインストールされた後、「コントロールパネル」―「ネットワーク接続」と続けてクリックし、「ネットワーク接続画面」を出します。「ローカルエリア接続」のアイコンを右クリックして現れるプロパティ画面で、全般タブの中のウインドウを見て、「Microsoft ネットワーク用クライアント」「Microsoftネットワーク用ファイルとプリンター共用」にチェックマークが入っていることを確認しましょう。「NetBEUIプロトコル」を使用可能にするために、「インストール」ボタンを押します。「ネットワークコンポーネントの種類」の選択画面で、プロトコルを選び「追加」ボタンを押します。「ネットワークプロトコル画面」が出るので、「NetBEUIプロトコル」を選び「OK」します。元の「ローカルエリア接続」のプロパティ画面を再び出せば、「NetBEUIプロトコル」が追加されているはずです。チェックマークを入れ再起動すれば「NetBEUI」プロトコルが使えるようになります。

  なお、ウインドウズ2000での設定法(XPもほとんど同じ)が絵付きで「NetBEUIでLANを構築する」に出ています。

第二の選択: NWLink IPX/SPX/NetBIOS互換トランスプロトコルを使う。

  「NWLink」はNovell 社のネットワークNetWaresで使われる仕様です。IPX/SPXプロトコルの役割はインターネットのTCP/IPと同様です。LAN用に「NetBEUI」の代換えとしてサポートされています。「NetBEUI」と違いルーティングが可能です。

  設定法は、「NetBEUI」と同じ設定画面、すなわちローカルエリア接続のプロパティダイアログ画面で、「NetBEUI」の代わりに「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」と「NWLink NetBIOS」にチェックマークを入れ、ネットワーク接続画面メニューバーの「詳細設定」「詳細設定」ダイアログで、「NetBEUI」の代わりに「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」にチェックマークを入れます。

  また、「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」を選択した状態で「プロパティ」ボタンを押して出るダイアログ画面で内部ネットワーク番号を設定する必要があります。デフォルトでは「00000000」になっているようですのでこれを任意の番号、ただし同じLAN内の各コンピューター毎に全て違う番号を設定します。

  この二つの選択の違いは何なのでしょう。IPX/SPXプロトコルは「NetWare」を使用する人にとっては必要かも知れませんが、そうでない場合、「NetWare用クライアントサービス」をオフにすれば、他の設定方法や現れるダイアログが全く同じであり、「スタート」「全てのプログラム」「アクセサリー」「コマンドプロンプト入力画面」に「ipconfig /all」を打ち込んで現れる下の画面が両者同一です。

(この画面は後述する安全対策を施した後での表示です。)

「Node Type」が共に「Broadcast」となっていて、機能に差は無いように思えます。また、ウインドウズXPのマニュアルでは、TCP/IPによるLAN機能が働かないときは、「NWLink IPX/SPX/NetBIOS互換トランスポートプロトコル」を試してみることを薦めています。その理由は「NetBEUI」は一般的なネットワークの動作と一部トラブルを起こす可能性があり、そのためにXPではサポートせず代わりに「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」を入れたと説明しています。

  「NetBEUI」に関しては歴史が長くいろいろなところでの説明から性質がかなり明瞭ですが、「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」も同様な歴史があるようですが、ウインドウズ関連のサイトではこれ以上の説明を見つけられませんでした。多分機能は同じと思って良いのでしょうが、どなたかご存じでしたら教えてください。

安全対策をこうじる。

  ポイントは、ネットワークのプロトコルとして、LAN内のファイルやプリンター共有にはBroadcast型のプロトコルを使ってLAN内に閉じこめる様にし、その他のプロトコルには標準のTCP/IPを使うことです。ウインドウズXPのデフォルトではMicrosoft ネットワーク用ファイルとプリンター共用にTCP/IPプロトコルを使うように設定されているので、これをはずさなければなりません。また、「NetBIOS」名をIPアドレスと関連づけるための機能(LMHOSTS、WINSサーバーとDNSサーバーの3種)があるのでそれもはずして守りを堅牢にします。

TCP/IPプロトコルをファイル共有設定をからはずす(アンバインドする)方法: 

1) 「ローカルエリア接続のアイコン」のプロパティ画面の中の全般タブにあるウインドウで、「NetBEUIプロトコル」(もしくは「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」と「NWLink NetBIOS」)、「Microsoft ネットワーク用クライアント」、「Microsoft ネットワーク用ファイルとプリンター共用」にチェックマークが入っていることを確認し、これ以外の「NetBIOS」関連のチェックマークは全部はずしましょう。

2) 次に「ネットワーク接続」画面でメニューバーの「詳細設定」-「詳細設定」をクリックしますと、「詳細設定」ダイアログ画面が出ます。「アダプタとバインド」画面の上の「接続」窓で、「ローカルエリア接続」を選択すると、下の「バインド」窓には「Microsoft ネットワーク用ファイルとプリンター共用」「Microsoft ネットワーク用クライアント」にバインドすべきプロトコル一覧が示されますので、

 

「NetBEUIプロトコル」もしくは「NWLink IPX/SPX/NetBIOS互換トランスプロトコル」のみをチェックし、他のプロトコルのチェックをはずして「OK」ボタンをクリックします。

 次に同じく「ローカルエリア接続のアイコン」のプロパティ画面で、「インターネットプロトコル(TCP/IP)」を選択し、「プロパティ」を押し、さらに「インターネットプロトコル(TCP/IP)のプロパティ」画面で「詳細設定」ボタンを押します。「TCP/IP詳細設定」画面でDNSタブを選び、「プライマリーDNSサフィックスの親サフィックスを追加する」および「この接続のアドレスをDNSに登録する」のチェックをはずします。次に「WINS」タブの画面で、「LMHOSTSの参照を有効にする」のチェックをはずし「NetBIOS over TCP/IP を無効にする」にチェックを入れます。これで完了です。

  一応、「コマンドプロンプト」画面で、「ipconfig /all」 と打ち込み、「NetBIOS over Tcpip …..Disabled」 と言うメッセージが出ることを確認してください(上記コマンドプロンプト入力画面参照)。


 (*1)  私の場合は、ルーター(住友MegaBitGear TE4000)で、NetBIOS関連のポート番号(135,137-139,445)については、内外の流れを遮るようにフィルターを設定しています。設定は、Kobayashiさんの「自宅サーバー」を参考にさせていただき、ほとんど同じです。さらにLAN内のコンピューターにはウインドウズ組み込みのファイヤーウオールを設定して使っています。「NetBIOS over TCP/IP」を使う場合は、ファイルやプリンターの共有設定をしても動きませんでしたが、「NetBEUI」に切り替えて動くようになりました。


<back> <home>