システム奮闘記:その42

匿名ログオンができないトラブル



Tweet

(2005年7月5日に掲載)
はじめに

  Windowsのファイル共有。
  共有フォルダーをつくるのは、誰でもマウス操作だけで簡単にできる。

共有フォルダー
共有フォルダー
他者は閲覧のみ、書き込みという設定ができる。
手をさしのべる絵が、いかにも共有という物を連想するのは
私だけかなぁ?

  だが、WindowsXPの場合、いくら他者からの接続を可能にしても
匿名ログオン(anonymous logon)の場合は、接続できない仕組みになっている。

実は、WindowsXPは誰でも共有フォルダーにも接続できないのだ
WindowsXPの場合、匿名ログオンでは共有フォルダーにも接続できない
Windows9X系、Windows2000は、匿名ログオンが可能なのだが、
WindowsXPからセキュリティー向上のため、匿名ログオンができなくなっている。

詳しくは以下のURLをご覧ください。
Microsoftオンラインサポート

  しかし、そんな事、最初から知っているわけがない。
  何せ、普段は、私はWindowsXPを使わないからだ。それに・・・

  事務員だもーん。技術を知らなくても当然だもーん (^^)

  だが、匿名ログオンができないために、厄介な問題(?)と出くわすハメになった。
  それは社内に複合コピー機が入ったためだった。
  そこで、今日は、WindowsXPで匿名ログオンができないために、
1年以上に渡って解決できなかったトラブルの話を書く事にしました。


問題追求を行なうまでの経緯 2003年11月、以前から付き合いのあるOA機器販売会社のE社から 複合型カラーコピー機の導入を勧められた。
複合コピー機
複合コピー機

  そのコピー機はカラーコピーだけでなく、コピーしたデータを
画像データ(jpg型式)や、高圧縮のPDF型式に変換して、LAN内にある端末へ
データを落とし込む事ができるという代物だ。

便利な複合コピー機
複合コピー機はコピーした書類や画像を画像データやPDFファイルに変換してくれる
指定の共有フォルダーに、データを落とし込む事ができる。
スキャナーとしても利用ができ、なかなか便利な物だ。

  もちろん、コピーしたデータはコピー機のハードディスクに保存可能なため
必要な時に、いつでも印刷できるというのだ。
  便利だという事で購入が決まった。


E社の営業の人と技術の人がやってきた。 各端末にドライバーを入れる方法の説明や、取り込んだデータを 端末に落とし込むための設定方法の説明にやってきたのだ。 実は、この複合コピー機はWebを使って設定を行う事ができる。
コピー機のWebでの管理画面
コピー機のWeb管理画面

  そして、登録先の名前とIPと共有フォルダーを登録すれば良いという。

コピー機のWebでの管理画面
管理画面で送信先の設定を行なう
ピンクで囲んだのが、データを落とし込む先の共有フォルダー。
IPアドレスで相手先を記入していますが、後でわかった話で
コピー機にWINSサーバーの指定もできるため、NetBIOS名でも可能だ。

ユーザー名だが、WindowsXPの場合、登録が必要になるのだが、
この時、必要な事はE社からは一切聞いていなかった。
これが後に、障害の原因になるとは誰も予想していなかった。

  一応、E社からドライバーの設定などのマニュアルが渡された。
  これがあれば、E社の人が来なくても、自分達で設定できる。

  これで、パソコンからカラー印刷ができたり、スキャナー代わりとして、
データの落とし込みができる。  
  便利な物を導入できたと、みんなが思った。


WindowsXPにファイル送信できない問題発生

最初の頃は、データの落とし込みを行っていなかったので、 問題は発覚してなかったのだが、データの落とし込むが便利だとわかるにつれ 使う人が増えてきた。だが、ある問題が表面化してきた。 その問題とは画像などを取り込む際、相手先のパソコンがWindowsXPだと、 全くデータの取り込む事ができず、エラーが返って来る問題だった。
複合コピー機に問題があった
複写したデータが送信先のWindowsXPのパソコンに送信できない障害
指定の共有フォルダーに、データを落とし込む事ができる。
スキャナーとしても利用ができ、なかなか便利な物だ。

  だが、不思議な事に、Windows98からだとWindowsXPへデータの送信ができる。

これは可能なのだ
相手がWindows98のパソコンならデータ送信ができる

  何度かE社の技術者がやってきて調べてもらったのだが原因は不明だという。

  そのため、社内いる何人かのWindowsXPのユーザーは、Windows98のユーザーに
データを落とし込んでもらい、それをメールや共有フォルダーを経由して
データを送るという手間のかかる作業を強いられるハメになった。


  コピー機を導入して1年経っても解決できない。

  困った問題だったのだが、コピー機の中身を知らないだけに、
私自身も手も足もでない。

  だが、2005年2月に、E社の技術者が「WindowsXPの場合、コピー機側の設定で、
ユーザーIDを登録する必要がある」と言った。
  
  Webの設定画面で、WindowsXPのログインのIDを登録しないといけないという。

WindowsXPでIDの登録が必要だった
ユーザーID登録が必要だった

  そんな事、今までE社から聞いた事もない上、E社からもらった
設定マニュアルにも書かれていない。
  しかも、薄っぺらいマニュアルで、WindowsXPpro版の設定になっていて
Home版とは内容が違う上、端折っている所が結構ある。


  しばらくして、WindowsXPを使っているT君が

 菅さん、データを落とし込めないのですが・・・

 と聞いてきた。

  案の定、コピー機側でのIDの登録がしていなかった。
  普段なら、登録して終わる所なのだが、ふと思った。

  コピー機とT君のパソコンとの間で、どんなパケットのやりとりがあるのか、
Etherealを使ってパケット解析を行って原因を調査しよう!

  T君のWindowsXPの場合、ログインIDを聞く前に、エラーが出る時の
パケットの状態を見てみる事にした。

パケット解析の結果
複合コピー機とWindowsXPとの間のパケット解析の結果
192.168.1.XXXは複合機のIP。
192.168.1.YYYはT君のパソコンのIP。

なぜか、コピー機はT君のパソコンへ「anonymous」というユーザー名で
接続を試みている。もちろん、そんなユーザー名はない。
そのため、接続拒否のパケットが返ってきている。(赤く囲んだ部分)

  ID登録をしていないと、コピー機は「anonymous」というユーザー名で
相手先へ接続を試みている事がわかる。
  相手がWindowsXPの場合、拒否しているのがわかる。

  次に、ID登録をしていない状態で、データを落とし込む相手先を
Windows98にして実験を行ってみた。
 
パケット解析の結果
複合コピー機とWindows98との間のパケット解析の結果
192.168.1.XXXは複合機のIP。
192.168.1.ZZZは私のパソコンのIP。

ここでもコピー機は、私のパソコンへ「anonymous」というユーザー名で
接続を試みている。だが、Windows98を使っているためか無視している。
そのため、PDFファイルが作成される様子が出ている(赤く囲んだ部分)

  Windows98の場合、「anonymous」というユーザー名の接続を無視して
データの落とし込みに成功しているのがわかる。

  そこで、複合型コピー機にT君のIDを登録した。

パケット解析の結果
複合コピー機とT君のパソコンとの間のパケット解析の結果
192.168.1.XXXは複合機のIP。
192.168.1.YYYはT君のパソコンのIP。

なぜか、コピー機はT君のパソコンへ名無しで接続を起こっている感じ。
だが、T君のパソコンは受け入れを行っていて、PDFファイルの作成が
行われる様子が出ている(青く囲んだ部分)

ピンクで囲んだ部分のデータの内容を見ると以下のように
T君のIDで接続を行おうとしていた。下の「*****」がT君のID
パケットの中身
複合コピー機とT君のパソコンとの間のパケット解析の結果

  この時、私は匿名ログオン(anonymous logon)を知らなかった。
  そのため「anonymous」という名前のユーザー名があり、
WindowsXP自身に登録されていないIDは拒否するものだと思った。

  とりあえず、E社には解析結果を報告した。

だが待てども待てども、E社から何も回答が来ない・・・ (--;; 2005年6月、ついに痺れを切らした私は、問題を放置するわけにいかないので、 私が暗中模索の状態でありながら原因の解明に動く事にした。 だが、どこから手をつけて良いのか全くわからない。 だって事務員だもーん (^^) 私は事務員なので技術的な原因の分析能力がなくても当然なのだ。 だが、そんな事を言っても前には進まない。 渋々、手探りで原因を調べて行く事にした。 まず、今までの揃っている情報を整理すると
これまでの調査を整理すると
(1) Windows98の場合は、コピー機側でIDの登録は不要
(2) WindowsXPの場合は、コピー機側でIDの登録は必要

  この2つしか情報がない。
  まずは、私はWindows98、WindowsXPでは認証方法に違いがあるため
それが原因で接続ができないのではないかと考えた。

  そこで次の本を取り出した。
  「アンドキュメンテッドMicrosoftネットワーク」(高橋基信:翔泳社)
を取り出す事にした。
  この本はMicrosoftネットワークだけでなく、認証についても触れられている。

  認証については、パラパラと見た程度だったので、Windows9X系とNT系に
認証の違いがある事は知っていたが、ちょっと突っ込んだ話になると

  全くわかりませーん (^^)

  なのだ。

  本を読みはじめるのだが・・・

  難しいのらー(TT)

  この本は入門書ではないので、入門者が読むと大変なのだ。
  だが、他に情報源がないので、頑張って読む事にした。


  本との格闘が始まって数日後、ふと次の事を思いついた。
  WindowsXPへデータを落とし込む際に、登録されていないIDで
コピー機のWeb設定を行った場合、どうなるのか?

私の予想
登録されていないIDを使うとエラーが出ると予想した

  そこで、以下のような設定を行った。

WindowsXPで、わざと登録されていないIDを設定してみた
WindowsXPで、わざと登録されていないIDを設定してみた

  そこでコピー機からWindowsXPへデータを落とし込む作業を行うと

  なぜかデータが落とし込めた  (・・)

実験結果
登録していないIDでデータの送信をすると、なぜかできた

  「abc」というユーザーIDなんぞ、WindowsXPで登録しているわけがない。
  なのに、データの落とし込むは成功している。
  そこでパケット解析を行ってみた。

パケット解析の結果
データの送信成功の部分
ピンクで囲んだ部分はデータの落とし込みが成功を示した部分。

青く囲んだ部分は、WindowsXPへログオンした時のID。
WindowsXPに存在しない「abc」(表示は大文字になっている)のだが
ログオンできているのだ。

  この結果を見た時、原因追求への道のりが振り出しへ戻された感じだった。

  なぜならWindowsXPに登録されているユーザーIDでないとWindowsXPが
接続を拒否すると思い込んでいたため、Windows9X系とNT系の認証の違いに
問題があるのではと考えて調べていたからだ。

  だが、WindowsXPに登録されていないユーザー名で接続できる事が
わかったため、視点を変えて調べていかないといけなくなったからだ。

  ふと思った。Windows98からWindowsXPの共有フォルダーにデータを送った時
どんな認証を行っているのかだ。

パケットの解析結果
Windows98でのパケット送信の解析の様子
青く囲んだ部分は、WindowsXPへログオンする際にWindows98から送られたID。
このIDは、Windows98にログインした時のIDであって、WindowsXPには
全く登録していないIDだ。
それなのに、データの送信には成功している。

  Windows98からWindowsXPへの接続も、WindowsXPに登録していないID
(Windows98にログインするID)で接続を行っている。
  つまり以下の図のように、Windows98を立ち上げログインするIDを使って
WindowsXPへアクセスしていたのだ。

Windows98でログインする時のID
Windows98でログインする時のID
ピンクで囲んだ部分がWindows98にログインする時のID

  なんでWindows98のIDで、WindowsXPへアクセスできるのか不思議に思った。
  そして、IDだったら何でも良いのかと思うようになった。


  だからといって、anonyumousのユーザーだと拒否されてしまう。
  google先生を使って調べる事にしてみた。
  
  するとWindowsXPproの場合、everyoneグループのフォルダーであっても
匿名ログオン(anonymous logon)は拒否されるという記述を発見した。

  everyoneグループって何?

  ファイル共有した時、誰でもアクセスできる状態の場合、
誰でものグループがeveryoneグループだという。

  しかし、匿名ログオン(anonymous logon)は拒否されるという。
  ふと思った。コピー機側の設定でIDを設定していない場合、
anonymousで接続していたので、もしかしてと思った。
  そこで解析した後を見直してみる事にした。

パケットの解析結果
WindowsXPへの接続が失敗した様子
ピンクで囲んだ部分はデータの落とし込みが失敗した事を示す部分。

青く囲んだ部分は、WindowsXPへログオンした時のID。
本来、IDが入っているはずの場所に何もない。
このようなアクセスは、NULLアカウントでのアクセスという。

  anonymousというユーザー名でログオンしていると思い込んでいたが
実際には、名無しの権兵衛さん(NULLアカウント)でログオンしている。
  
  調べてみると、NULLアカウントでの接続は
  まさに、匿名ログオン(anonymous logon)だ!

  1つ目の証拠が得られた。うふふ ← 不気味な笑みを浮かべる私。

  さて、WindowsXPHome版の場合でも、やはり同じなのだろうか。
  そこで執念(?)で調べる事にしたら、MicrosoftサイトでWindowXPHome版でも
同じ事が起こる事が書かれていた。
Microsoftオンラインサポート

  これで2つ目の証拠が得られた。
  2つの証拠で、何故、コピー機からWindowsXPへのデータの落とし込みが
できなかったのか理由がわかった。

  ふふふ、全て解明できた  ( ̄∀ ̄)

  まるで鬼の首をとったかのような気分になった。
  何せ、E社の技術者が見つけられなかった原因を、自力で解明できたからだ。

  私が不気味な笑みを浮かべているので、部長が「どないしたんや」と聞いてきた。
  そこでWindowsXPへのデータの落とし込みができなかった原因が解明できた
話をすると、部長が「うちら、放っとかれてたんとちゃうか」と答えた。


  そして、メールでE社に原因の解明結果を証拠付きで送った。
  するとE社の営業の人から平謝りのメールがやってきた。

  私は営業の人は責める気はない。何の責任もないからだ。
  だが、E社の技術者に対しては不信感を抱いてしまった。
  Windows技術者と名乗っている以上は、次のような事を言いたくなる。

  Windowsが得意でない事務員でも解明できた現象ぐらいは、解明せんかい!

  そしてE社の技術者に対して

 菓子折り持って謝りに来い!

 という気持ちになった。


さて、匿名ログオン(anonymous logon)の問題。 今回のような複合コピー機を使う場合にだけ起こる問題ではない。 もっと身近なケースでも起こる事がある。 そこで身近な例として、Windows98からWindowsXPの共有フォルダーへの接続が 拒否されるケースを紹介します。 コピー機からデータの落とし込みができない原因が解明できた後、 次のケースでも匿名ログオン(anonymous logon)になるのではと考えた。
Windows98でログインする時のキャンセルを押した場合
Windows98でログインする時のキャンセルを押した場合

  この場合、特定のIDでログインするのをキャンセルしているので
Windows98は名無しの権兵衛さんになっていると考えた。
  すなわち、他のマシンへ接続する時、特定のIDを持っていない事から
匿名ログオン(anonymous logon)になると考えた。

はたして「キャンセル」でログインした場合は
WindowsXPへの接続が可能なのだろうか?
ログオン時にキャンセルで行なった場合

  そこで自分の目で実際に、Windows98からWindowsXPへの接続が
可能かどうか調べてみる事にしてみた。

WindowsXPのパソコンへ接続を試みた
WindowsXPのパソコンへ接続を試みた

  さて結果は・・・

  接続エラーが出た!!

エラーの内容
接続エラーが出た画面

  これだけだと、ブラウジング問題などの突っ込み所があるかもしれないので
ちゃんと証拠を得るために、Etherealでパケットキャプチャをしている。

Etherealでパケットキャプチャの結果
Etherealでパケットキャプチャの結果
ピンクの部分は、Windows98がNULLアカウントで、WindowsXPへ接続を
行っている様子が伺える。つまり匿名ログオン(anonymous logon)だ

青い部分は接続を試みるWindows98に対して、接続拒否の応答をしている
WindowsXPの様子が伺える。

  Windows98でログインする場合、キャンセルを押すと、WindowsXPの
共有フォルダーへの接続ができなくなる事がわかった。
  なんでも良いからIDが必要だという事がわかった (^^)


まとめ WindowsXPの共有フォルダー。 誰でもアクセス許可にしても、匿名ログオン(anonymous logon)ができない事を 知らないと、今回のようなトラブルを招く事になりますので、注意が必要です。 それにしても、E社の技術者が匿名ログオンの問題を全く知らなかった事と、 例え知らなくても、トラブルに対しての分析力のなさには、呆れてしまった。 もしかして、「中小企業だから適当に相手しておけ」というのが あったのではないかという疑念を持っていたりもする。 E社の技術者は、日経ITproでも話題になっている「未熟な技術者」だと思う。 設定方法は知っていても、システムの仕組みを知らないため、 トラブルが発生しても、原因究明ができない事例だ。 技術者が「何故」という問いを忘れ、設定方法を覚える事だけで システムの仕組みを理解したと思い込んだりするのは問題なのだが、 一番の原因はIT業者の従業員教育にあると思われる。 バカなIT企業の経営者や人事部が、目先の経費削減のために 従業員の教育を軽視するため、起こる現象だ。 IT技術が高度化するにも関わらず、新人研修の期間を削減したり ひどい業者になると、新人にVisualBasicの本だけ渡して、 客先のプログラムを書かせたりする所があるという。 それだけではない。技術者が多忙なため勉強する余裕もないのも現実だ。 これでは日本のIT技術が、お粗末になるのは当り前だ。 今回のE社の事から、日本のIT業界の実態を垣間見た気がした。

次章:「Linuxウイルスゲートウェイの設定」を読む
前章:「シリアルコンソール(RS232C)でLinuxにログイン」を読む
目次:システム奮闘記に戻る

Tweet