Linux Gazette 2005年1月投稿記事
目次
有名大学の「情報コンピュータ科学」で工学士課程四年目の始めに、物理の実世界でエンジニアとは何かと自問した。この四年間を振り返るとき、試験の合格、宿題の提出などに汲々として来たが、エンジニアの本当の意味は隠されていた。エンジニアとは一体何なのだ?
辞書の定義では、エンジニアとは工学専門の熟練者となっている。更に工学を調べると、工学とは人間の需要に対する科学の応用である。これは有用な対象物又は過程の設計に適用される知識、数学及び実体験により達成される。工学の専門的実行者をエンジニアと言う。となっている。
ここまでは良い。物事のあり方に興味を持った。結局この厳しい四年間で私が求めていたのは、適切なエンジニアの定義だった。だが問題は別の領域にある。上の定義で引用する知識とは何だろうか?存在する物(及びそれに伴う過程)、その存在理由に関する知識、存在しない物、存在しない理由に関する知識。知識とは、基本的に学問なのだ。さらに、標準の哲学的定義は、学問は「利用可能な知識を最良利用すること」から構成されると言う。
だが物とそれを囲む過程に関する利用可能な知識は、利用可能な知識のない物と過程に関しては非常に少なく、微細で、重要でないと思われる。人間は皆何故似ていないのか?同じように見え、話し、歩かないのは何故か?考えたこともない簡単なことに沢山の疑問が湧いた。多分哲学が物の在り方をを定義してくれると思って、哲学に向かった。
哲学(ギリシャ語のphilosとsophiaで意味は「学問の愛好」)は、歴史的にも哲学者によっても各様に解釈されており、決定には超哲学が必要である。哲学は、現実、知識、意義、価値、存在、真実など基本的事項についての理解、知識又は学問の一種を目的とするとの認識は出来るけれども、これらが、弁証的即ち対話的方法を追及するか否かは明らかでない。細かい定義はさておき、哲学は前述の私の疑問の幾つかを見出そうとしている。簡単に言うと、次のように理解することが出来る。東洋哲学と西洋哲学(良く分かってはいないが)の詳細に踏み込まなくとも、関心があるのは「応用哲学」である。
これが実際に関心を引く。これは哲学的考え方の実用的応用で、実生活とその社会全体に対する関わりに役立つ。科学からの抽象ではあるが、実用なしに哲学は存在しないからだ。哲学が入り込み、適用されて有用であることが判明している存在論、政治哲学、応用道徳、認識論その他の応用を離れて、最も感動的な重要部分は、哲学が、それ自体の知識部門であると十分には理解されていない分野の探求であると思われる。これが全体として物の全体世界を開くことが出来ると思われる。
有名な物理学者リチャードP.ファイマンが言うには「コンピュータ科学は、数百年もの歴史がある物理学ほど古くない。だが、これはコンピュータ科学者の皿にあるものが物理学者より著しく少ないことを意味しない。若いけれども遙かに強力に育てられた」。コンピュータ科学は、アルゴリズムの抽象的解析及び形式文法から、プログラム作成言語、ソフトウエア及びコンピュータ・ハードウエアにわたる計算関連の各種項目を包含する。しかし、コンピュータ科学が電気工学に根ざすため、コンピュータ科学工学の課程は、基本的に数学、電気回路を扱い、これら曖昧な(時には面倒な)中身を作業台上に載せる。兎に角、最後にはコンピュータ科学の二つの分野に分かれる。コンピュータ科学工学とソフトウエア工学だ。コンピュータ工学は、コンピュータ・ハードウエアの解析、設計、構築で、ソフトウエア工学は、有用ソフトウエアの解析、設計、構築、試験を重視する。簡単に言うと、コンピュータ科学は計算の数学を扱い、ソフトウエア工学は実用アプリケーション及びコンピュータ科学と数学の中間にある最初の扱いの関連を扱かう。これにより大きい疑問が生じる。ソフトウエア工学とプログラマの間に相違はあるのか?
イエスだ。辞書の定義では、「ソフトウエア工学はソフトウエア作成の実行である。この専門化をソフトウエア・エンジニアと言う。コードを書いてソフトウエア工学の原則にしたがわない人は正確にはプログラマ、開発者又はソフトウエア芸人と呼ばれる」となっている。
最後の文言が正しいとは思わないが、昔から思っていたことの一つが明らかになったと思う。大きいオープンソース(無料ソフトウエア)プロジェクト開発者(Linux, FreeBSD, OpenBSDその他で働く人)が自分達を、ソフトウエア工学熟練者としないで「オープンソース・プログラマ」及び「オープンソース開発者」と呼ぶのを好む理由は何か?それは、多分(世界中の大学で教える)ソフトウエア工学の最重要の基礎の一つが、自分自身を商業分野に保ち、商業的成功を収めるコード片を作り、無料/公開/オープンソース分野を見下ろすことであろう。ほとんどの大学が、その学生に厳格な所定書式で宿題を提出することを求める。私自身、Openoffice.org書式で宿題を提出したところ、受領を拒否され、.docで書き直した。
聞きたいのは、世界中のソフトウエア工学で教えることではなく、ソフトウエア工学を教える信条の態度である。それはひどく商業化されていると思われ、卒業のとき学生は、優れたソフトウエアであるだけの無料領域のツール又はソフトウエアを使うのを恐れる。世界中の有名大学で「UNIXシステム管理」の四年課程で、ソラリス、IRIXその他市販UNIXに関するUNIX管理を扱う。無料/公開ソフトウエアを用いるLinux を教える専門コースは皆無だと思う。私の大学でもソラリスを走らせるSun UltraSPARCで教えられた。Red Hat Linuxが出て事態は変わったかと思われたが、教授は依然としてソラリスに戻りたがっている。
人々が元に戻ることを教えるのがソフトウエア工学の規則、定義、一般行動である。時間通り、予定通り、必要な時にだけ物事をおこなうのが、ほとんどの大学とソフトウエア工学大学院で通常教える圧倒的な原理である。重点は、優れたソフトウエア作成の隠された芸である創造性にはなく、所定時間枠内に厳密に入る平凡なソフトウエア開発に専門化されている。その結果、ソフトウエアは、高級ソフトウエア開発を専門としないマイクロソフト社に牛耳られている。その代わり(過剰評価ソフトウエア・エンジニアを含めて)バグだらけの平凡なソフトウエア製品が入り込み、コード−テスト循環は常に怠けていて、彼らの作る平凡なソフトウエアが市場でのさばっている。一度ならず再三再四である。
理想的なプログラマ/開発者は哲学者でなければならない。これは彼らが国のGDPに与えるインパクトではない。重要なのは彼らが社会に与えるインパクトだ。例としてインドを取り上げよう。インドは(中国とともに)毎年数十億米ドルにのぼる外国投資のお陰でGDPが大きく成長している。特に、ここ数年、米国におけるソフトウエアの規模縮小とともに、インド中国など人件費の安い海外に仕事が移っている。これらがインドや中国などのように、社会経済に影響しているかどうか、の問題は残しておく。インドはここ数年で、優秀なソフトウエア・エンジニア育成を終了したが、数千の平凡なプログラマが貪欲な夢を持って企業におびき寄せられている。ここで重要な疑問は、米国からの海外移転がインドや中国などの経済発展に影響したか逆にどのように作用したかでなく、もっと重要なのは、インドや中国の社会にどのよう影響したかである。インドの田舎、電気もなく、学校の月謝を払うには雨期を待たねばならないところ、に住む人々が、この海外移転で社会的影響を受けただろうか?米国、インド、中国のソフトウエア全盛が、彼らに何か意味があるだろうか?社会経済的に恩恵を受けただろうか?
これらは誠に重要な問題だ。国の地位に対し社会的にも経済的にも長期的に恩恵を与えるのは、商業利益のためのソフトウエアやハードウエアの単なる作成ではないと思う。全体に影響することの出来るソフトウエア及びハードウエア製品を断固たる積極的で楽観的な目的で作成することだ。残念乍ら、ほとんどの工学学生、大学院生は、勉学の課程の間に専門化の方向を確定している。周りを見回して、外界の出来事、普通の人間に対する技術の意味など、我々のほとんどが考える暇を持っていない。最も重要なのは、作業提出の規定日程と、プロジェクト完成である。
Knoppix 3.6 をハードドライブにインストール
バージョン3.6をダウンロードしてから六週間後に、Knoppix を新旧三つのコンピュータのハードドライブにインストールした。これをおこなうとCDが約3ギガの内容に拡張する。HDへのインストールは誠に簡単である:
a) CDからブートする.
b) ルートシェルを開く (ctrl - alt - F1).
c) knoppix-installerとタイプ.
d) 指示通りに進む.
swapパーティションとext2ブート・パーティションが必要である。これはSuSE installer cuzを用いて設定した。Knoppix一つだけが働かなかったが、単なる故障だった。
これが良い理由を示す:
1) 生のバージョンを用いて、インストール前に働くか否かを試すことが出来る。
2) 設定に関する限りハードドライブがSuSE 9.0用には古いものでも困難はない。事実走らないものは一つもなかった。
3) 普通に必要とするプログラムのほとんどが入っている。
4) 立ち上がりが速い。
5) 一枚のCDから迅速インストールする(英語版とスペイン語版の両者がある)
余り明白でない点:
6) ビルトインで LTSP ががある。
7) 一人が生ディスクを用いて、HDインストールに移植すると、すべてが同一になる(ブートローダとログインを除く)。
大学の学期末試験が終わって時間が出来たので、
TIMES World University Rankings, dated November 5th 2004をダウンロードして世界の上位100大学で使用されているOSとウェブサーバ・ソフトウエアを調べ、
NetCraft で大学を追跡して集めたデータを解析した。た。以下はその内訳である。
1.上位100大学で最も普及しているOSは:Sun Solaris
2.二位のOSは:Linux
正確な使用数は:
1.Sun Solaris (7/8/9): 47
2..Linux:31
3..FreeBSD:6
4..Microsoft Windows 2000:5
5.Compaq Tru64 UNIX: 2
6.Microsoft Windows Server 2003: 2
7.IBM AIX2 2
8.Microsoft Windows NT/98: 1
9.BSD/OS: 1
10.未詳:3
未詳OSとは、http://www.netcraft.com でウエブサーバ・ソフトウエアをホストするため使用するOSを示すことが出来なかったものを意味する。
以下OS毎に、大学の内訳を示す
1.Solaris: Harvard University[1], University of California, Berkeley[2], Cambridge University[6], Yale University[8], Princeton University[9], University of Chicago[13], University of Texas (Austin)[15], Australian National University[16], 北京大学[17], National University of Singapore[18], Columbia University[19], University of California (San Diego)[24], New South Wales University[36], Toronto University[37], Carnegie Mellon University[38], Sydney University[40], Indian Institute of Technology[41], Hong Kong University of Science and Technology[42], University of British Columbia[46], Heidelberg University[47], Edinburgh University[48], Queensland University[49], Nanyang University[50], Duke University[52], Brussels Free University[54], Sussex University[58], Purdue University[59], Erasmus University Rotterdam[64], Georgia Institute of Technology[65], Macquarie University[68], St. Andrews University[70], Northwestern University[63], Boston University[65], Curtin University of Technology[76], Vienna Technical University[77], Delft University of Technology[78], New York University[79], Warwick University[80], Minnesota University[82], Chinese University of Hong Kong[84], Rochester University[86], Case Western Reserve University[88], Alabama University[90], Bristol University[91], Hebrew University of Jerusalem[93], King’s College London[96], Queen Mary, University of London[100].
2. Linux: California Institute of Technology[4], Oxford University[5], Stanford University[7], ETH Zurich[10], London School of Economics and Political Science[11], McGill University[21], John Hopkins University[25], University of California at Los Angeles[26], Ecole Polytechnique at France[27], Pennsylvania University[28], 京都大学[29], Ecole Normale Superieure at Paris[30], Michigan University[31], Ecole Polytechnique Federale de Lausanne at Switzerland[32], Monash University[33], University of Manchester[43], School of Oriental and African Studies, SOAS[44], Université catholique de Louvain at Belgium[53], University of Adelaide, South Australia[56], Université Pierre et Marie Curie, France[57], Brown University[61], TsingHua University[62], Copenhagen University, Denmark[63], Wisconsin University[66], Paris1 Sorbonne University, France[71], Trinity College, Dublin[87], Malaya University, Malaysia[89], Lomonosov Moscow State University[92], Western Australia University[96], Amsterdam University[98], Munich University[99].
3. FreeBSD: University College London[34], 東京工業大学[51], Technische Universitat Berlin[60], University of California, Santa Barbara[72], Eindhoven University of Technology, The Netherlands[83], Technical University Munich[95].
4. Microsoft Windows 2000: Cornell University[23], University of Massachusetts[45], Auckland University[67], Washington University in St. Louis[74], Yeshiva University[81].
5. Compaq Tru64 UNIX: Melbourne University[22], Gottingen University[85].
6. Microsoft Windows Server 2003: Imperial College, London[14], University of Illinois[35].
7. IBM AIX: University of California, San Francisco[20], University of Vienna (Universitat Wien)[94].
8. Microsoft Windows NT/98: 大阪大学[69].
9. BSD/OS: 東京大学[12].
10. 未詳: Massachusetts Institute of Technology[3], 香港大学[39], Royal Melbourne Institute of Technology(RMIT) University[55].
ウエブサーバ・ソフトウエアではApache が優勢である。上のうち82大学が教育/研究サイトに用いている。他の大学が使用しているウエブサーバ・ソフトウエアには、マイクロソフトIIS, Stronghold, AOLserver, Zope, NCSA HTTP, Simweb その他が含まれる。
上の結果はやや衝撃的である。LinuxがSun Solarisに勝って良いのに2位に甘んじている。Solarisを使う大学はSolaris 10よりむしろSolaris 8又は9を好む。LinuxがSun Solarisに遅れを取る理由は分からない。市販OSの土俵に革命をもたらす無料ソフトウエアだと思っていた。重要なのは、Linux が、世界に商業障壁がなくプログラマとソフトウエア作者が自由に連絡してコードとアイデアを交換するのに慣れていた時代の、無料ドメインソフトウエアのUNIX理念にしたがっていることだ。ほとんどの大学が市販UNIXであるSolarisでなく、無料Linuxを走らせて良い筈なのだが?
この調査は基本的に、私の以前の記事にご意見を下さった読者を目標にしている。教育研究分野はLinuxが支配している筈だから、ここでLinuxの仕事をする人を見付けてはとのご意見を頂いた。そのための調査だったが、結果は半分近くの大学がLinux でなくSun Solarisを使っている。多分Solarisが安定で、それを担うプラットホームがしっかりしていて、利口な人達は最善を使うのが好きだからかも知れない。
Drupalを使う理由
色々な理由があるが、
SSC サイトに関してはDrupalの機能がオンライン公開の要件に適している。このLinux Gazetteでは、他の多くのサイトよりも多くの機能を使用する。これはコミュニティサイトなので、各ユーザがブログを使ってフォーラムに参加することが出来るからだ。DocのIT Garageも同様だが、LinuxGazette程多くのgoodyを持っていない。
他のSSCサイトでは、この機能の使用はすくないが、目につくより多くのものがある。情報は全部データベース(我々の場合は
MySQL )に記憶されるので、スペースを食う固定ペイジは沢山持たない。情報はデータベースに押し込まれ、これが−要求に応じて−御覧のウエブペイジを作成する。これには沢山の処理がある。我々はデータベースをパックアップしてサーバ自体では少ししかスペースを使わない。ユーザには、相違が分からない。
Drupalはまた、容易にコンテンツの管理をおこなう。正直のところ、初めて
taxonomyを見たとき、私は注意して見なければならなかった。極めて強力なので、あらゆる種類の「コンテンツ分類」が出来る。例えば、これを「記事」に入れ、さらに「一般関心」「システム管理」「興味」にファイルしている。
このことはこれら
カテゴリを見ると、この記事を見ることが出来るのを意味する。だが、データベースに記憶するのは一度だけだ。情報を見付け易くなる。オンライン公開のためには、これが極めて重要なのだ。
Drupalはまた、成熟したプロジェクトである。暫くの間に沢山使われるようになった。サポートは
フォーラム内のDrupalサイト上で、サイトの検索を通じて優れており−最も良いのは文書にユーザコメントが付くことである。
容易なインストレーション
システム要件は全く明快だ:
・PHP スクリプト (Apache を推奨)を走らせることの出来るウェブ・サーバ
・PHP 4.1+ (Drupal, 4.5.2の最新版用)
・PHP-サポートのデータベース・サーバ(MySQLなど)
予告
来週、Drupal CMSの別の分野の詳細と若干の事項を説明する。
最近のコンピュータのソフトウエア/ハードウエア産業の著しい発展により、新たな疑問が生じた。Linux を宣伝するIBMや、所有権OSソラリス10の無料解放を発表したサン・マイクロシステムなど、企業が無料ソフトを(Linux ドメインで)承認する意味は何だろうか?世界中には無数のGNU/Linuxファンがいて、上記の動きは非常に歓迎されたけれども、企業のこの承認には細かく見ると本当の悪魔が隠れている。重要なのは、IBMやサン・マイクロシステムなど商業的に成功した企業がLinuxの促進を決めた理由だ。何が目的か?深く考察すると分かる。
IBMについて考えよう。IBMは単純に(OSとしての)Linuxや至る処にあるGNUソフトウエア製品を宣伝しているのではない。その所有権ミドルウエア・プラットホーム上で宣伝しているのだ。OS戦争でマイクロソフトやHPに負けるて以来、これらと別の道を歩むのはIBMだけと思われた。他の企業がアプリケーション・ウエアの分野でマイクロソフトと戦おうとしたのに対し、IBMは、アプリケーション・ウエアからミドルウエアに移行することを決めた。IBMは長い製品系列を切り捨てて、Tivoliを生き返らせ、WebSphereアプリケーション・サーバ一式を立ち上げてマイクロソフトと戦う決心をしたので、ミドルウエア・サーバ・プラットホーム上でWindowに対する有力な代替品としてLinux を販売している。IBM幹部はこの発議で重要な目的二つを果たそうとした:(1)アプリケーションウエア・プラットホームでマイクロソフトと競合すること。(2)近い将来マイクロソフト・プラットホームの顧客をおびき寄せることである。言い換えると、IBMは、オープン情報技術のツールが近い将来、所有権事業に強力な競争力を与えると考えているのだ。
IBMのモットーを検討して見よう。Linuxその他の無料ソフトウエアを宣伝する背後のモットーは「UNIXの信頼性とインテルの経済性」であると思われる。普通の人はこれを「遂に巨人IBMも動いた!」と思うだろうが、これは全く間違っている。IBM幹部が使っているのは古い事業戦略の一つだ。「ミドルウエア又はアプリケーションウエアで戦っているときは、敵の失うものは多いが自分は何も失わない中立地帯に引き込むことだ」と言う。これに従ってIBMは、現在マイクロソフトと戦っているミドルウエアで、Linux を宣伝している。Linux とGNUに基づくソフトウエアをミドルウエア上で用いて、IBMは、注意をOSからミドルウエアに向けようとしている。それを論じるにはIBMのWebSphereアプリケーションが不可欠である。これは自国の主力業者が他国で戦うとき国家が取る戦略である。例えば、米国がベトナムに負けたのはソ連がベトナムに加担したからだ(ソ連は自国で戦っていないので失うものはない)。同様にソ連は、米国が加担したためアフガニスタンで負けた(米国は自国で戦っていないので失うものはない)。IBM、HPその他の利潤目的企業がしていることは、主な競争相手を中立地帯に引き込んで大騒ぎすること。これで投資とリスクが最小になって、最適の結果が得られる。
IBM幹部に、IBM-AIX とIBM OS/390プラットホームを代えて、製造と販売契約全部をを停止したいのだが、と言ったら直ちに真相が明らかになる。完全に拒否される。世界のサーバ市場で競争相手と競合するとき、IBMに中立の土俵は要らない。IBM-AIXのお陰で市場では(Sun Solarisに次いで)二番目に多く使われる市販UNIXの地位を占めているからだ。ミドルウエアでマイクロソフトと戦うことになるとき、Linuxが名分のための最良最小の投資となる。理由は簡単だ。IBMが大衆をマイクロソフトからおびき寄せて、ミドルウエアのリーダになることに成功すれば、マイクロソフトのように、商業利益が最大のアプリケーションウエアに移動するだろう。これから先、IBMの望むときに、IBMはLinux の宣伝を停止するだろう。言い換えると、IBMは今の処、所謂るミドルウエアOSプラットホームを持っていないので、アプリケーション・ウエアで優位に立つマイクロソフトと戦って新たなアプリケーションを開発するのにLinux が安価な代案になる。この必要が満たされる時を、IBMは待ち望んでいる。
ここでサン・マイクロシステムのソラリス「無料」解放の公式発表を考える。「無料」で使用する権利には、商業利用、セキュリティ修復、登録による更新が含まれる。基本サービスパケージ(CPU当たり年間120米ドル)は、90日のインストレーション及びコンフィギュレーション・サービスと同時にシステム当たり1名の熟練技術者オンライン指名が加わる。標準サービス(CPU当たり年間240米ドル)は、5x12 電話サポート、Webコース一つ、オプションの訓練を含む。最後に、プレミアム・サービス(CPU当たり年間360米ドル)は、7x12 電話サポートと追加の最新技術、教育サポートに拡張する。
サンのこの動きの主な動機は、Red Hatと同じである。Red Hatは、有料multi-tiered加入サポート付きの自社ソフトウエア無料版を提供する。サンも同じことをしようとしており、以下の特典が含まれる:
1.新旧サン顧客は、コピイを無料でダウンロードし、試験を条件に展開し、直ちに意見を述べることが出来る。要求があれば、次のリリースで変更をする。
2.他のUNIX及びLinuxユーザは、コピイを無料でダウンロードし、試験を条件に展開し、直ちに意見を述べることが出来る。この方針を用いて、サンは主要競争相手Linuxと戦うのにGNU方法を用いると思われる。最も広く使用される市販UNIXのコピイを各人が獲得することが出来ると、殆どの最新kernelが重要アプリケーション取扱に最適化され、Linux と言う名のUNIX複製品を必要とする「無料」に死活を制せられるのではなかろうか。これがソラリス10を無料で開放する主な狙いである。
3.「試験版」で有用なものを買った人が皆知っているように、ソリューションに価値があり、期間限定で無料で価値を経験すると、期間経過後にそれを買うのは間違いない。ソラリス10を使い、好きになり、ずっと使い続ける。
殆どの人は、利潤目的企業がLinux と無料ソフトウエアを宣伝する主な動機を見逃していると思われる。彼らは、無料ソフトウエアやカリスマ的なGNU理念に愛着を持っているのではなく、企業世界で他の競争相手に対する高度で高価な闘争を勝ち抜くため探している最低投資要因に関心があるからである。必要を満たしたら、Linuxその他の無料ソフトウエアの宣伝を止めるであろう。最後の日は、問題のナスダックで、殆どの利潤目的企業の持っている理念は単純だ。「出来るだけ大きい市場占有率を獲得するためには、無料ソフトウエア理念を市場で使うことも厭わない」.
happy meals(ハッピイミール:マクドナルドの子供向け食品)は皆が好きだ。皆でなくとも大抵の人が好きだ。腹一杯になるだけでなく、直ぐに持って来るし、何と言っても値段が安い。只に近い。だが長い目で見て、ハッピイミールは普段の食事の代わりになるだろうか?大部分の人は反対意見だ。。
答は簡単だ。Linuxは極めて頑丈な
UNIX-一族だ。基本的にはIntel 32ビット・プラットホーム用に設計されており、書き下ろしではあるが、安定性、保証及び成熟UNIXのサポートに欠ける。デスクトップの舞台で、過去13年ほど(1991年以来)Linuxが与えた影響は小さい。
Microsoft Windows OS は、相変わらず最強で、時間が経つと共に地歩を固めている。Linux がMicrosoft Windows OSに千年も遅れていると思われる主な要因は、既に働いていて存在するソフトウエアとの互換性、第三者ソフトウエアとドライバが豊富なことにあり、もっと重要なのはユーザの親しみ易さにある。、Windows は、小学生であろうと、サイバー狂であろうと、大学の教授であろうと、誰にも役立つ。短く言うと、Linuxは、デスクトップ舞台に関する限りMicrosoft Windowsの敵ではない。
低領域、中領域、及び大型(重要)サーバとワークステーションを見てみよう。テラバイトの情報と数百万ドルの投資を扱う事業は、Linuxを走らせるPentium付きの弱いサーバよりも、
IBM サーバ又はSunFireサーバドメインで発足する。市販ソフトウエアを走らせる市販ハードウエアは、最良の選択と思われる。結局、所有権会社は年中無休のサポートを提供するが、これはLinux社会では公式には出来ない。その上、Linux kernelがその辺にある市販UNIXの何れよりも優れたことはない。Sun Solaris, IBM-AIX, HP-UX, SGI-IRIXシステムは安定で、特定用途に専門化しており、もっと重要なのは、災害時に個別クライアントに対するサポートを約束している。
だとすれば、Linux の最終決算は何だろう?デスクトップ舞台でMicrosoft Windows 程良くないとすれば、最高級専門サーバ市場で市販UNIXほど良くはない。では、何処で生きるか?哲学的に言えば、Linuxは良いハッピイミールのようなものだ。Windowsより少し安定で、ウィルスが少なく、Windowsのように何度もインストールし直す必要はないが、セキュリテイは余り重要でなく、自分のサーバを自分で修理することが出来るので、自分の予算を食う。そうしてハッピイミールを楽しむことが出来る。Linuxはお助け人だ。
Linux は、低級から小型サーバ上で市販UNIXの代替品になる。デスクトップ用には良い選択とは言えない。まして生死の状態を支配するサーバを走らせるには最悪だ。
したがって、我々は重要な別れ道に差し掛かる。Happy mealsも良いが、出来掛けだったらどうだろうか?私なら、出来掛けのHappy mealsよりお茶だけの方が良い。他の人も同じだろう。Linux は、何時でも生煮えの感じだ。kernelの手直しや書き直しは年中で、何時あるかも分からない、もっと重要なのは、Torvalds氏がどのコードをkernelに挿入しどれを削除するかを何時決定するか分からないことだ。究極では混沌としており、kernelの運命は数人が握っているというのがLinux の同義語かも知れない。
販売については、余り言わない方が良い。Linux 馬鹿がこう言っているのを聞いたことがある。「Linux には百万人の母親がいる。Linux は百万の料理人が作った料理だ。独特の方法で販売を象徴しているので販売の必要がない品物だ」。独特の方法を考えようとも思わないが、彼は古い諺を忘れている。「船頭多くして船山に登る」。これはLinux にも当て嵌まる。その社会の一部は移植性を目標にする。別の人は拡張性を目指す(即ち、水平及び垂直の機能向上性)一方では安定性を目標にしている。どれが現在の目標なのかは言い難い。年の末に、実際我々が受け取るのは、バナナや干しぶどうが沢山入った生煮えのアップルパイで、香りは良いが旨くも何ともない。
Happy mealのようなもので、少しも悪くはない。そこに実際にいる多くの人、特にナスダックの厳しい人達が怒るのは、今のLinux が生煮えで、料理長は技術進歩に重点を置いて製品を売ろうとしていることだ。このhappy mealを担当する料理長が、これからの数年間で自分達の行動を纏めなければ、Linuxは間もなく忘れられる生煮えのhappy mealになってしまうだろう。
執筆者について
Subhasish Ghoshは、現在モスクワ電力技術研究所(Moscow Power Engineering Institute)(技術大学)の情報コンピュータ科学の最高学年生である。Linux, FreeBSD, OpenBSD, NetBSD,Sun Solaris OSをいじっている。 MCP, MCSD, MCSE 認定書を持っており、SOLARISシステム管理者認定書に準備中である。
gccなどのアプリケーション・ソフトウエアであってもLinux のようなシステム・ソフトウエアであっても、ソフトウエアは、フリー・ソフトウエア基金(Free Software Foundation)の部分がフリーであるが故に大衆を引きつける。実際は、このFSFソフトウエアがフリーとの先入観(発言の自由との意味で、無料との意味ではない)は余り明確でなく、普通の人を説得している。重要なことは、Linux 世界を深く探求すると、別の道に進んでいると思われる。
だが、Linux が最初に現れたときは、数年間はその評判に生き残り損ねたものの、名にふさわしいものであった。Solaris, AIX, HP-UX, IRIX OSなど市販UNIX一家の最後の審判の日に暫しの猶予を与えた。しかし、1991年に紹介されて以来、会社の筋書きが完全に変わった。サン・マイクロ社は、世界中で最も広く使用される市販UNIXSであるSun SolarisでUNIX市場占有率34%を占め、依然としてUNIX産業のリーダー(IBMがこれに続く)である。Linux に何か悪いことが起こったか?安定なkernelが出るのが遅れ、数年で無数のkernel書き直しがあり、正しい販売源が利用出来ず社会の予想を満足するのに失敗したことが、現在のユーザ数増加を減速させただけでなく、最近ではLinuxの将来にも厳しい見方が出て来ている。
Linuxは初めIntelの32ビット・プラットホームで走らせる設計であった。だが、これは後に多数のハードウエア・ベースに移植されたけれども、無料移植性に到達したときネットBSDの効率が不足した。だが、Linux その他の無料ソフトウエアを使用することの主な仕掛けは、技術的特徴や長所ではない。商業的利用能力にある。企業世界で最も重要な問題は「Linux その他のシステムレベル無料ソフトウエアを走らせるシステムを誰がサポートするか」であった。ウォール街をみるとスナップ写真がある。(Linux 土俵上の)企業リーダRed Hatは、6.0米ドル以下の株価で極めて安定に思われ、その他のLinux 販売企業は1.0米ドルである。NASDAQに来ると、Linuxその他の無料ソフトウエアは何故悪いのか?IBM, Sun, Microsoftなどの所有権ソフトウエア、ハードウエアに比較するとき、企業が未だにLinux その他の無料ソフトウエアを受け入れないのは何故か?
Linux (無料BSD, オープンBSD, ネットBSDもまた)はインストール・ベースのサポートとなると、Microsoft Windows 2000, Microsoft Windows Server 2003, Sun Solaris, IBM-AIX その他など市販ソフトウエアに立ち遅れている。Linux は(その社会全体として)そのユーザにサポートや保守を何も保証していない。設置するとき、誰がそのシステムの正しい構成を担当するのか?正しく構成しても、誰がそこにいて、年中そのシステムを保守しサポートするのか?企業管理者は、システムレベルのソフトウエア、アプリケーション及び裸のハードウエアの購入タイプを決めながら、自分の会社の資源を調査し、選ぶ投資が大きい利益を生むものを選択する。市販ソフトウエアを走らせる市販ハードウエアを購入するのが、最も良い選択となる。Sun UltraSPARCステーション五台の購入を決める会社は、Intel Pentium 4 マイクロプロセッサを搭載するワークステーション五台を買うより立ち上がりが良い。初期投資はUltraSPARC五台の方が大きいが、全体計画が作り易い。Sun ONEウェブサーバ・ソフトウエアをコンフィギュアしてこれらのシステム上で走るSun SOLARIS 9 は、理想的なシステムである。サポートと保守は、Sunが資格を与えるSOLARISシステム/ネットワーク管理者が保証する。したがって、一時費用は高くとも、市販ソフトウエアで働く市販ハードウエアを購入することにより、長期費用が安定し、密に監視することが出来る。さらに、必要に応じてSunからのソフトウエア全体に対する定期的手直し、修正及び更新を評価することが出来る。
他方、Intel Pentium 4システム上で働くLinux は、サポートも、ソフトウエアやハードウエアが正しく機能することも、システムレベルのソフトウエアに対する定期的修正、手直し、更新も、アプリケーション・ソフトウエアの保守も保証しないし、もっと重要なのは、ハードウエアやソフトウエアを購入する際の一時投資は低く思われるが、時間とともに長期費用が増加する。Linuxのサポートは、Linux 関連技量に精通する適格者が行うことが出来る。残念ながら、獲得出来る適格者は多過ぎて混沌とした状態である。Red Hat Linux サーバに的確のRed Hat Linux 認定技術者(RHCE)は、TurboLinuxを走らせるPentium 4ワークステーション百台の会社環境の前ではほとんど無力である。Linux ディストリビューションは多数あるので、市場では多数の認定書を入手することが出来る。課題に対する専門家の雇用さえも、企業管理者に取っては難題なのである。サポートと保守は、重要企業情報、取引上の機密、個別顧客情報の喪失を常に懸念している環境の下で、本当にうんざりする問題になることがある。
テラバイトの情報や数百万ドルの投資を扱う巨大企業システムは、稼働中システムのサポート、保守、安定を、何より優先する義務がある。何が壊れると何が起こるか?Linux, FreeBSD, OpenBSDその他をはじめとする無料システムレベル・ソフトウエアが逃避している別の分野は、機能向上可能性である。無料ソフトウエアで走るハードウエアシステムは、立派に設置されると、容易に機能向上することが出来ない。出来ても大きくは機能向上しない。Linux はこの場合最悪になる。Intelプラットホーム上のFreeBSDは、水平にある程度機能向上をすることが出来るが、垂直の機能向上に関しては(Linuxのように)惨めに失敗する。他方、市販システムは全く異なる。Sun SPARCとUltraSPARCは、水平にも垂直にも大幅に機能向上することが出来る。したがって、市販ソフトウエアを走らせる既存市販システムの機能を向上するとき、必要投資額は少なく、達成される生産性向上は大きい。
したがって、Linux自体は無料で入手出来ても、それに関連する多くの側面が無料ではなく、市販システムに比較すると悪くて高価で実用にならない。Linux は、ハードウエアとソフトウエアの一時投資額を初めは低くするが、長期投資が逆に働いて、会社資源の誤用を招き、更に重要なことは、このようなソフトウエアを走らせるシステムのサポートと保守が保証されない。何処かが保証しても、品質とサービスが悪い。安全と長期投資費用を低い初期一時投資に対して優先する企業システムは、商業的に認定済みの市販ソフトウエアを走らせる市販ハードウエアシステムを選ぶべきである。
執筆者について
Subhasish Ghoshは、現在モスクワ電力技術研究所(Moscow Power Engineering Institute)(技術大学)の情報コンピュータ科学の最高学年生である。Linux, FreeBSD, OpenBSD, NetBSD,Sun Solaris OSをいじっている。 MCP, MCSD, MCSE 認定書を持っており、SOLARISシステム管理者認定書に準備中である。
Sahana: 管理災害用オープンソース・システム
Java とPHPに経験のあるボランチア開発者は、この関係で大いに助けることが出来る。文書により援助する人も求めている。各種言語による文書もまた多分役に立つ。
昨夜詳細が到着した:
主要連絡先は、Sanjiva Weerawaranaである。
その考え方と発端
1.救援、復旧、復興作業を助けることの出来る簡単なITソリューション。
2.世界的にソリューションが存在しない。津波の機会を捉えてこのようなソリューションを作りたい。
3.人に関する関する単一のデータベース(行方不明、国内避難民、死者、孤児など)をはじめ、Sahana には現在幾つかの構成要素がある。
4.プロジェクトは現在世界的なオープンソース・ソフトウエア・プロジェクトとなっており、協力者が世界中で組織化されている。
5.災害管理の経験者その他からの情報提供により、Sahanaは今日利用出来る何物よりも進んでいる。
その正体?
Sahanaは、次第に増加する機能を扱う統合アプリケーション集合体である。
・組織登録:参加組織の現状と、していること・出来ることなどを把握する。
・管理システムの要求: 避難所その他からの要求を各種組織が満たす方法の組織化が出来るようにする。
・避難所登録: 履歴情報を含む避難所のデータベース。
・避難民登録: 最新捜索能力を用いる行方不明、国内避難民、死者、孤児などに関するデータベース(写真、指紋、DNAサンプルを含む)。
・さらに機能を開発中。
CNO(スリランカ国内運営センター)におけるSahanaの使用
色々なSahana関係者が、災害発生以来のCNO職員の過労のため、自発的に物事を助けている。これは一時的なものだが、自発的作業の継続期間は不確定である。
Sahana システム全体は、Moratuwa大学の学生ボランティアが事務所に配布するノート上に展開されている。Sahanaは、単一コンピュータ内でオフラインで走らせることが出来る。これらの学生達は、あらゆるデータをシステムに取り込む作業をしている。
開発中の新機能
・援助管理システム: 援助の申し出とその受諾を把握する。
・損害データベース: 各種目的で損害を記録する。
・埋葬記録:埋葬地情報を記録する (場所、人物など)
・補給管理システム: 救援その他の援助物資の配送と受領を把握する(既存コンポーネントも機能の点で改良する)
連絡先
津波とソフトウエア:援助の場所、進行中のプロジェクト
これはLinuxGazetteの編集者としてではなくコミュニティの一員としての個人的投稿である。その違いは重要ではないだろうが、私は同時に色々な立場になるので時に混乱することがある。
インド洋大地震と津波の事件を追った人は、あの地域が莫大な被害を蒙り、したがって援助を必要としていることをご存知であろう。被害地近くー又はその中に−に住んでいる人もいるだろう。金銭、衣類、食料、医薬品など然るべき貢献をした人がいたその間に、素晴らしいことが起こった。私もそのうち一人だったが、今現在多分援助をすることの出来る人は、私の周りにいる人達だ。
これらの幾つかは、編集者がここに至るるのに熱心だったほど活動的でなかった言い訳になるかも知れないが、・・・今、改良中なのだ。
Sahana
彼らはJava/PHPコード作成者の援助を求めている。プロジェクト電子メールリストで文書を用いる援助を申し出たが−未だ返事はない。私はJava人間ではなく、インターネット上ではそれを扱わない。したがって、技量をお持ちなら、プロジェクトに参加して何が出来るか検討されたい。
Alert Retrieval Cache
ARCの慎ましい発足が実際のプロジェクトに進行したが、別の報道もあるだろう。私がWorld に行った記者会見を
hereで読むことが出来る。
私の言いたかったことを少々述べたが、それはそれだけのことだ。
津波の間に素晴らしいことが起こったが、多くの人が亡くなったり怪我をされた時期に、勝利の感じを書くのは難しい。今でもそうだが、今や差を付けることが出来るのを皆が知るのは、いずれにせよ重要なことだ。
どなたか技術と津波に関連する物語があれば、投稿して頂きたい。
NO. インターネットに接続されたマシンで100%安全なものはない。これは孤立無援を意味するものではない。ハッカーを防ぐ手段はあるが、完全に避けることは出来ない。家のようなもので、窓と戸が開け放しなら、空き巣に入れられる確率が大きい。だが窓と戸を閉めていると、侵入される確率は減るが、ゼロにはならない。お分かり頂けるだろうか・・・。
1 情報セキュリティとは?
機密データを権限のないユーザから計画的なやり方で護る方法を情報セキュリティと言う。
2 情報セキュリティに必要なものは?
現在の世界は新たな技術が沢山出現してIT世界に変貌しつつある。,IT技術により世界は至る所で革新された。空港、港湾、電気通信、TV放送などは、IT技術の結果繁栄している。「ITは至る所にある」
クレジットカード情報、秘密使命サーバのパスワード、重要ファイルなど、多くの機密情報がインターネット経由で渡される。通信中に誰かに見られたり改竄されたりする機会は100%ある。外部の者がクレジットカードやパスワードを入手すると、好きなように使って、財産や仕事に損害を与えることが出来る。「予防は治療に勝る」、酷い目に遭わないためには、良好なセキュリティ方針を立てて実行することだ。
3 最も安全な OS は?
どのOSにも長短がある。Windowsはファイアウォールなどの第三者ソフトウエアをインストールして保護することが出来るが、対策費は高価である。Linux は安定で安全だ。最低の費用で保護することが出来る。だがソフトウエア販売者からのサポートがないので、会社はLinuxに切り替える前に二度考えなければならない。
FreeBSDは、別の安定で安全なOSである。私はFreeBSDが最良だと思う。FreeBSDは、もっと易い方法で保護されるが、多くの人はその存在さえ知らない。
セキュリティの枠組み
[リスク解析]   [ 業務要件]
  |
[セキュリティ方針]
  |
[セキュリティ業務、機構及び対象]
  |
[セキュリティ管理、監視、検出及び報告]
注記 :
・セキュリティの枠組みは、サーバを護る完全な寿命を説明する
・リスク解析は、護るべきサーバにあるデータに関連するリスクを扱う
・業務要件は、業務実行のための実際要件を扱う調査である
・セキュリティ方針は、次の領域に取り組む書面である。 (1)認証 (2)承諾 (3)データ保護 (4)インターネット・アクセス (5)インターネット・サービス (6)セキュリティ監査 (7)事故処理 (8)責任分担。
・セキュリティ業務、機構及び対象は、セキュリティの実行部分である
・セキュリティ管理、監視、検出及び報告はセキュリティの最終段階である。ここでセキュリティの欠陥を見出したとき、反応する方法を論じる。
4 セキュリティ方針
良好セキュリティ方針は、以下の分野を扱う方針である/。
1認証:この分野は、ユーザが実在か否かを扱う。システムにアクセスすることが出来る者と出来ない者全部。許されるパスワードの最小長さ。ログアウトの前のアイドル時間の長さなどである。
2.承諾:この分野は、主として各ユーザレベルの分類と、システム上でおこなうことで各レベルに許されること、ルートになることの出来る者全部を述べるルールなどである。
3データ保護:データ保護は、保護すべきデータ、システム上の機密データにアクセスすることの出来る者全部−などの詳細を扱う。
4.インターネット・アクセス:この分野は、インターネットへのアクセスを持つユーザと、何を実行出来るかの詳細を扱う。
5.インターネット/サービス:この分野は、ボックスに許されるサービスと許されないものに関するルール又は方針を扱う。
6.セキュリティ監査:この分野もまた、完全な監査とセキュリティ関連作業の査察を扱う。
7.事故処理:この分野は、セキュリティの欠陥があるとき取るべき手順と対策を扱う。これにはまた、実際の容疑を見出す手順と将来それを避ける方法も含まれる。
8.責任分担:これは非常に重要な分野である。事故処理もまたこれにしたがう。この部分は、セキュリティ欠陥などに接触するセキュリティ管理者の責任も述べる。
5 情報セキュリティの分類方法
セキュリティには二種類ある。(1) 物理的セキュリティ/ホスト・セキュリティと(2) ネットワーク/セキュリティである。その各々に、三つの共通部分がある。
1.防護
2.検出
3.複旧
5.1 ホスト・セキュリティ/物理的セキュリティ
ホスト・セキュリティ/物理的セキュリティは、ボックスを不当なアクセスから保護する手段を意味する。そのため、ボックスにバイオス・パスワードを設定したり、限られた人しか入れらに部屋に置いたりする。侵入や攻撃がないか定期的に点検する。ホスト・セキュリティでは、OS関連ファイル全部を点検し修正してフールプルーフであることを確認する。
5.2 ネットワーク・セキュリティ
ネットワーク・セキュリティは、すべての人が考えなければならない重要な側面である。前述のように、インターネットに接続しているマシンで安全なものはない。したがって、セキュリティ管理者全員とサーバ所有者は常に徹夜で警戒し、リリースされるバグ又は小さいスクリプトが食い物にしていれば、最初に通知を受けなければならない。
6 ファイヤウォールはこの問題に対する最終解決策になるか?
否である。ファイヤウォールは、セキュリティ実行のうち一つ過ぎない。家を考えよう。窓も戸も閉めてあっても、家の鍵が悪いと、誰かが構造の似た鍵を使えば開けられる。戸を閉めても役に立たない。同様に、強力な、ファイヤウォール方針を立てているなら良い。不当なアクセスを制限する。しかし、ボックス上で走るソフトウエアが古いと、ハッカーはこれを使ってサーバに侵入しルートシェルを獲得する。これだけでァイヤウォールがこの問題に対する最終解決策ねないことが分かる。計画的なセキュリテイ実行は、この問題に対する高級な対策である。
7 セキュリティは一時処理か継続処理か?
セキュリティは継続処理である。ほとんどのセキュリティ管理者はセキュリティ作業をセキュリティ日付までのバグ関連に基づいて進める。したがって、最新バグの修正に合わせるため、セキュリティ作業は定期的に行わざるを得ない。
8 セキュリティ実行は負担になって、性能を低下させるか?
その通り。セキュリティ実行は少々の負担になる。だが、直接には性能を甚だしくは低下しないので、その心配をする必要はない。これらの面倒を見るため、セキュリティ実行には最適化部門があり、ここでセキュリティ管理者は、性能とセキュリティ双方に優先度を与えることが出来る。したがって、任意のソフトウエアを防護しながら最大性能を与えるよう防護出来る筈だ。
9 セキュリティ監査とは何で、そのセキュリティ過程で何をチェックすべきか?
セキュリティ監査は、セキュリティ実行の一部で、ボックスの弱点を見出し、セキュリティ改善方法を示す。通常の場合、セキュリティ監査の間に、次に示す点を点検しなければならない。
セキュリティ監査実行中に、セキュリティ監査結果報告書を作成しなければならない。
1.侵入検出の点検。この目的でチェックリスト又はrkhunterを用いる。
2.現在ボックスにインストールされているソフトウエア(即ち、 Kernel, openssl, opensshなど)のバグを点検。
3.ポート全部をスキャンして、不測のポートが開いていないか見出す。
4.whether /tmp が防護されているかを点検。
5.隠れプロセスを点検。
6.特定パーティション全部の不良ブロックを点検。(これはシステムが大丈夫であることの確認)
7.パーミッション全部の点検。
8. kerneに ptrace 脆弱性がないか点検。
9.メモリの点検。(これはメモリが大丈夫であることの確認)
10.オープン・リレーの点検。
11.パーティションに十分なスペースがあるかを点検。
12.ログのサイズを点検。ログのサイズはMBの範囲内に止まるのが良い。
10 ハックされているのを知る方法
ボックスが危なくなっているかどうかを見出すには、次のステップにしたがう。これらは筆者が用いている方法で、ほとんどの場合に手軽である。
10.1 性能が落ちていないか、使い過ぎていないかボックスを点検する。
10.1.0.1 それには次のコマンドを用いる
Vmstats
:メモリ,CPU及びディスクに付いての情報を示す
例:bash# vmstat 1 4 ( ここで、1 は遅延で4 は計数)
Mpstat
:CPU利用統計を示す。CPUの使い過ぎを知るのに役立つ
例: mpstat 1 4 (ここで、1 は遅延で4 は計数 )
Iostat
:このコマンドはディスクシステムの統計を示す
オプション
-d - デバイス利用報告を示す
-k - 統計をキロバイト/秒で示す
例:bash # iostat -dk 1 4 (ここで、1 は遅延で4 は計数)
Sar
:システム性能を示す。
10.2 ボックスで隠れプロセスが走っていないかを点検。.
ps
:プロセス統計を示す。
lsof
::オープン・ファイル全部を一覧する。Linuxでは何も彼もファイルと見なすので、このコマンドを用いるとボックスで起こっていること全部が分かる。
10.3 侵入検出ツールを用いる
・rkHunter ( http://www.rootkit.nl/ )
・chkrootkit ( www.chkrootkit.org/ )
10.4 マシンのアップタイムを点検
アップタイムが少ないときは、リソースを誰か他人が使っていることを意味する。Linux は安定なOSなので、通常の場合衝突したり再ブートしたりしない。マシンが再ブートされているときは、背後の理由を探ること。
10.5 隠れ/疑惑プロセスを見出したときは、何をしているのか及び、それに関する情報全部を見出すこと。
10.5.0.1 以下のようなコマンドを用いる。
readelf
:このコマンドは、実行可能プログラムが実行していることを表示する
ldd
:このコマンドは、実行可能プログラムが使用するライブラリの詳細を表示する
string
:このコマンドは、バイナリの文字列を表示する
strace
:このコマンドは、それが作るシステム呼出など、実行可能プログラムの完全な寿命を表示する
11 取扱方法論
1.セキュリティ関連サイト全部を読み取って更新する。これはセキュリティ管理者又はサーバ所有者が行うべき主要な仕事の一つである。サーバ所有者は、セキュリティとその重要性を認識しなければならない。セキュリティ教育はセキュリティの重要部分である。
2.良好なセキュリティ方針を立案すること、その方針に基づいてセキュリティ監査を実行する。
3.常に手直しをおこなってOSを更新し続ける。
4.迷惑なサービスを削除し、grsecurity 又はopenwallのいずれかにより手直しして、固有kernelをインストールする。
5.不要サービス全部を無効にし、ファイル/ディレクトリ変更許可サービスを幻覚にしてセキュリティを強化する。
6.ファイアウォールを設定して良いルールを作る。
7.定期的にサーバを点検/監査する。
8.侵入掲出システム、ログモニタ、apacheセキュリテイモジュール、bfd, faf 及び tmp モニタをインストールする。パーティションを防護する。
9.サーバには、データ復元のため良いバックアップを設ける。
10.ログ・アナライザをインストールして疑わしいエントリ全部のログを点検する。
11.セキュリティ破壊があったとき、メール又は機能回復通知を出すため良いスクリプトを設定しておく。
12.セキュリティ破壊に際して、何時、どのように何を通じて起こったかを見出すようにし、修復方法を見出し、将来のため記録を残す。.
12 サーバの防護方法
最後に、ホスト・サーバを防護する主要な方法を述べる。
12.1 そのクライアント業務に適用される業務要件と危険因子を見出す
12.2 上のデータを考慮してセキュリティ方針を立てる。その方針をクライアントに送付して承認を得る。
12.3 方針の証人を得て、サーバ上でセキュリティ監査をおこない、弱点を見出して、その報告をクライアントに送付する。報告には、サーバのセキュリティ改善方法も述べる。
================チェックリスト ================
・ソフトウエアの弱点
・Kernel 更新と弱点
・Trojan全部の点検
・chkrootkits.を走らせる
・ボートの点検
・隠れプロセスの点検
・監査ツールを用いてシステムを点検
・ログの点検
・バイナリの点検
・バイナリとRPMSの点検
・電子メール中継の点検
・cron エントリの点検
・/dev /tmp /var ファイルホルダの点検
・バックアップが維持されているか点検
・システム内に迷惑なユーザグループがいないか点検
・迷惑なサービスを点検して無効にする
・悪意のあるスクリプトを見出す
・DNSでQuerylog
・バックアップが維持されているか点検
・suid スクリプトとnouser スクリプトに関する点検
・ /tmpの中の無効スクリプトを点検
・侵入検出トールを用いる
・システム性能の点検
・メモリ性能の点検(memtestの実行)
=======================================
12.4 ここでセキュリティの実行に進む。
12.4.1 この監査報告に基づいて、先ず、手直しの実施又はソフトウエアの更新によりソフトウエア弱点全部を修正しなければならない
12.4.2 ホスト・セキュリティの実行
・パスワードを用いてシステムを防護する
・ファイルシステムを点検する (ファイルに対し正しい許可と所有権を設定)
例:chmod -R 700 /etc/rc.d/init.d/*
例:rpm -Vaを用いてrpmが変更されていないか影響を受けていないかを見出す
・弱点のあるソフトウエアに手直しを施す(例: patch -p1 < patch file)
・エントリを/etc/securettyから削除することにより、迷惑ttyとコンソール・ログイン全部を削除する
・システムログを点検する(例: /var/log/messages , /var/log/secure など)
・ブートのロード用にパスワードを設定する(lilo とgrub がこれをサポート)
・システムをも監視する (nagios又はbig brother)
12.4.3ネットワーク・セキュリティの実行
・迷惑ユーザ、グループ全部を削除
・カスタム・セキュリテイ・スクリプトを用いて、ルートとしてsshするとき又は uid 0などを用いてユーザを作る間に通知を送る。
・16文字のパスワードのみを許す ( login.defに変更を行えば出来る).
・迷惑サービスを無効にする、tcp ラッパーを用いる (迷惑サービスはxinet.d 又は xinetd.Confを通じて無効にすることが出来る)
・timeoutを設定して、アイドル・ユーザは一定時間後にログアウトする
・コンソール・プログラム・アクセスは全部無効にする (例:rm -rf /etc/security/console.app/<service name >).
・/etc/host.confでnospoofオプションを有効にする
・ドメイン名分解の順序を規定する(例:順序束縛ホスト).
・/etc/serviceファイルをロックして、誰も変更出来ないようにする
・直接ルートログインを制限する(sshd_configでPermitRootLoginログインオプションをコメントする)
・wheelグループメンバーのみがsuすることが出来るよう、suを制限する (pamを用いるか又はsuバイナリに関して他のパーミッションを無効にする).
・ユーザリソースを限定する( /etc/security/limit.conf内の各ユーザにつき限界を議定するpamを用いることが出来る)
・/tmpを確保 (mount /tmp with noexec,nodev,nosuidを用いて /tmp を取付ける)
・サーバ詳細を隠す。そのため/etc/issuesと/etc/issues.netを削除
・迷惑suidとsgid files find -type -perm -04000 -o perm 02000を無効にする
例:gpasswed,wall,traceroute etc ...
・特定位置からのping だけを許す(監視システムを働かせるため)それには iptablesを用いる
・DOS、deathに対するpingなどに対し予防策を講じる.
・ファイヤウォール(例:apf 及び iptables)を設置する。(policy->により、ボックスが必要とするポートを許し、その他全部をブロックする)
例:rfxnetworks.com/
例:yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html
・侵入検出を設置する(例:tripwaire又はaide).
例:cs.tut.fi/rammer/aide.html
例:com/docs/manuals/linux/RHL-9-Manual/ref-guide/ch-tripwire.html
・sxidをインストールしてsuid とsgid スクリプトに目を光らせる
Link: linux.cudeso.be/linuxdoc/sxid.php
・ssh を特定ipとユーザに制限する(パスフレーズを用いるキイ認証を薦める)
・logcheck をインストールしてログをチェックする
・tmpwatch をインストールして /tmpディレクトリから未使用ファイルを削除する
・portsentry をインストールし設定してipをブロックするようiptableをコンフィギュアする
・mod_security とmod_dosevasive をインストールしてapacheの安全防御をする
・ユーザもグループもないファイルを削除する
・htdocsにある迷惑ファイル/フォルダを削除し、ディレクトリ検索を無効にする
・/root, /usr/local, /var/spool/mboxにある迷惑スクリプトを点検する。
・追加セキュリティのため BFDと FAF をインストールする
・オープン・リレーを無効にする.
・状態報告を提出する
12.5 試験段階
nessus ,nikto,nmapなどのツールを用いて、侵入試験をおこないサーバの防御を見る。ストレステストもおこなう。
セキュリティはサーバに取って最も重要で、セキュリティで妥協することはサーバの対面に関わる。したがって、これを理解することはサーバ所有者の管理者のせきにんである。
Linux はインド向けの店で沢山の契約をしており、他は余り多くないが、大きい知的労働力を抱えている。
他のソフトウエアが容易に無料で手に入るお陰で、人々はLinuxのファンクラブに入る迄に何度も考える。
Linux アプリケーションの力を実証しようとしていたとき、人々に「Red-Hatが売られたと聞いたが?」と聞かれた。確信はなかったが、問題ではない。同等以上のものが沢山あると答えた。続いて別の質問をされた。RPMはRed-Hatを使うものだが、未だ使えるのか。そして、'XANDROS'を除いてユビキタス内部モデモをサポートするものは少ないと保証するLinuxの定期刊行物を見せた。「インターネットへの接続がこんなに面倒なら、家庭用システムには、余り合法的でないOSを使う今のものを続けるよ」
Linux デスクトップのほとんどは、内部モデモ認識についてのこの問題を抱えているので、そのため人々は二重ブートにしたがる。
筆者は、Linux 内部モデモドライがと思われる 'linmodem' をダウンロードしたが、無駄だった。
別の問題は、Linux上でRDBMSの例を成し遂げることである。これは恐ろしく高価な他の有名市販ソフトウエアを打ち負かすことが出来る。
今はインドの収穫祭サンクランチの時期だ。開発途上国のLinux 収穫を受取って、社会的財産を引き出すことなく情報技術革命を促進したいものだ。
これはGrass をインストールして働かせるステップである。初心者が関心を失わないのに役立つことを望む。
ステップ-1 Mandrake Linux-10のインスロール
ウェブサイトからCD3枚をダウンロード;サイバー・カフェ又はwindowsで働くインターネット接続からでもファイルをダウンロードすることが出来る。
ftp://ftp.nectec.or.th/pub/linux-
distributions/Mandrake/official/iso/10.0/i586/Mandrakelinux10.0-Official-Download-CD1.i586.iso
ftp://ftp.nectec.or.th/pub/linux-
distributions/Mandrake/official/iso/10.0/i586/Mandrakelinux10.0-Official-Download-CD2.i586.iso
ftp://ftp.nectec.or.th/pub/linux-
distributions/Mandrake/official/iso/10.0/i586/Mandrakelinux10.0-Official-Download-CD3.i586.iso
Grass ウェブサイトから以下のファイル二つをダウンロード
http://grass/baylor/edu/grass57/linux
grass-5.7.cvs-i686-pc-linux-gnu-25_12_2004-install.sh
grass-5.7.cvs-i686-pc-linux-gnu-25_12_2004.tar.gz
(2) ダウンロードしたCDからMandrake Linux をインストールし、Mandrake Linux ターミナル・ウインドウで(コンピュータ・モニタのようなアイコンをクリックするとターミナル・ウインドウが出る。ターミナル・ウインドウは、テキスト型 su を示すだけなので、パスワードを入力してユーザとなる)
ルートとして、以下の命令をおこなう。
タイプミスを避けるため、出来るだけ切り取り、貼り付けを用いる。
sh grass-5.7.cvs-i686-pc-linux-gnu-25_12_2004-install.sh
grass-5.7.cvs-i686-pc-linux-gnu-25_12_2004.tar.gz
ステップ-2
ダウンロードしインストールしなければならないrpmが幾つかあって、インターネットから入手することが出来る。以下のサイトが大変役に立つ。
fr2.rpmfind.net/linux
libproj0-4.4.8-1mdk.i586.rpm
xterm-196-1mdk.i586.rpm
libgrass5_0-1.0.0-1mdk.i586.rpm
libgdal0-1.1.9-2mdk.i586.rpm
libgdal1-1.2.2-1mdk.i586.rpm
libfftw2-2.1.5-3mdk.i586.rpm
libjasper1.701_1-1.701.0-1mdk.i686.rpm
libogdi-3.1.2-1mdk.i586.rpm
libgeotiff1-1.2.2-2mdk.i586.rpm
libstdc++6-3.4.1-4mdk.i586.rpm
ステップ-3 rpmsのインストール
rpmの中には、従属性無しでインストールしなければならないものがある。rpmがインストールされていないときに、次のメソッドを試す。
rpm --install libproj0-4.4.8-1mdk.i586.rpm
rpm --install xterm-196-1mdk.i586.rpm
rpm --install libgrass5_0-1.0.0-1mdk.i586.rpm
rpm --install libgdal0-1.1.9-2mdk.i586.rpm
rpm --install libgdal1-1.2.2-1mdk.i586.rpm--nodeps
rpm --install libfftw2-2.1.5-3mdk.i586.rpm
rpm --install libjasper1.701_1-1.701.0-1mdk.i686.rpm
rpm --install libogdi-3.1.2-1mdk.i586.rpm
rpm --install libgeotiff1-1.2.2-2mdk.i586.rpm
rpm --install libstdc++6-3.4.1-4mdk.i586.rpm
ステップ-4
ターミナル・ウィンドウで
grass57
と入力して、リターンを押す。
ここで、メモ帳にペンでエラーを注意深く書き込む。
*****ライブラリ・ファイルのgrass57命名法に合わせるにはターミナルに以下のコマンドを与える必要がある。******
ディレクトリ
cd /usr/lib
は何時見ても良い。
ファイルの最初の数文字が見付からないときは、ディレクトリを見て、近いものを探す。下記のコマンドで名称が変わる。私が受け取ったエラーは次のコマンドで消えた。
ln -s /usr/lib/libtk.so /usr/lib/libtk.so.0
ln -s /usr/lib/libtcl.so /usr/lib/libtcl.so.0
ln -s /usr/lib/libpq.so.3 /usr/lib/libpq.so.2
ln -s /usr/lib/libgdal.1.1.so /usr/lib/libgdal.so.1
(これは、ライブラリの名称を変えて GRASS57に合わせている)
ステップ-5
次のようにタイプしてEnter を押し、コンフィギュレーションをセーブする
idconfig
ステップ-6
これでGrass が働く筈: grass57 とタイプする。
まだエラーが出るときは、エラー・メッセージに関係するファイルについて、ステップ、2,3,4,5をやり直す。
'grass' のスローガンは、諦めないこと、参ったと言わぬこと。
"mt"コマンドを用いる作業:テープの読取、書込。加えて tar, dd, sshコマンドをの用いて、テープドライブからリモートコンピュータに、圧縮、ブロック係数一式、ラベルをつけて、バックアップし復元する方法。
以下ではテープドライブが "/dev/st0"であるとする。
ステップ 1 (テープの巻き戻し)
# mt -f /dev/nst0 rewind
ステップ2 (ブロック0にいるか否かのチェック)
# mt -f /dev/nst0 tell
At block 0.
ステップ3 ("tar compress"ディレクトリ "one" と"two"をバックアップ)
# tar -czf /dev/nst0 one two
ステップ4 (獲得したブロックを点検)
# mt -f /dev/nst0 tell
この時点でブロック2などを示される筈
ステップ5 (テープの巻き戻し)
# mt -f /dev/nst0 rewind
ステップ6 (ファイルを一覧)
# tar -tzf /dev/nst0
one/
one/test
two/
ステップ7 (ディレクトリ"one" をディレクトリ "junk"に戻す)
最後の操作でテープが2ブロック進んでいるので先ずテープを巻き戻すことに注意。これは"mt -f /dev/nst0"を用いてチェックする。
# cd junk
# mt -f /dev/nst0 rewind
# mt -f /dev/nst0 tell
At block0.
# tar -xzf /dev/nst0 one
ステップ8 (次に、テープがどのブロックにあるかを見る)
# mt -f /dev/nst0 tell
At block 2.
ステップ9 (ここでディレクトリ3と4をバックアップする)
# tar -czf /dev/nst0 three four
ファイルをバックアップした後、テープはブロック2を過ぎている筈
これをチェックする。
# mt -f /dev/nst0 tell
At block 4.
現在以下のものが存在する:
ブロック1に:
one/
one/test
two/
ブロック2に:
three/
three/samplehere
four/
ブロック4に:
(*これは空*)
若干の注意:tarを用いてブロック係数とラベルを設定することが出来る
例えば:
$ tar --label="temp label" --create --blocking-factor=128 --file=/dev/nst0 Notes
しかし、規定値の不正なブロック係数で読もうとすると、
次のエラーが出るのに注意:
$ tar -t --file=/dev/nst0
tar: /dev/nst0: Cannot read: Cannot allocate memory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now
しかし、これは正しいブロック係数を用いて容易に修復される
$ mt -f /dev/nst0 rewind
$ tar -t --blocking-factor=128 --file=/dev/nst0
temp label
注記
label コマンドを利用する。
.
$ MYCOMMENTS="Big_important_tape"
$ tar --label="$(date +%F)"+"${MYCOMMENTS}"
リモート192.168.1.155 コンピュータにあるテープに書き込む
$ tar cvzf - ./tmp | ssh -l chirico 192.168.1.155 '(mt -f /dev/nst0 rewind; dd of=/dev/st0 )'
内容をテープからリモート・コンピュータに再構築する
$ ssh -l chirico 192.168.1.155 '(mt -f /dev/nst0 rewind; dd if=/dev/st0 )'|tar xzf -
ddコマンドを用いて奇数のブロック係数を持つテープのデータを取り出す。ibsを高く設定するだけ
$ mt -f /dev/nst0 rewind
$ tar --label="Contenets of Notes" --create --blocking-factor=128 --file=/dev/nst0 Notes
$ mt -f /dev/nst0 rewind
$ dd ibs=1048576 if=/dev/st0 of=notes.tar
上記は ibs=64kでも多分働く。
tarとopensslを用いてデータをテープに書込む方法など、色々なヒントは下記を参照
拝啓 PVMの記事を読んで同サイトからMPI をダウンロードしました。Redhat linux 9.0をインストールしており、PVMもまたインストールしました。
しかし、-lvpm3 オプションを用いてCプログラムをコンパイルしようとすると、ファイルlvpm3 が見つからないとのエラーメッセージが出ました。解決策を教えて下さい。