• ベストアンサー

社外へ公開するWEBサーバーはWindows?Linux?(長文です。)

現在、社内プログラムをASP(VBScript)を用いて開発しています。この度、複数の取引先とデータのやり取りを行う事になったのですが、社内で開発、運用しなければなりません。 現在2つの選択肢で迷っております。 (1)WebサーバーのOSをWindows Server 2003にしてプログラムの開発言語はVBScriptを使用する。 (2)WebサーバーのOSをLinux系にしてプログラムの開発言語はPHPを使用する。 現在の開発言語がVBScriptなので、アプリの作成にはそれ程時間を要さないと思うので、私個人としてはWindows+ASPでやりたいと思っているのですが、Windows系はセキュリティが不安とよく耳にするので、どうしたら良いのか迷っております。 PHPの経験はゼロですし、Linuxも触った事はありません。 システムの仕組みとしては 1.LAN内でVBを用いてデータベースよりデータをTEXTファイルとして保存。(TEXTを保存するサーバーもLAN内で、この仕組みはすでに完成しています。) 2.公開用サーバーにSQLサーバーをおいて、TEXTのデータを書き込む。(これもVBかな?)危険であればSQLサーバーはLAN内? 取引先との重要なデータを扱う為、より高度なセキュリティを求められていますが、やはりWindowsではセキュリティに不安があるのでしょうか? ソフトウェアとルーターでファイヤーウォールをたてようとは思っておりますが、これだけでは全然足りないでしょうか? 他の業務と併用なので、独学の乏しい知識しか持ち合わせていないのに、こんな状態でWEBサーバーをたてるなんて無謀!と思われてもしょうがないのですが、会社の方針で外には委託しない事が決定しまったもので、不安だけが先行しております・・・。 どんな情報でもよろしいので、皆様からの回答をお待ちいたしております。

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

OSの選択に関しては、ANo.2の方の意見に賛成ですね。最近別の回答(http://okweb.jp/kotaeru.php3?q=1479799)でも言ったことなんですが、安全だと言われているOSを使えば安全になるというわけではありません。Windowsは、確かにウイルスやら多いですが、これの被害を受けているのは、管理者が怠慢・もしくはスキル不足により、すでに修正まで出ているセキュリティホールを放置しておいた、または無頓着であったことに起因することが大半であるわけです。 結局のところ、日々のメンテナンスの中でそういった作業を行わなければ、どんなOSにも危険はあるということです。 質問者さんの会社が外注しないと決めたのも、上層部の方にそういった日常的な作業負荷についての認識が全く無い為であろうと思われます。もしかしたら情報漏洩に関する心配とかもあるのかもしれませんが、大抵はサーバ構築・システム開発・及びそれらの運用に関して、自社でやった場合のコストシミュレーションが正しく出来ない(あるいは全くやっていない)だけだったりします。そういったことのプロがそばにいないので当然と言えば当然ですけどね。 きちんと運用することを考えれば(それが業務に直結する上に、取引先と繋がるようなクリティカルなシステムであればなおの事)餅は餅屋に任せる方が、最終的には安価になるんですが、この辺は担当者の説得能力に左右されるので何とも・・・。 ついでに、ルーターやファイヤーウォールについても、同じ事が言えます。 実際、私も酷い事例をいくらも見てきましたが、知ってるつもりのお客さんが独学で設置したネットワーク機器の設定は、見るに耐えないケースが非常に多いです。 ファイヤーウォールの設定は、特にセキュリティに関するきちんとした知識を元に、どうすれば必要な通信要件を救えるかをきちんと設計しなければいけません。 しかし、とにかくファイヤーウォールを入れればセキュリティは安心だとばかりに、穴だらけの設定してあって、まったく意味を為していないケースや、後から出てきた用件を継ぎ足し継ぎ足し設定で許可していったところ、各フィルタルールとルーティングの設定があまりに複雑に依存しあっていて、メンテナンス不可能なくらいに、ぐちゃぐちゃになってしまったケースなど、枚挙に暇がありません。 ファイヤーウォールという製品もまた、入れれば安全という類のものではなく、リスクとネットワーク要件をきちんと分析した上で、必要最小限の通信を許可することで、リスクの最小化を狙う為の製品です。要件を救う為に許可した通信は、それ自体がリスクになります。許可した通信が、どのようなリスクになるかをきちんと整理すれば、自分のネットワークおいてファイヤーウォールで遮断できないリスクの一覧が作成され、それがサーバ自身で何とかしなければならないセキュリティ要件にも繋がるわけです。 ネットワークにおける完全に安全な状態とは、すべての通信の遮断です。もちろんそれでは、ネットワークなんて使えませんから、ここから必要分だけ許可するごとに、安全はマイナス方向へ推移します。そのことを正しく認識できていない人は、そもそもネットワーク機器の設定などやってはいけないのです。 OSにせよ、ネットワークにせよ、HUB一個、ルータ一個で構成できるレベルでさえ、本来専門家に任せると、いい事はいくらでもあります。ただし、そのいい事がコストに見合わない場合には、自分でやるのもありでしょう。 しかし、ものには限度というものがあり、規模やクリティカル度合いが大きくなったときには、専門家に任せないと、大抵後から後悔する事になります。もっとも問題が起こったときに、それがネットワークが要因だとわからないケースも多いので、後悔する前に事態だけが大きくなるケースもありますが。 いずれにしても、質問者さんが担当することになっているのであれば、これらの話は警告として頭にとどめて置いてください。 設置するだけで安全な仕組みなんて、世の中にはありはしないのです。何が危険なのか、どうすれば危険じゃなくなるのかをきちんと理解した上で、あらゆる設定が生きてきます。ルータにできることは何なのか、ファイヤーウォールに出来ることが何なのか、逆にそれらに出来ないことは何なのかがきちんと理解できれば、その内側にあるサーバで何に気をつけるべきなのかが、自然と整理できるわけです。 もちろん、その前提には、サーバにとって何が危険なのかが分かっていなければなりません。 この辺の話は、OSが何であろうといっしょですね。 さて、言語です。 一応Windows+IISの組み合わせでも、PHPは使用できますね。 問題は、先々の展望をどう見るかなんですが、VBScriptにこだわる場合、プラットフォームはどうしてもWindowsに縛られるでしょう。 まあ、ややトリッキーな製品を使えば、Linux+ApacheでASPとVBScriptを使う方法は無くは無いですが、海外の製品ですし、ちょっと現実的ではないでしょう。 とりあえず、ものをPHPで作っておけば、Linux(に限らずUNIX系)に持っていくのは、比較的少ない作業量で済むかもしれません。 後は、質問者さんの経験値次第なんですが、言語を複数操るようになると、どんな言語でも共通の要素、割と違う要素、言語の基本的なスタンスのパターンみたいなのが、分かるようになってきます。HTMLへの埋め込み言語としてのASP+VBScriptとPHPは、ある意味スタンスが似通っているため、流用できるノウハウは比較的多いほうです。まあ、今までのコーディングスタイルにもよるので一概には言えませんけどね。 私見としては、相手が業務システムならば、保守的であることも重要だと思います。いたずらに新しい技術を求めるのは、それを支えられる技術的基盤無しには考えられないでしょう。システムを外注するなら、そういう選択肢もあったものと思いますが、今回のようなケースの場合、セキュリティにもめいっぱい気を使いつつ、新しい環境で新しい言語でなど、あまりに無謀ではないかと思います。 また、新しく面倒を見ることになった部分については、きちんと必要と思われる勉強をしてください。 以上、長文になりましたが、ご参考までに。

monkiki07
質問者

お礼

詳しくご回答いただき、ありがとうございます。 社内開発に至った経緯は結局のところ、融通の問題です。 外注に委託すると、細かい仕様打ち合わせに時間とコストがかかり、『かゆいところに手の届くシステム』の構築が出来ないという感覚があるからです。 運用していきながら、社内の業務にあわせてシステム変更が度々ある会社ですので。(実際のところ、コストシュミレーションもまったくしておりませんが・・・) you-mさんの文面を拝見させていただき、まず、何からやらなければならないのか、少しづつではありますが、明確になってきたように思われます。 漠然とセキュリティ対策とは考えずに、『ルータにできることは何なのか、ファイヤーウォールに出来ることが何なのか』。こういった細かいところから勉強したいと思います。 何から勉強していけば良いか。 質問内容以上に多くの事を学ばせていただきました。 本当にありがとうございました。

その他の回答 (2)

  • nick2038
  • ベストアンサー率34% (55/160)
回答No.2

 プログラマーではないのでプログラム内容の事はわかりませんが、ネットワーク系の者としてプラットフォーム方面の事を。  WindowsでもLinuxでも、きちんと設定すれば同じくらい安全です。 究極レベルではLinuxに分があると思いますが、究極レベルの攻撃なんて普通受けません。 それよりも気にするべきなのは、逆に設定にマズイところがあればどちらも危険だという事でしょう。  それで「きちんとする」のはどちらが簡単かという事になると、まぁ慣れていればどちらも同じといいますが、情報量等でハードルが高いのはLinuxです。 しかも質問者さんはWindowsには慣れていてLinuxは触った事もないとのこと。  プラットフォームはWindowsで進めた方が安全だと思います。  Linuxを一から勉強する時間があったら、その時間で各種セキュリティの事を考えた方が実りが多いのではないでしょうか。

monkiki07
質問者

お礼

ご回答ありがとうございます。 >Linuxを一から勉強する時間があったら、その時間で各種セキュリティの事を考えた方が実りが多いのではないでしょうか。 そうですね!セキュリティに関して、知識がまだまだありませんので、まずはセキュリティについて真剣に学んでみたいと思います。

回答No.1

ソフト開発に携わるものですが汎用機系でありオープン系にはチョットうとい者です。 >複数の取引先とデータのやり取りを行う事になったのですが この文面を見ると、JCA手順のようなデータ交換をイメージするのですが、相手側が御社の在庫状況をリアルで把握しながら発注の入力をWEBで行うようなシステムを組まれるのでしょうか。 JCA手順のデータ交換は発注データの受信・出荷案内(実績)の送受信・請求データの受信Mなどですが...  私より詳しい方の為にも、”どのようなデータ交換をするのか”補足お願いします。

monkiki07
質問者

補足

回答ありがとうございます。 あまり詳しくは書けないのですが、judas-risingさんのイメージしているデータに類似していると思います。 よろしくお願いいたします。

関連するQ&A