Welcome to

Welcome to tokoo.net

Home

日々の更新
2003年  2月26日
 2月19日
 2月3日
2002年  12月5日
 4月17日
 2月20日
2001年  12月26日
 11月18日
 10月3日
 10月2日
 9月14日
 9月2日
 7月29日
 7月16日
 7月3日
 6月19日
 6月11日
    6月7日
    6月2日
    5月29日
    5月22日
    5月19日
    5月17日
    5月16日
System
Private

何かお気づきの点が
ございましたら
mitsuまで

 

 

仮設検定

2001年7月16日

うちのネットワークには3台のPCと1台のADSLモデムがつながっているけど、信頼度順に並べるとこうなる。

Rank Name Local IP Contents
Think Pad A20m (DHCP) Windows98 SE。居間に置いてあるノートPC。ブラウザはIE5.0のまま、「Windowsの重要な更新」とやらをほとんどやっていないパソコン。ブラウザとメールと、子供の遊びCD、妻の仕事など、多彩に使われているが、今のところノートラブルである。ADSL快適環境のおかげで先日[重要な更新」をとうとうやってしまった。問題が起きなければいいが。
2 Think Pad 230Cs 172.25.0.2 ここのドキュメントにしばしば出てくる、大活躍のLinuxサーバーで、実態は7年前のサブノートPC。滅多に落ちないが、AC電源ケーブルが本体から抜けてしまうことがよくある。ニッカド電池は1度交換したが、これももう学習効果でほとんど充電されなくなってしまった。そろそろリタイヤさせてあげたいが。
3 MegaBitGear TE4100 172.25.0.1 eAccessがくれたルータタイプのADSLモデム。ここのドキュメントにあるとおり、一度だけおかしくなったことあり。熱暴走ではないと思う(ここ最近の熱波に耐えているところをみると)。
4 自作パソコン 172.25.0.3 私のメインPC。変な物を一杯付けているので昔から調子悪かったが、どういうわけか、ここ最近絶不調である。電源入れて3時間もするとハードディスクが言うことを聞かなくなる。秋葉原行って、替えのHDDを調達してこようか。

自作パソコンをクライアントにしてTelnetやFrontPage使ってLinuxにアクセスしているけど、クライアントが勝手に落ちて作業が中断することがしばしばとなり、信用度が急落している。代わりにRank1の妻PCをときどき借りるようになっている。自作パソコンの復活はいつのことか?

1.4 Bind

Finished

 前回はsendmailでずっこけたが、データベースまわりでエラーが出ていることが原因らしいことは分かった。ドキュメントを見るとBerkley DBがお薦めのようだ。これ一度やめてgnuにしちゃったんだよね。変えろというのであればShared LibraryのSymbolic Link先変えるだけなんだけど、間違いなくperlにも影響が出るだろうし・・・

 と、億劫がっていたら、DNS関係のLibraryも怪しいかも、という疑惑浮上。そういえば今動いているbindはめちゃくちゃ古く(libc5であることは勿論)、有名なセキュリティホールがわんさかという代物だけど、とりあえずローカルで使っているからいいやということで放ってあった。まぁlibc5追放キャンペーンの一環として、やるとするか。ダウンロードした(していた)bindのバージョンは9.1.1(今は9.1.3)。

 コンパイルそのものは問題ないのだけど、named.confの設定が面倒。昔のバージョンはnamed.bootで、書式が違うし・・・と、よく見たらコンバートツールもありました、楽ゥ。

 しかしDNSサービスこそは、なくてもいいやと思いつつも、持ってると実際便利です。プロバイダ任せにするのは良くない。

 例えばこのwwwサーバーに外からホスト・ドメイン名でアクセスできるのは、インターネット上のDNSのおかげである。DNSによりグローバルIPに変換されることでhttpのパケットは正確にわが家に届く。するとルータ(ADSLモデム)のMegaBitGearのNATの働きにより、受け取ったパケットをローカルの172.25.0.2に送ってくれる。これがうちのwwwの動作原理。

 問題は同じことをLAN内でできないことだ。LAN側からグローバルIP宛にパケットを送っても、ルータはこれを172.25.0.2に転送してくれない。元々NATというものはLANとWANの変換に使う物らしく、LANから来たパケットを解析して、WANから再びLANに逆流するようなことはしてくれない(それともこのモデムがボロいだけなのか?)。結局アクセスに172.25.0.2と書かざるをえなくなっちゃう。これでいいじゃないかという考えもあるが、外出の可能性のあるノートPCだと[お気に入り」にLAN版とWAN版の2個用意しなきゃいけない。まだwwwなら手動選択が変わるだけで済むけど、メール(smtp・pop・imapサーバー等)とかはもっと面倒になる。

 これをローカルにDNSを持っていれば、ホスト・ドメイン名でLAN内のアドレス(172.25.0.2)に変換してしまえばいいだけのことなので、ホスト・ドメイン名でアクセスを一本化できることになる。ノートPCなどには便利というわけだ。

 しかし遅いな、うちのDNS。やっぱ230CSじゃだめかしら(一般的には自前でDNSを持つことにより、速度が上がるといわれているが・・・)

 

4.7 Sendmail

Suspended

 bindがあまりに順調に動いたので気を良くしてもう一度sendmailに挑戦。失敗。

 ちと気を取り直して別のことやろう。

 

4.8 xntpd

Finishued

 LAN内PCの時刻合わせを検討。ntpサーバー(xntpd)をサーバーで走らせ、PCを桜時計かなんかで参照させればいい。サーバーはすぐ出来た。PCには全部、桜時計をインストールした。以上!

 何でこんなに簡単にできたかというと、会社のイントラネットの環境にえらい苦労してntpサーバー作ったから、ドキュメントを懸命に読んでいたせいだと思う。Firewallで囲まれている会社内LANからは、外のntpサーバーが見えない。会社のことなんて放っておけといいたいところだが、Work PadにTrain Timeを入れてからというもの、数十秒の誤差すら許されないカラダになってしまった(「今走れば電車に乗れる!」という情報は貴重だ)。Work Padにシンクロさせているのは会社のWin2000PCなので、TimePALmを使ってHot Sync時に時刻をシンクロすれば、会社PCとWork Padはぴったし時間が合う。

 問題はそうなると会社PCの時刻合わせだ。この会社のことだから、どっかにntpサーバーが立ち上がっている(そして原子時計かなんかとつながっている)と思ってあちこち社内をアクセスしてみたが、全然見つからない。おいおい、この会社、元は何のおかげで大きくなったんだよ!

 しょうがないので、会社のPCにはWeb Standard Timeというフリーソフトをインストールした。これは独立法人「通信総合研究所」がWeb公開している日本標準時を参照している。これのいいところはhttpアクセスだけで済むことで、これならば社内LANからもproxy使って堂々とアクセスできる。残念な点はntpと比べると比較にならないくらい精度に劣る点なのだけど、Train Timeの誤差(というよりは電車の運行スケジュールの誤差)と比べればたいしたことじゃない。

 Web Standard Timeには満足したけど、こうなったら社内初のntpサーバーを作ってしまいたいという衝動がめらめらと沸いてきた。まずはサーバーの時刻を合わせることだが、socks5等々の非合法活動をすると出世に響くため、あくまで合法的にやるとすればWeb Standard Timeと同じことをやってしまえという結論になる。wget(gnuのコマンド)で上記webにアクセスし、時刻情報を拾ってきてdateコマンドの引数を作り、時刻を設定する。このスクリプトはcrontabを使い、毎朝午前4時に動かすことにする(この時刻ならば遅延も少ないだろうという皮算用)。これで何とか常時誤差1秒程度の時計にすることができた。仕上げはxntpdの立ち上げだが、参照サーバーは自分自身のクロック(127.127.1.0)にする(この設定を探すのに実は苦労したりして)。

 ntpサービスが動き始めるとあとはクライアントPCに桜時計を入れちゃう。Work Padとシンクロしている会社PCも、Web Standard Timeには申し訳ないがお引き取り願い、桜時計を入れようかと思ったけど、Win2000って時刻合わせの機能あるんですね。これでスッキリした。

 

4.9 webpass

Finishued

 sendmailのバージョンアップはあいかわらず失敗しているけど、とりあえず動いているし、imapサーバーも調子良く動いている。そろそろ家人にも使ってもらおうかと考え始める。しかしUNIXのパスワード設定なんかをまさか家人にtelnet使わせるわけにいかんし・・・ということで見つけたのがWeb Pass。しかし.zaってどこ?(ザンビア?)。

 このWeb PassはApache&mod_perlで動くアプリ・・・そうなのです、だからmod_perlを何としてもApacheに組み込みたかったのであります。原理はとっても簡単。まず実行時SETUID-rootになるダミーのCGIがあって、それが内部でPerlのスクリプトを実行する。Perlのスクリプトの中からusermodコマンドを呼び出し、ftpなどを呼び出してパスワード変更するというのがだいたいの仕組み。トロイの木馬仕掛けるには最高のアプリなんだけど、とりあえずこれを作った人を信用することにして、インストール。あれ?うまくいかない。なんとusermodがインストールされていなかった。usermodのソースはここ。作成は以下のとおり
     shadow# ./configure --with-libpam
     shadow# make
     shadow# make install
一応、libpamまた使うことにしました。

 Web Passのmakeはいたって簡単。make; make installでおしまい。実際はcgiのPATHなどの設定がMakefileに必要になるが。ちなみにデフォルトは/cgi-bin/webpass/wpass.cgi だけど、もちろんこんな名前でインストールするほど私ゃぼんくらではない(試してみよ)。

 実際に使おうとするとエラー。この作者、freeBSDはO.K.だがLinuxはあまり得意じゃないらしい。usermodをexecしているところがはっきり言って怪しい(execは正常に進めば関数として返って来ないはず)。ここをsystemに変更し、エラー条件も変えて動かしてみた。具体的には
wpass# diff wpass.pl.org wpass.pl
461c461
< exec($program,@program_args,$cpass,$user) ||
---
> system($program,@program_args,$cpass,$user) &&
wpass# 
 これでとりあえずまともに動いた。今度はWebの表示を日本語にしたくなってくる。

 

4.4+ imapd

Finishued?

 いよいよ今度はメールを外から読む実験を開始。これの伏線に前出のWeb Passがあるわけで、これをwwwで外に見せれば、外部のユーザーもパスワードを変更できる。メールを読み書きとWebページへのftpを出来るようにしてあげれば、私は晴れてプロバイダ業!? まぁうちの珍しいドメイン名は、田舎の親戚実家筋にどんどん使ってもらってもいいだろうなどと、殊勝なことを考えているのであります。

 メール読み出しは普通はpopだろうけど、とりあえずimapポートを開く。これを外のOutlook Expressでアクセス(どこでやったかは聞かないでくれ)。うわっ、読めた。じゃあ書き出しは? smtpはメール送受信のためにとうの昔から開いているけど・・・駄目!

 何でimapで読めてsmtpで送信駄目かというと、sendmailに制限を課しているからであります。spamの中継基地にされることを潔しとしないので、外部→外部の転送を禁止しているのです。さてと、ここで有識者からアドバイス。smtpに認証を付けなさい・・・結局sendmailかよ、また。最新バージョンbuildできるまで設定はお預けだな。

 実はこの後、webpassが動かなくなってしまった。たぶん、ここに書いてある以上にシステムを更新している(例えばbashを最新版にしたり)ので、それらのうちの何か副作用が起きたのだろうと思う。でも気持ち悪いので機能停止させてしまっている。

 表題はこの前の企画会議で出てきたt検定から、信頼度をもじっただけではあるが・・・しかしこの会社に入って初めて、大学時の勉強の内容が出てきた。企画の連中が進歩しているのか、もともとこの会社が遅れているのか。