図 - みる会図書館


検索対象: UNIX MAGAZINE 2004年9月号
187件見つかりました。

1. UNIX MAGAZINE 2004年9月号

連載 / Pe 日活用のヒント 図 2 フォルダ・オプションの、、ファイルの頁 全般ー表示ファイルの種類レフラインファイ ) 月 登録されているファイルの種類ン WM... Windows Med オーディオ / ヒデオ再生リスト M … Windows Media 円 aye 「スキンパッケージ [ 身 WRI ライトドキュメント 、 GO Windows scrpt Oomponent M.GF Windows Scr ipt File 拡子 'WPL' の詳細 プログラム W1ndows M 記円ョ y 印 変更 0.. 0 定 ] をク 0 , クしき 3 うドラ , 有 0 = 設定を反映す 0 口ま、 0 發 詳細設定 図 5 〕口された拡張子 . plw 全般ー表デファイルの種類レフラインファイ丿月 登録されている万イルの種類 : ファイルの類 拡子 ①し ) Aud io OD P layback 朝し ) Aud i00 D : し ) Auto P lay fo 「 ReaIOne P layer Auto P lay fo 「 R 旧引 0 P layer フォルダオプション フォルダオプション も WPL Wlndows Media 再生リスト 1 』 拡張子 'PLW の詳細 プログラム : 変更 0.. 、 閂じる 図 3 拡張子 . plw は未泉 全般ー表示ファイルの種類ーオフラインファイ ) 月 登録されているファイ丿しの種類 拡張 号 PIP M icrosoft Off ice 正ファイル 言 p KO 公キーのセキュリティオブジト OPL PL ファイル PLS ファイル PMA ハフォマンスモニタファイル 回 p MO パフォマンスモニタファイル ファイルの種類第配 io OD Playbacki の詳細 プログラム : tAudio CD Playback' ファイルすべての設定を変更するには、設定 ] を男 してくだ & 、。 図 6 ファイルの頁の 万イ ) 効種類の編集 アイコンの変更⑩」 アクション ~ 新規⑩ ~ 三 = 削除い マダウンロード後に常にように設定する 0 「 ! 煢こ撼長子を表示する 「同じウルドウでく ( 変重朝 図 7 アクションの言又疋 アクション Open クションを実行するアプリケーショノ 0 ¥ Perl*b in*vvperl.exe j¯DDE を使うゆ 新し、アりション 詳細設定ー 用第 図 4 新しい拡張子の作成 OK キャンセル 新しい拡子の作成 ? X 驛 OØめ . plw と wperl.exe を関連づけるには、図 5 のウイン るように使われていない。そこで、 wperl. exe に関連づけ ドウで [ 詳細設定 ] をクリックし、表示された図 6 のウィ る拡張了イよ . plw にしよう。そのためには、ます図 3 のウイ ンドウでます [ アイコンの変更 ] をクリックして C:*Perl ンドウで [ 新規 ] をクリックし、表示される図 4 のウインド *bin*wperl. exe を選択する。続いて同じウインドウの ウに、、 PLW " と入力して [OK] をクリックする。すると図 [ 新規 ] をクリックし、 Open アクションを実行するアプリ 5 のように拡張子 PLW が登録されるが、まだ wperl.exe ケーションとして C:*Perl*bin*wperl.exe を登録する とは関連づけられていない。 ( 図 7 ) 。 106 UNIX MAGAZINE 2004.9

2. UNIX MAGAZINE 2004年9月号

連載 / 大学ネットワークのアウトソーシンク 図 5 糸各のバックアップ インターネット ウインテック コミュニケーションス バックアップ経路 1 ーバックアップ経路 2 (ISDN: 将来 ) BeX-J 日本ネットワーク サービス 個人レベルの バックアップ 山梨県立女子短期大学 学内 LAN 正常時の経路 図 7 障籬寺の RTT 図 6 RTT の計則 20 external host internal host 8 0 8 ( 0 4 〔 0 のの l-u 〕トトエ [oesw] トトエ 4 2 2 14 12 10 08 06 Hours 04 02 0 22 Jan 09 Sep 01 J ⅵ 01 Days Jan 09 Mar 01 May 01 Nov 01 所あります。これは経路の途中で障害や保守作業があり、 RTT は、比較のために測定したものです ) 。外部ホストへ 経路か凍京経由に切り替わったためです。 2003 年 12 月 の RTT のほうが速くなっていますが、これはあいだに入っ 17 日の部分を 5 分ごとの計測値で示すと図 7 のようにな ているルータの性能によるものです。平均すると、外部ホ ります。これは、 BeX-J に接続している大学のルータのイ ストまでの RTT は 1.5ms 程度になります。図 6 をよく 見ると、 6 月初めのところで階段状の変化が生じています。 ンターフェイスに障害が発生し、糸各か変化したからです。 このときは復旧に約 10 時間かかりましたが、そのあいだ これは、 6 月 3 日にメディア・コンバータの数が 2 つ減少 も接続自体は東京経由で維持されていました。 したためです。それ以降は、外部ホストまでの RTT の平 均値は 1.3ms 程度になりました。 経路については、これ以外にも問題がありました。ア 図のなかで、 RTT の値が大きくなっているところが 5 カ ウトソーシングを始めたばかりのころ、ルータでフィルタ 124 UNIX MAGAZINE 2004.9

3. UNIX MAGAZINE 2004年9月号

連載 /Red Hat Linux のツールたち 図 16 インストール兄の表示 図 18 VMware の CD-ROM アイコン ( 噐 ) パッケージのインス トール ンステム上に F を面「 3 Co をイン ストールする為に必要な情報をす べて収集しましたインストー ルされるバッケージの数量に応じ て、すべてをインストールするま でしばらく時問がかかります . Thank You! 図 19 インストール完了 RedHatwouldlike to 物 ank eFedo ′ 0 ( ommu ⅲツ危ロわ epa 立 yearofpioneeringwork ⅸを rm ( ・ 2.0. & 38j3 新は 6 (B) インストール 旧れ叩データベースにアクセスするための基本第なシステムライプラリ 4 を鉅 おめでとうごさいます . インストールが売了しました、 インストール時に使用したインストールメディア ( フロッビー ディスク、 ( D ・ ROM など ) をすべて取り出してから、・再起 動 - ボタンをしてシステムを再起動します . 図 17 インストール CD の交換メッセー ン すべてのパッケージがインストールされると、図 19 の画 面カ俵示されます。画面右下の [ 再起動 ] ボタンをクリッ クすると、 PC か再起動します。このとき、起動デバイ スの順番として CD-ROM が HDD よりも先になって いる場合は、インストール CD を取り出すか、 HDD が 先になるように PC の BIOS を設定しておきましよう。 私の環境では、インストール作業を開始 ( 図 15 ) してか ら図 19 の画面が表示されるまで、約 30 分かかりました ( インストール CD 麪奐の時間を除く ) 。利用している PC の性能にもよりますが、 Red Hat Linux のインストール が始まります。パーティションのフォーマットなどを経 にれた人なら、 OS のインストール自体は 1 ~ 2 時間程 てパッケージのインストールが始まり、進行状況カ咽 16 度ですむでしよう。 のように表示されます。これらの作業は自動的におこな ゲスト OS の再起動後に df コマンドで HDD の使用量 われるので、インストール CD 交換の指示があるまで を確認したところ、図 20 のようになりました。ルート・ じっと待ちます。 14. インストール CD の交換 パーティションの使用量は約 2.7GB で、リリースノート に記載された値 ( ワークステーションの場合は 3.4GB ) と インストールするパッケージカ夏数のインストール CD 隔たりがありますが、多いことに変わりはありません。 にまたがる場合は、作業の途中で図 17 のようなメッセー ジが表示されます。通常の PC であれば、インストール なお、インストール直後の定のまま PC を再起動する CD を奐して [OK] ボタンをクリックすれば、作業が とランレベル 5 、つまり、自動的に x が起動してディスプ 続行されます。 VMware を使っている場合は、ウイン レイ・マネージャー (gdm や xdm など ) によるグラフィ ドウ右下に表示された CD-ROM のアイコン ( 図 18 の カル・ログインができるようになっています。 左端 ) をダブルクリックすると仮想 CD-ROM の設定 ところが、 VMware 上でゲスト OS として再起動する ウインドウ ( 図 2 ) が表示されるので、 と、 X の起動に失敗して、何回も X の起動を試みようと こからイメー ジファイルを変更します。 します。このままではコンソールでの作業もままならない 15. インストール完了 このようなトラブルが発生した場合はコンソールが ので、 4 をる ) バッケージのインス トール システム上に F を dora ( 0 代をイン ストールする為に必要な情報をす べて収集しました。インストー ルされるバッケージの量に応じ て、すべてをインストールす てしはらく時間がかかりま Thank You! RedHatwouldlike ityforthepast 続行するにはディスク 2 を揮入して下さ、 oneering Ⅳ 0 ⅸ 0K0 0 残リ : 汚分 聞に色 9 ・ li 4.1.14 日 ( 107 (B) インスト ール 0 0 9 sh 物ⅸ新凸 116 UNIX MAGAZINE 2004.9

4. UNIX MAGAZINE 2004年9月号

特集 空調障害との闘い 図 2 己置 窓 ロ 重 5 , 519K[cal] 5 , 289K [ c 酬 1 , 920K [ ca リ 1 , 754K [ ca り ドア 2 ドア 1 図 3 温度の計則点 4 ロ 重 ワ」 3 1 D D D D ドア 2 ドア 1 写真 4 ラック裏熱交換機 と、このように悪条件がまんべんなく揃っているわけで すが、その結果、どのようなことになっているのかをみて いきましよう。 事実 まずは、客観的なデータからみていきましよう。 図 2 は、ネットワーク機器室の機材配置図です。空調は 2 系統で構成されています。ところ狭しと機材が並んでい るわけではなく、どちらかというと右側に集中していると いう印象を受けるでしよう。 設置されている機材から計算した熱量で示すと、ラック 群 A は 1,920K[cal/h] 、ラック群 B は 5,289K[cal/h] 、 ラック群 C は 5,519K[caI/h] 、ラック群 D は 1 , 754K [cal/h] となっています。これらの発生熱量とそれぞれの 位置を考えれば、ムラがあることが分かります。 測定点 2 では 27.1 ℃、測定点 3 では 26.2 ℃、測定点 4 実際に温度を調則すると、床下空調ではないこともあっ 日 では 27.8 ℃となっており、肌で感じられるくらいの温度 て、温度分布のムラが発生していました。図 3 は室内の温 差があります ( なお、測定時の外気胤は 29.1 ℃でした ) 。 度言測点を示しています。測定点 1 では 25.5 ℃ですが、 85 UNIX MAGAZINE 2004.9

5. UNIX MAGAZINE 2004年9月号

図 8 36 : 37 : 97 : 36 : 37 : 97 : 図 9 1 20 : 10 : 40 /etc/inetd. conf および /etc/services 修正 ( 下線部を追加 ) UsePriviIegeSeparation Ⅱ 0 StrictModes no PermitRootLogin 0 ↓ ( 変更 ) #UsePriviIegeSeparation yes # StrictM0des yes # PermitR00tLogin yes /usr/local/etc/ssh/sshd-config のおもな修正点 ( 各行を下線部のように変更 ) ・ /etc/inetd. conf 124 : #time dgram udp ssh stream tcp 図 10 inetd の再ネ用ヒ 24 : telnet ssh ssh 23 : ftp ・ /etC/serVICes PCAdmin 833 $ ps -eaf ー grep inetd wait nowait 23/tcp 22/udp 22/tcp 21/tcp NULL NULL i nt e rnal /usr/local/sbin/sshd sshd —i #FTP . control f00 2689 1793 20 : 14 : 38 Ⅱ 00 0 : 00 .04 /usr/sbin/inetd 0 : 00.03 grep inetd $ kill -HUP 833 さんの環境に合わせて読み替えてください ) 。 UNIX MAGAZ 工 NE 2004.9 です ( 多くのデーモンでは定のリロードを未します ) 。 ように、 ps で inetd をみつけて kill -HUP を送れば完了 あとは、 inetd に設疋を読み込ませるだけです。図 10 の なってください ( 図 9 ) 。 させる成疋を記述します。 /etc/services への追記もおこ こまで設疋したら、 /etc/inetd. conf に sshd を起動 せん。 パーユーザーの権限は、もうひと働きしなければ奪えま ックされても奪われるのは一一般ユーザーの権限です。スー 般ユーザーしかログインできないようにしておけば、クラ らログインできるということは、それだけで危険です。 11 。 " にしています。スーパーユーザーが直接リモートか クトリのパーミッションに問題が起きることがあるので 、 yes" のほうが強度が高いのですが、 SFU 上ではディレ col を、、 2 " だけにするのもよいでしよう。 StrictModes は うなクライアントを使わない場合は、 14 行目の proto- せんが、 SSHv1 のプロトコルを用いる TeraTerm のよ sshd-config は図 8 以外の部分はそのままでもかまいま SSH をサーバーとして利用するには、クライアント側の 端末 (client. localdomain) に秘密鍵を、サーバー側 (sfu . localdomain) に公開鍵を置く必要があります。公開鍵 は、 sfu. localdomain の ~/. ssh/authorized-keys という ファイルに追記します。 鍵の生成は、 ssh-keygen というコマンドでおこなえま す。 DSA 符号を使うなら、、 ssh-keygen —t dsa" 、 RSA 符 号を使うなら、、 ssh-keygen -t rsa" をクライアント (cli- ent. localdomain) 上で実行します ( 図 11 ) 4 生成される鍵は 2 組で、 id-dsa と id-dsa. pub (RSA な ら id-rsa と id-rsa. pub) のようになっており、 *. pub の ほうが公開鍵です。公開鍵をサーバー (SFU 側 ) にコピー し、 ~/. ssh/authorized-keys に追記します ( 図 12 ) 。 もしも事情があってクライアント上で鍵を生成できない 場合は、 SFU 上で生成してもかまいませんが、秘密鍵を クライアントに移すときはかならすフロッピーディスクや USB メモリなどの媒体でコピーしてください。絶対にネ 4 SSHv1 用の鍵が必要な場合は -t rsal のようにします。 0 159

6. UNIX MAGAZINE 2004年9月号

■ SFU の活用 [ 02 ] 図 1 zlib の導入 $ cd /tmp/compile $ tar —zxf -/zlib—l . 1 .4b¯interix $ cd zlib ー 1 . 1 .4b $ ng configure ( 72 行目から図 2 のように -fPIC を削除 ) $ . /configure —shared $ make $ make test he110 wo て 1d large—inflate() : OK inflate() : 五 e110 , he110 ! gzgets() after gzseek: he110 ! gzread() : he110 , he110 ! uncompress() : he110 , れ e110 ! ・ tar ・ gz after inf1ateSync() : he110 , he110 ! $ make install * * * z1ib test Ok * * * inflate with dictionary: he110 , Ⅱ e110 ! after infIateSync() : he110 , he110 ! large—inflate() : OK inflate() : e110 , he110 ! gzgets ( ) after gzseek: he110 ! gzread() : e110 , he110 ! uncompress ( ) : he110 , he110 ! he110 orld $ make test $ make $ . /configure $ make clean $ make install * * * z1ib test Ok * * * inflate with dictionary: he110 , he110 ! zlib—l . 1 .4b—interix . tar . gz 156 ように、 con ⅱ gure スクリプトの 72 行目から—fPIC を削 test で使用される minigzip 力平リ外を起こします。図 2 の イナリが、例外で落ちることがあります。 zlib も、 make てビルドしたシェアード・オプジェクトにリンクされたバ プションには問題があるようです。このオプションを付け 説明したように、 SFU に添付されている gcc の—fPIC オ ド・ライプラリ化するには 1 カ所修正カ必要です。前回も に問題になるところはないと思いますが、 zlib をシェアー 次に、図 1 のように展開してビルドしていきます。とく 図 2 シェアード・ライブラリ化する場合の configure スクリプ ト窈修正箇所 ( 下線部を肖畭 ) SFLAGS=${CFLAGS—"-fPIC ー 03 " } 除し、、 . /configure -shared" として configure を実行し ます ( zlib は autoconf を利用して作成された configure スクリプトではなく、自前の configure を使っています ) 。 なお、 zlib を使用する一部のプログラムは、残念なこと にビルド時に静的リンクをおこなうため、非シェアード・オ プジェクト版のライプラリも必要です。二度手間になりま すが、シェアード・オプジェクト版をインストールしたら、 いったん make clean を実行したうえで再度 . / configure を実行し ( 今度は -shared を付けない ) 、ビルド、インス トールをおこないます。 また、図 1 のなかで /tmp/compile ディレクトリを使 用しているのは、ホーム・ディレクトリカ啌白を含むパス のため、作業に適さないからです ( 8 月号の 121 ページを 参具印。 OpenSSL の導入 OpenSSL も、 Tool Warehouse から取得して導入す るだけです。これも autoconf 由来の configure ではな く、独自の c 。浦 g スクリプトを使っています。図 3 のよ 、 c 。 n g " というコマンドを実行します。なお、シェ うに アード・ライプラリをビルドするには、 LANG=C . /config shared zlib—dynamic のようにします。ただし、このままではうまくビルドでき ないので、 . /config を実行する前に Configure というファ イルを修正します ( 図 4 ) 。これは、 zlib. h の位置をコンパ イラに才韵・くするためです。 なお、 zlib. h が /usr/local/include 以外にもインスト —l/usr/local/include" を適宜 ールされている場合は、 変更してください。 ビルドしたシェアード・ライプラリを利用するため、 LD-LIBRARY-PATH に /usr/local/ssl/lib が含まれ るように . bashrc や . cshrc などの設定を変更してください ( 図 5 ) 。 OpenSSH の導入 OpenSSH も同様に Tool Warehouse から取得しま す。ただし、 OpenSSH の付属ドキュメントに、、 config ー UNIX MAGAZINE 2004.9

7. UNIX MAGAZINE 2004年9月号

図 5 スパースデータを含む NTFS 圧縮 べース・ファイルレコード 標準属性 ファイル名 へテロな環境の基礎知識 その他の属性 図 6 圧縮前の工クステント ( ラン ) 標準属性ファイル名 VCN 0 3 1 2 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 LCN 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 VCN 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 その他の属性 332 333 334 335 工クステント / ラン 17 16 253 254 255 256 工クステント / ラン 9 8 LCN 109 1 10 1 1 1 1 12 工クステント / ラン 圧縮前のクラスタ 図 6 のような MFT レコードがあった場合、圧縮対象の ファイルについて 16 クラスタごとに圧縮の可否を検討す る。この例では、 VCN が 0 ~ 15 、 16 ~ 31 、 32 ~ 47 の 3 つのェクステント ( ラン ) に分割されている。 それぞれの圧縮の可否を検討した結果を示したのが図 7 である。この例では、 1 つ目の工クステントで 8 クラスタ に、 3 つ目の工クステントでは 4 クラスタに圧縮されてい UNIX MAGAZINE 2004.9 る。 2 つ目の工クステントは、圧縮しても 1 クラスタすら 節約できないため、圧縮されずにイ尉寺される。 アプリケーションが圧縮された工クステントにアクセス すると、ファイルシステム・ドライバは VCN が 16 クラス タに収まるかを調べて圧縮の有無を判断する。そして、圧 縮されている工クステントであれば、圧縮を解除したうえ で上位のアプリケーションヘデータを返す。 69

8. UNIX MAGAZINE 2004年9月号

ed によるバッチー 今回は、 Movable Type の *. cgi ファイルの修正に ed を 使いました。 ed はラインエデイタですが、ラインエデイタなんて いまどき使わないと考える人も多いと思います。しかし、既存の ファイルに対して機械的に修正を加えるときなどは、図 28 のよ うにかなり強力です。今回の作業は、 13 個ある *. cgi から 1 つ (mt-db-pass. cgi) を除き、 : 頁行の Perl のパスを変更すると 図 28 Movable Type の展開 ( 下線部が入力 ) 1 引 /usr/bin/perl l/usr/local/bin/perll cat > /tmp/perl . patch inflating: Iib/MT/118N. pm $ unzip &/118N. zip cd MT—3.0D—fu11—1ib-ja—b3 $ unzip -/MT-3.0D-fu11-1ib—ja—b3. ZIP cd /tmp/compile > ed ${cgi} く /tmp/perl ・ patch $ fo て cgi in ( ls * . cgi ( ; do AD ( Ctrl 十 D で終了 ) 742 > done 9 : Defau1tLanguage ja ( デフォルトでこうなっている ) 図 29 mt. cfg の最 ( 邸艮おこなうべき言下線部のように編集 ) いうものです。そのような作業も、正規表現による置換の指定で 簡単にできるのです。 ed を対話的に使う場面はたしかにほとんどありませんし、・麦 もそうあるとは思えませんが、このように何かを一括して処理する 場合には強力なツールだと思います。、 man ed" とすれば使える 編集コマンドの角が見られます。参考にしてください。 言 748 8287 8293 777 783 18 744 750 ( 上記の数字は滝 3 の場合。正式版と同じとはかぎらない ) ( csh / tcsh の場合は f 。 r の部分を以下のようにする ) % foreach cgi ('ls * . cgi') foreach> ed ${cgi} く /tmp/perl. patch foreach> end 18 : CGIPath http://localhost/mt/ ( mt にアクセスする URL を書く ) ObjectDriver DBI : :postgres Database barmt DBUser bar DBHost localhost などを使って展開します ( 図 28 ) 。 にのまま追記する ) ( データベース名を指定する ) ( ューザー名を指定する ) ( localhost でよければこのままでよい ) 展開したら、 mt. cfg という定義ファイルに修正を加えま す。最低限おこなうべき設定を図 29 に示します。設定が 完了したら、適当なインストールバスに移動します。 $ cd /tmp/compi1e/MT—3.0D—fu11¯1ib-ja—b3 $ mkdir /usr/local/apache/mt $ mv * /usr/local/apache/mt こでは、 /usr/local/apache/mt を使用することにし ます (http://localhost/mt/mt.cgi でアクセスできるよ うにします ) 。また、データベースにアクセスするユーザー は bar 、データベースの名前は barmt だと仮定します。名 前はなんでもかまいませんが、それを mt. cfg に記述して ください。データベースは図 30 のように作成します。 mt. cfg には Movable Type の設定力第生されているた UNIX MAGAZINE 2004.9 め、外部から参照されるとシステムの構成が漏れ、思わぬセ キュリティ・ホールになる可能性があります。そこで、外部 から取得されないように、図 31 のような内容の . htaccess を作成します。こうしておけば、 mt. cfg にアクセスしても 拒否されるようになります。ほかにも取得されるべきでは ないファイルがあれば追記しておきましよう。 usr/local/apache/mt が http://localhost/mt/に マッピングされるように、 httpd.conf に図 32 のように設 定を追加します。 httpd.conf を修正したら、 httpd に設疋を再読込みさ せます。コマンドラインから、 $ /usr/local/apache/bin/apachectl reload とします。 169

9. UNIX MAGAZINE 2004年9月号

58 : 59 : 60 : 61 : 図 20 403 : 404 : 405 : 406 : 407 図 19 src/bin/psql/Makefile 窈修正点下線部を削除 ) psql : $ (OBJS) $(libpq_builddir)/libpq ・ a $(CC) -static $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) ー 0 $@ help . 0 : $(srcdir)/sql—help. h src/backend/libpq/pqcomm. c 窈修正点 ( 404 行目を下線部のように変更 ) #ifdef SCO_ACCEPT_BUG ↓ ( 変更 ) #if defined(SCO—ACCEPT_BUG) Ⅱ defined(--INTERIX) * UnixWare 7 十 and OpenServer 5 . 0.4 are known tO have this bug , but i t 404 行目の ifdef に、 --INTERIX の場合を j 助日します。直後のコメントにあるような SCO UnixWare のバグは lnterix 3. x にもあります。ソケット関 連のいくっカバグ ( というより仕様 ) は UnixWare と lnterix では似ています。ここを修正しないと pg-hba. conf カ症しく機能しません。 図 21 src/interfaces/libpq/fe-misc. c びメ修正点 ( 下線部 おロ ) 249 : } 250 : #ifdef _INTERIX # include く bind/arpa/inet . れ > #endif / * INTERIX * / 251 : / * 252 : * pgGetInt /usr/local/include/bind/arpa/inet. h にある ntohs/ntohl の定 義を取り込まないと pgGetInt() カ澗違ったデータサイズを返し、通信カ皸 綻します。 はそのままでビルドすらできません ( いったい誰が検証し ているのでしよう・ ) 。動かなくては話にならないので、 せっせとバグを探しました。 バグは 3 カ所にあります。 1 つはビルド時のもので、 psql をビルドできないというものです。 libdl を使うので すが、 SFU には libdl.a がありません。 psql を—static でビルドすることはできないのに、 Makefile は—static でビルドするようになっています。この問題を図 19 のよ うに修正して回避すればビルドできます。 ビルドはできても、このままではデータベースカ駛いも のになりません。図 20 ~ 21 のように、サーバー側とフロ ントエンド側でバグを修正しなければなりません。バック 工ンド側では、 UNIX ドメインソケットの使用時に、 ac- cept() が sockaddr 構造体の sa-family に AF-UNIX を正しく設定せずに 0 を返すので、これを本来あるべき AF-UNIX に置き換えるように修正します ( 同様の問題は UnixWare にもあるらしく、その対策コードがあるのでこ れを利用します ) 。 pg-hba. conf によるアクセス制御では、 AF ー UNIX が返らないとローカルからのアクセスとみなさ れません。そのためローカルに関するアクセス制御が働か UN 工 X MAGAZINE 2004.9 なくなり、結果としてアクセス不能になります。 また、フロントエンド側では、サーバーとデータ交換をす る部分で、メッセージの長さなどを取得する pgGetInt() が利用する ntohs() 関数のプロトタイプが正しく読み込 まれないことが分かりました。そのため、コンパイル時 に正しいキャストが挿入されず、結果として誤ったデー タ長を返し、くるはずのないデータを延々と待ち続ける という状態に陥ってしまいます。これは、図 21 のように /usr/local/include/bind/arpa/inet. h を読み込ませる ことで対処できます。 なお、 postmaster や psql などのコマンドを動作させる には、 LD-LIBRARY-PATH に /usr/local/pgsql/lib が含まれている必要があります。 . bashrc や . cshrc に修正 を加えておきましよう。修正したら、再読込みを忘れない でください ( 図 22 ) 。 以上の修正を加えることで、 PostgreSQL か動作するよ うになります。 PostgreSQL の設定 ■ SSH と同様に、 PostgreSQL はインストールしただ けでは利用できません。データベースを初期化して、実際 に使うデータベースを作成しなければならないからです。 とりあえず、データベースの置き場所として /usr/local/ pgsql/data を使用することにします 8 。ここにデータベ ースを置くように初期化し、次にサーバーを起動して、最 後にデータベースを作成します ( 図 23 ) 。 8 /var/lib/pgsql/data や /var/spool/pgsql/data などでもかま いません。 165

10. UNIX MAGAZINE 2004年9月号

■ SFU の活用 [ 02 ] #ifdef snprintf (pw—dir , PW—DIR—MAXLEN , _INTERIX return (NULL) ; #endif record—failed—login(user, #ifdef CUSTOM_FAILED_LOGIN * Check if the user is a110wed to 10g in via ssh. _INTERIX * / #endif / * static char *pw—name ; static char pw—dir [PW—DIR—MAXLEN] ; #define PW_DIR_MAXLEN 256 #ifdef _INTERIX int auth—debug—init ; Buffer auth—debug ; / * Debugging messages * / 図 6 auth. c 窈修正箇所下線部おロ ) 89 : 90 : 91 : 92 : 93 : 94 : 519 : 520 : 521 : 522 : 523 : 524 : 525 : If user is listed "/dev/fs/C/Documents and Settings/%s" strchr (pw—>pw—name , (pw-name pw—name + 1 : pw->pw—name) ; pw—>pw—dir = pw—dir; #endif / * _INTERIX * / if ( ! allowed—user(pw) ) return (NULL) ; 526 : #ifdef HAVE_LOGIN_CAP 図 7 OpenSSH の取得と導入の手偵 $ wget ftp: //ftp. interopsystems . com/src/openssh/openssh-3.8.0.1.2—interix. tar ・ gz $ tar —zxf -/openssh—3.8.0.1.2—interix. tar ・ gz $ cd /tmp/compile $ cd openssh—3.8.0.1.2 $ ng auth. c ( 図 6 の修正をおこなう ) $ make $ make install この、、マシン名十 " の部分がないようなので、 扱えるようなコードにした。 以上の変更を終えたらビルドします。ビルドとインスト ールの手川頁は図 7 のとおりです。 OpenSSH の言又疋 どちらのケースでも 158 れているので盗用の危険は少ないのですが、 8 文字程度の ードでログインする場合でも、ネットワーク上は暗号化さ 待どおりのセキュアなシステムを構築できません。パスワ 定しなければ、パスワードでログインできてしまったり、期 OpenSSH は導入したあとの設定が重要です。適切に設 パスワードでログインできるということは、総当たり的な 攻撃に弱いことを意味します。十分に長いパスフレーズを 利用するのは、こうした攻撃に対する備えでもあります。 OpenSSH の設定は、 /usr/local/etc/ssh/sshd-con- fig でおこないます ( ファイルはインストールした時点であ りますが、修正しないとうまく動きません ) 。このファイル に、図 8 のような修正を加えます。 なお、以下ではサービスを提供するマシン (SFU がイ ンストールされている Windows マシン ) を sfu. local- domain 、リモート側で sfu. localdomain にログインす るマシンを client. localdomain という名前にします ( 皆 UNIX MAGAZ 工 NE 2004.9