• ベストアンサー

社外へ公開する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

  • LinuxのWEBサーバーとWindowsのWEBサーバーについて・・・

    LinuxのWEBサーバーとWindowsのWEBサーバーはどちらがセキュリティ的に安全なのでしょうか? 現在FedoreCore3でWEBサーバーを立てるか、WindowsXPでWEBサーバーを立てるか迷っています。 この掲示板を参考に決めたいと思いますので、なにとぞ助言お願いします。

  • WebサーバOSについて、Win2000かLinuxか迷っています。

    あるWebサーバソフトを開発予定なのですが、OSをWin2000かLinuxにしようか迷っています。 そのWebサーバは中小企業ネットワークの内部に設置する予定ですが、他の既存のサーバのほとんどはWin2000サーバのようです。 しかし、今回のWebサーバはセキュリティ面が重視されるためWin2000では不安な気がしています。ではLinuxにすれば良いとも思いますが、今までWin2000を扱ってきた企業に、今回のWebサーバだけLinuxで・・・というのが受け入れにくいものだとも思います。 Win2000 : 汎用性◎ セキュリティ× Linux  : 汎用性△ セキュリティ○ 上記のように認識しており、じゃあどちらが優れている?という判断が下せないでいます。おそらくどちらも一長一短だと思いますが、判断材料をもう少し増やせたら・・・と思い質問させて頂きます。長々と書きましたが、どのような情報でも構いませんのでご教示願います。

  • linuxサーバーからの要求に対して実行形式ファイルを返すには

    いろいろ調べたのですが、 キーワードが悪いのか引っかからなかったので、 質問します。 現在、自分が管理しているWindowsのWebサーバに CSVデータとフォームを連結させた帳票データを 生成するアプリを作成しています。 このアプリはVBScriptで作成しています。 CSVデータとフォームを持っているLinuxサーバから要求を行い、 このアプリ(VBScript)を実行して、 生成した帳票データをLinuxサーバに返却したいのです。 ASPを使えば、URLを発行してVBScriptを実行出来ると考えているので、 後は、LinuxサーバにあるCSVデータとフォーム を受け取りとることと、 生成した帳票データをLinuxサーバに返却することが 出来れば良いのですが、どうすれば良いか解りません。 HTTPのPOSTを使うのかと考えたのですが、 URL発行とどう絡ませることになるのか、 イメージが湧きませんでした。 どなたか、ご存知の方ヒントをいただけませんでしょうか

  • Webサーバー公開

    環境:OS Windows2000Server、IIS、ASP Windows2000Serverを使ってWebサーバーを公開する予定です。 セキュリティ対策としてなにをやればいいのでしょうか? セキュリティはこれで安全ということはないと思いますが、 最低限必要なことを教えてください。 対策として考えいるのは 1.OSの最新パッチをあてる。 2.ルーターのスタティック・ルーティング・テーブルでポート80しかサーバーに通さない。 これ以外にあれば教えてください。 また、有効なセキュリティソフトや便利な管理ソフトがあれば教えてください。

  • LinuxでWebメール

    社内グループウェアをOS:Windows 2003、ASP.NETで開発しています。 掲示板、ニュースなどは問題なく作れましたが、 Webメール機能はBASP21に頼りました。 今回、サーバをLinuxに変更するということで 既存の資産をそのまま使えないかというところで 悩んでいます。 Linuxは未経験で、Monoを使えばASP.NETも動作出来そうなことが 分かりました。 WebメールについてはBASP21がLinuxでの動作が保障されていませんので 使えません。 Linux環境でBASP21のようにメール機能を実装したコンポーネントは 無いでしょうか?

  • Linuxサーバの外部公開について

    今まで古いPCや、VMWare上にCentOSやVineLinuxなどをインストールし、Webサーバ構築等を行った経験はあるのですが、そういったサーバを実際に外部にサーバを公開したことがありません。 サーバを公開するにあたり、どうしてもセキュリティ面について配慮する必要が出てくる(OSや各プログラムのアップデートを行う、不要なポートはふさぐ等)かと思いますが、その際に気をつけるべきポイントをいまいち把握しきれていません。 そこで、Linuxサーバ(CentOSを検討しています。)を公開するに当たり、気をつけるべき点などがまとまっているような良い書籍を紹介して頂けないでしょうか?よろしくお願い致します。

  • OracleのデータをWebで閲覧する時のサーバー(Linux)の環境は?

    Linuxサーバー(RedHat or Miracle)のOracle(10g)のデータをブラウザで閲覧できるものを開発しようとしています。 今のところWebサーバーとしてApacheを使用し、スクリプト言語はPHPを使用する方向です。 Apache+PHP以外の実行環境の組み合せはありますでしょうか?

  • WEBページからダウンロードする処理

    WEBソフト開発の初心者です。 よくプログラムをダウンロードする機能のあるWEBページをみますが、あれはどうすればいいのでしょうか? 環境 サーバーWindows2000Server IIS5 ASP(VBScript)  別にASPでなくてもいいです。

  • webサーバにあるVbsアプリを動かしたい

    いろいろ調べたのですが、見当たらなかったので質問します。 LINUXサーバからWindowsのWebサーバにあるVBScriptを 動かしたいのですが、どのように行えばいいのでしょうか Urlを指定して行うのだろうと思うのですが、 具体的な記述をお願いできないでしょうか

  • LinuxのサーバサイドJavaをWindowsで開発できますか

    サーバサイド以外でのJavaアプリと、PHP,MySQLでのWebアプリ開発の 経験があります。 この度、いよいよサーバサイドJavaでWebアプリを開発することにな りました。 与えられた環境はWebサーバにLinux/Apache、 DBサーバにWindows2000Server/SQLServer2000です。 この際勉強の意味合いもあり、EJBも使用したいと思っておりまして、 LinuxサーバでサーブレットコンテナとEJBコンテナを稼動させたいと思 っています。 そこでお伺いしたいのが、このようなWebアプリをWindowsで開発できる かについてです。 普通、開発環境はWindowsでということが多いと思うのです。ネットや 書籍を参照しても、Windowsで間発環境を構築している例が殆どのよう な気がします。 私も、普段開発で使用しているWindowsXPマシンで、 JBoss+Eclipse+Strutsの環境を構築し、開発したいと思っています。 きっとLinuxにも同じようにJbossをインストールということになるのだ と思うのですが、それにしても、開発環境=Windows、本番環境=Linux、 ということになり、開発と本番の環境が全く違うことになってしまうと 思うのです。 Javaはプラットフォームフリーなので気にしない、ということなのか、 そんなことない気がします。 サーバサイドに関しては初心者でして、根本的に的外れなことを言って しまっているかもしれません。 出だしから基本的なところで躓いてしまっていまして、何卒アドバイス をお願いいたします。