Webサーバーを二台使用する場合の最善の方法

このQ&Aのポイント
  • 中小企業がWebサーバーを二台使用する場合、効率的な方法は何でしょうか?
  • CentOSでデータベース用のWebサーバーを構築し、Windows Serverと統合するための方法を検討しています。
  • リバースプロキシを使用して、https://*******.homeserver.com/と192.168.1.(CentOS)のアクセスを切り替えることができるのでしょうか?
回答を見る
  • ベストアンサー

Webサーバーを二台使用する場合の最善の方法?

中小企業です。 いままでリモートデスクトップや見積もりなどの資料を置いていたWindows serverがあるのですが、在庫管理等効率が悪いので、新たにデータベース用のサーバーを置こうと考えています。 データベースサーバーはCentOSで、MariaDBをベースにPHPでWebから回覧、編集できるようにするためにWWWを使います。 既存のWindows ServerもリモートデスクトップがあるのでWWWを使います。 通常使用するポートは80番ですが、これでは競合してしまいますので、別途8080番ポートを使用してCentOS側に接続しようと試みましたが、それだとSELinuxがアクセスを検知すると同時にブロックをかましてしまうのでアクセスができずに困っています。個人ならSELinuxを停止してもよいのでしょうが、企業データを扱う以上はできる限りその手は使いたくありません。 いろいろ調べていたら、リバースプロキシというものを見つけましたが、これがいまいちよくわかりません。 たとえば、WindowsServerはhttps://*******.homeserver.com/というドメインがありますが、CentOSサーバー側はまだドメインの割り当てがないのでIPアドレスでのリンクとなっています。 そのため、https://******.homeserver.com/にアクセスがあった場合を192.168.1.(WS)に、IP直アドか取得したドメインにアクセスがあった場合に192.168.1.(CentOS)にアクセスできるように設定できるのでしょうか? リバースプロキシはCentOS側の端末でWebサーバーと併用できるみたいなのでこの形式で行こうと思うのですが、この場合、社内LANはどういった形になるのでしょうか? また、この形ではセキュリティ的にマズイとか、意見があればそれもお聞きしたいです。 よろしくお願いします。 現状-フレッツ光ルーター-社内端末1             L社内端末2 L複合機            Lハブ-社内端末3 LWindowsServer Lハブ-社内端末4 LCentOS 経験・知識不足でいろいろ拙いところがあり大変お見苦しいかとは思いますが、ご助言お願いします。

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

  • ベストアンサー
回答No.2

要するに ・外部から社内の2つのWebサーバーに対してそれぞれアクセスできるようにしたい ・グローバルIPアドレスは1つしかないから、ポートを80と8080で使い分けるようにした  つまりルーターで以下のポート転送(ポートマッピング)設定を行っている  80ポートは WindowsServerのローカルIPアドレスに ポート転送  8080ポートは、CentOSのローカルIPアドレスに、ポート転送 ・このため、CentOSのWebサーバーの待ち受けポートは8080としてみた。 ・これでCentOSのSELINUXを無効にするとうまくいったが SELINUXは無効にしたくない なので、 ・SELINUXを有効にしたまま、Webサーバーの待ち受けポートを8080にしたい または  ・CentOS側のWebサーバーの待ち受けポートを80のままにする方法を取りたい ってことですね。 案1) SELINIXの、httpに許可されているポート番号を使う  semanage port -l | grep -w http_port_t で確認すると、80、443、488、8008、8009、8443 あたりが許可されているだろうから ポート番号を8080でなく 8008とか8009とかを使う (アクセス側のURLやルータでのポート転送やWebサーバーの待ち受けやFireWall設定などを8008に変更) http://xxxx.com/  または http://グローバルIPアドレス/      →WindowsServer http://xxx.com:8008/ または http://グローバルIPアドレス:8008/ →CentOSの8008 案2) SELINUXに httpの許可ポートを追加する semanage port -a -t http_port_t -p tcp 8080 http://xxxx.com/  または http://グローバルIPアドレス/  →WindowsServerの80 http://xxx.com:8080/  または http://グローバルIPアドレス:8080/  →CentOSの8080 案3) ルータのポート転送機能ですが、NECのAtermとかのポート転送だとできないのですが、 例えばYAMAHAのだと、ポート転送(静的IPマスカレード)で、転送するポート番号も付け替できるので 外部からの8080ポートを、内部には80ポートで転送ってことができます。 http://xxxx.com/   または http://グローバルIPアドレス/   →WindowsServerの80ポート http://xxxx.com:8080/ または http://グローバルIPアドレス:8080/  →CentOSの80ポート (ルータで8080ポートを80ポートに変換) 案4) リバースプロキシを通して、アクセスしてきたURL中のホスト名で代理アクセス先を振り分けでもできますね。 この場合、ルータでは、外部からの80番ポートアクセスを リバースプロキシサーバーのIPアドレスの80番に転送するだけで あとは リバースプロキシ側で、リクエストURIで転送先を設定して http://aaaa.xxxx.com/    →WindowsServerの80ポート http://zzzz.xxxx.com/ →CentOSの80ポート http://グローバルIPアドレス/   →CentOSの80ポート (リバースプロキシでの設定次第) って感じにできるかと。

senfkatze990
質問者

補足

回答感謝します。現在、案4を試みるために、そこらへんにあったVista機を拾ってきて、CentOSをインストールし、Poundの設定に四苦八苦しております。土日は休みなので、その間でなんとかならなかったら別スレッドで設定に関して聞いてみたいと思っております。

その他の回答 (3)

回答No.4

見る限り、セグメント一つで直接繋いでるように見えます。 そして、ファイアウォールもないように見えます。 そして、WWWでDBの編集? とナナメ読みしてますが、認識はあっていますか? リバプロなどで技術的なアクセスルートはできたとしてもセキュリティのないアクセスなんてリスクしかない。 中小企業だから、セキュリティ低いんです、とか言い訳になりませんよ。 技術要求に応えるだけがエンジニアではありません。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.3

SELinuxについては私の勉強不足でした。深くお詫び申し上げます。 さて、リバースの関係から3台(Poundサーバー、CentOSのWeb、WindowsのWeb)にしたい(してみようと構想を練っている)という事ですかな。 リバースプロクシを使うのであれば、お勧めはドメイン名によって別のコンテンツにアクセスさせる方法です。「名前ベースのバーチャルホスト」と言います。これとリバースプロクシを組み合わせます。以下、ざっくりと構成を考えてみました。 今使っているドメインとは完全に別のドメイン、例えばexample.comというドメインを取得し、zaiko.example.comを********.homeserver.comへのCNAMEにします。hogehoge.homeserver.comが取得できれば良いのですが恐らく1台のWindows Home Serverで2つのドメインは取れないんじゃないかと(未検証)。要するに2つのドメイン名が1つのIPアドレスを指すようにするのです。この時、逆引きはどちらか片方を指すので問題ありません。 ・光ルーターでインターネットから443へのアクセスはWindowsサーバーへ振り分ける(Pound2.6以降はSSLのSNIに対応しているので外部からのアクセスをPoundで一元管理したければPoundへ振り分けても良い) ・光ルーターでインターネットから80へのアクセスはPoundサーバーへ振り分ける ・Poundサーバーで80番にアクセスしてきた時のドメイン名でWindowsサーバーとCentOSサーバーに振り分ける これで、グローバルIPアドレスは1つで複数のサーバーにHTTPアクセスする事ができるようになります。 もしサーバー台数を減らしたい(できればCentとWinの2台で済ませたい)という場合はapacheも名前ベースのバーチャルホスト&リバースプロクシができるので ・光ルーターでインターネットから443へのアクセスはWindowsサーバーへ振り分ける(Apache2.2.12以降はSSLのSNIに対応しているので外部からのアクセスをCentOSで一元管理したければCentOSへ振り分けても良い) ・光ルーターでインターネットから80へのアクセスはCentOSサーバーへ振り分ける ・CentOSサーバーで80番にアクセスしてきた時のドメイン名でWindowsサーバーへリバースするか自分で処理するかを分ける。 こちらの方が(ハードウェアの)管理が楽かも知れません。 別のドメイン名を取れなかった場合はしょうがないのでポート番号ベースでサーバーを分けましょう。この時も、光ルーターの性能によりますがインターネットから81へのアクセスをCentOSサーバーの80へ振り分ける事ができるはずです。少なくともNTT東西のフレッツ光ネクストでレンタルされるルーターであればできます。フレッツ光プレミアムの場合は・・・・知らない。 ・光ルーターでインターネットから443へのアクセスはWindowsサーバーの443へ振り分ける ・光ルーターでインターネットから80へのアクセスはWindowsサーバーの80へ振り分ける ・光ルーターでインターネットから81へのアクセスはCentOSサーバーの80へ振り分ける この場合、インターネット側から在庫管理PHPにアクセスする時は http://********.homeserver.com:81/ というのになりますがそれが気にならなければこれが一番構成的には楽かも知れません。 「いやインターネットからアクセスするんだからHTTPSでしょ普通」というのであればSNIを利用したリバースプロクシ構成かHTTPSでポート番号を分けるかになるでしょうか。 今までの話を総合して一番お勧めできる構成は「社内にOpenVPNサーバーを立ててアクセスしたい外出時の端末にOpenVPNクライアントを入れて社外からは社内へVPNしてCentOSやWindowsはVPN経由のLAN内(社内)で使う」というものです。VPNを使うとドメインじゃセキュリティじゃなどそこらへんを丸々VPNに任せて社外から社内に居るのと同じ感じで社内のサーバーにアクセスする事ができるようになります。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

仮にこれが社内LANの中で閉じた話で社外から社内にアクセスする事はないという場合、何も困る事はないですだ。社内DNSを管理している人に「CentOS用にzaiko.homeserver.comっていうドメインを割り当ててくれ」と言えばそれで済む話。それで https://*******.homeserver.com→Windows Serverへ https://zaiko.homeserver.com→CentOSへ アクセスできる。 落ち着いて今何が問題なのかをもう一度考えて欲しい。 多分今のままだと少なくともこのQAであなたが満足する回答は得られないので、以下の内容を整理して欲しい。 ・LAN内のネットワーク構造 Lとかそういう記号ではなく線を引いた方が分かりやすいだろう。また、IPネットワークの時にはハブを書く必要は無い。IPネットワークでは全てのノード(コンピューター、ルーターなどの総称)は対等なので何が上で何が下というのはないが、下図では光ルーターの下に一つの物理ネットワークセグメントがあり、そこにパソコン、サーバー、複合機がぶら下がっているというイメージで作図している。 (インターネット) | フレッツ光ルーター | +---社内端末1~4 | +---複合機 | +---Windows Server | +---CentOS ・社内端末1から********.homeserver.comへpingを打つとIPアドレスは何になるか。これが192.168.1.XXXとかなら社内にDNSサーバーがある。多分光ルーター。これがローカルIPなら社内DNSサーバーに一つ設定を追加するだけでそれぞれの80番にアクセスすれば良いので解決。要するにWindows ServerやCentOSにアクセスするのは社内端末だけなのか、インターネット(社外)から光ルーターに入ってきてアクセスするのかという点で、これが一番重要な情報だ。 ・HTTPなのかHTTPSなのか。これは意外と重要な情報。HTTPSなのに80番というのは割とおかしい。そういう設定が出来ないとは言わないが普通はやらない。 後、apacheで80番を8080番に変えただけでSELinuxがブロックをするとはちょっと考えにくいのだがそこは大丈夫だろうか。CentOS6ならiptables、CentOS7ならfirewalldがブロックするというのなら話は分かる。この場合は堂々と穴を開けるべきだ。ファイアーウォールというのはそういうものなのだから。

senfkatze990
質問者

補足

色々と情報不足で申し訳ございません。 両方とも、外部からアクセスして使用することが前提です。(現場での作業報告なども、CentOS側で整理できれば、と思いましたので...) ・グローバルIPアドレスは一つで固定なので、外部からアクセスした場合、ポート指定なしだとWindows Server側につながってしまいます。当然、ルータ側の設定の宛先ポートがWSになってるからなのですが... そこで8080番ポートを開放し、そちらの宛先をCentOS7側へ流し、CentOSのほうも、httpdの設定も8080に、firewalldの設定も8080番は空けました。が、外部(わかりやすいようにスマホのテザリングを使用したノートパソコン)からアクセスしようとすると、CentOS端末のGUIにSELinuxがブロックしました系のダイアログが出まして....。ログを見る限りやはりSELinuxが関係している様なので、一度無効にしてみたところ、すんなりアクセスできてしまったというわけです。(アドレスはhttp://***.***.***.**(グローバルIPアドレス):8080/index.html です。 いまいち原因がわからないうえ、CentOS側にも色々ソフトを入れすぎていたので、一度整理しようと一度OSをインストールしなおしました。また、セキュリティなどの意味合いを含めて、そこらへんに転がってた古いPCにCentOSを入れ、poundというソフトウェアでアクセス先を管理したいと思ってます。(それなら80番ポートだけで済むので、アドレスに:8080なんてつけなくて済むようなので。) が、ネット上だとほとんどがランダムでの割り当てなので、他に条件を与えられないか、と思ったのが、質問内容です。紛らわしい書き方でごめんなさい....。 情報追加しておきます。 フレッツ光ルーター | +---社内端末1~4 | +---複合機 | +---Windows Server(使用ポート:80,443)リモートWebアクセスのみ | +---CentOS7(使用ポート:80,22)※22番は外部からCUIで弄るとき用、セキュリティ的にアレなので実際運用するときは別にします。 尚、Windows serverは私が入る前からおいてあり、今回、新規にCentOSのサーバーを追加する形になります。

関連するQ&A

  • プロキシサーバとDNSサーバについて

    初歩的な質問ですいません。 社内LANにDNSサーバとプロキシサーバがある場合について教えてください。社内端末からインターネットにいく場合、端末はプロキシサーバとDNSサーバのどちらに先にアクセスするのでしょうか。 プロキシサーバにアクセス後、DNサーバに解決に行くのでしょうか。それとも、DNSを利用してプロキシの名前解決をしてからプロキシサーバにアクセスするものなのでしょうか。

  • サーバ機1台に複数機能を詰め込んでもいいですか?

    W2003serverスタンダードエディションに、 ・プロキシ(ログ取得用) ・ドメイン ・グループウェア ・ファイル共有 ・社内用WEBサーバ ・office share point services ・データベース の機能を同時に持たせて稼動させてもハード的に問題ないでしょうか? スペックはpen4 3.0GHz / 768MBメモリ / RAID0 / で、最大同時接続数は10~20台ほどです。 どうにかできないかと考えています。よろしくおねがいします。 かわいそうなマシン‥。

  • ローカルアドレスにはプロキシサーバを使用したくない

    各クライアントのIEでProxyサーバを手動で設定しているのですが、「ロー カルアドレスにはプロキシサーバを使用しない」の項目にチェックを入れ ているにも関わらず、社内サーバ(172.19.x.x)がプロキシサーバ経由での アクセスとなってサーバ側ではじかれてしまいます。 以前はFireboxのhttpプロキシ機能を利用して上位プロキシを指定していま したが、このような挙動は起こりませんでした。 ♯ProxyサーバはISPのURLフィルタサービスを利用しています(202.32.x.x) 基本的な質問で大変恐縮ですが、非常に困っております。 宜しくお願い致します。

  • Webサーバ機能を持った端末へのアクセス

    Webサーバ機能を持った端末(ホスト名の設定は出来ない)を ネットワークに接続しブラウザから閲覧したいのですが ネットワークのプロキシサーバーがhttp://IPアドレスでのアクセスを 許可しません。プロキシの設定は自動スクリプトで 行われており書き換えは不可能です、又、DNSでIPアドレスの 関連付けもネットワーク管理者から断られて出来ません このような状況でWebサーバ機能を持った端末へアクセスする方法は あるのでしょうか。

  • webサーバーについて教えて下さい

    ネットワークが全く分からないので困っています。 小規模な会社なのですが、独自の顧客管理をaccessの データベースを作成しています。 このシステムを営業先からでも使用したいのですが、 どのような方法を取れば良いのか分かりません。 webのサーバーを利用すればできるのではないかと 考えているのですが具体的な方法がおわかりの方が いらっしゃれば教えて下さい。 サイボウズをのお試しを使ってみたのですが、 ACCESSは実行できないようでした。 データベースの容量は5M程度です。 できれば、同じサーバーに当社のカタログ(illustrator) や取説(word)をおいて、社内にいるような感覚で、修正等も行いたいと考えています。 コストはあまりかけられません。 よろしくお願いします。

  • ドメインでWebサーバーへアクセス

    現在、IISでWebサーバーを構築し、グローバルIPアドレスで外部からアクセスが可能な状態にあります。 今回、あらたに、 ドメインを取得しました。そのドメインで、既存のWebサーバーに外部からアクセスしたいのですが、 ドメインを取得した業者に聞いたのですが、「DNSへの登録は、貴社にDNSサーバーを立てて行ってください。」といわれました。(グローバルIPを取得した業者にも同じことをいわれました) しかし、自社では技術的にDNSサーバーを立てれません。 せっかくとったドメインでなんとか、サーバーを公開したいのですが、 無料、または格安のDNSサーバーへの登録サービスはないのでしょうか? また、DNSへ登録さえすれば、外部からドメインで社内のWebサーバーに アクセスできるのでしょうか? どうか、たすけてください。お願いします。

  • webサーバーについて

    自宅でwebサーバーをたてたのですが、うちはルーターにサーバマシンを つないでいるので、ルータのグローバルIPアドレスに対するドメインを 無料のところで取得しました。 そこで、外部(WAN側)から自宅のwebサーバーには アドレス欄にドメイン名を入れるだけで、アクセスできるようにするために、ルータの設定で、静的IPマスカレード設定/NAT設定というところの「Webサーバを外部に公開する (エントリ番号1を使用) 」という項目にチェックを入れて、宛先IPアドレスに サーバーマシンのローカルアドレスを記入しました。 これで大丈夫なはずだと思い、別のPCから ドメイン名でサーバマシンへのアクセスを試みたのですが、 ドメイン名をアドレス欄に入れると、ルータに接続されてしまいます。 グローバルIPアドレスでのアクセスを、サーバマシンに受け渡すような 設定は、上記の方法ではダメなのでしょうか? 使ってるルータはRV-230SEというやつで、Bフレッツです。 よろしくお願いします。

  • フリーソフトを使用したWEB参照をチェックするには?

    社内システム管理者1年生です。 今、社内からのWeb閲覧制限に関して部内提案をまとめています。 いろいろ調べる中で、ソフトインストール禁止などの観点から、次のような ソフトでのアクセスをチェックしたいと考えています。 1)Firefoxなどのタブブラウザ   →ソフトインストール禁止のため 2)2ちゃんねる専用のブラウザ、ビューア   →掲示板の参照や書込み禁止のため 3)Tor、Torpark  (これが一番厄介かも。自分のIPアドレスを匿名化するので、社内の誰が   アクセスしたか特定できないかもしれません) WEB参照していないか、プロキシサーバのアクセスログでチェックしたいと 考えています。 ただ、これらのソフトを用いてアクセスしたことを、管理者側で拾えるの でしょうか? できるとしたら、以下のパターンになるかと考えています。 1)ログの中に、ブラウザの種類があるかもしれないので、そこで判断 2)ビューアを起動して参照すれば、2ちゃんねるへのアクセスログが   サーバに残る。 3)これは見当が付きません。 先輩に聞いても、「さあ?」「実際にアクセスがないとわからない」との ことでした。 実際のところどう見えているのでしょうか? また、対策としてどんな方法が考えられますか? (ソフトインストールの端末側制限もやっていますが、インストールできて  しまうソフトもあるのが実情です・・)

  • Poundの振り分けについて

    サーバーを二台設置しているため新たにCentOS上でPoundを動かすサーバーを追加しました。 片方がWindows Hone serverで、もう片方がCentOS上で動くWEBサーバーです。 WHSのリモートWebアクセスが80番ポートを使用するため、ドメインとグローバルIPアドレスによって振り分けようと考えています。 PoundサーバーのIPが192.168.1.17なので 192.168.1.17の80番ポートを開放しました。 サーバー側でもfirewall-cmd --add-port=80/tcp --zone=public --permanentを実行しました。 cfgファイルの中身はこんな感じです。 user "root" Group "root" Alive 30 Daemon 1 ListenHTTP Address 192.168.1.17 Port 80 xHTTP 1 End Service HeadRequire "Host: *.******.homeserver.com" ←WHSのドメイン BackEnd Address 192.168.1.111 Port 80 End HeadRequire "Host: *.********.jp" ←CentOSのドメイン BackEnd Address 192.168.1.13 Port 80 End HeadRequire "Host: *.グローバルIPアドレス" BackEnd Address 192.168.1.13 Port 80 End End となっています。 poundの情報を調べても殆どが同じバックエンドが複数ある場合の使用例のみだけで、なかなかドメインで振り分ける方法を見つけることができず、断片的に得た情報だけでこのような構成になってしまいました。 どういうわけかこれで動くことには動いてるのですが、WHSにはアクセスできても、別ドメインからのCentOSへのアクセスがうまくいきません。 ローカルでアクセスした場合はApacheのテスト画面がちゃんと表示されています。 グローバルIPアドレスからアクセスしても同じような結果となってしまいます。 このような場合どのように設定すればよいのでしょうか? ご教授お願いします。

  • 外部へのwebサーバ公開

    現在webサーバを構築中なのですが、内部からはアクセスできるのに外部からのアクセスができないでいます。以前にwindowsで構築したときはアクセスできたのですが、今そのアクセスできたサーバに外部からアクセスしたところアクセスできませんでした。 ルータ側では80番ポートは開いてあります。 サーバソフトはapacheです。 以前からのやり方を忘れてしまっているようです。 ブラウザでhttp://自分のアドレス とやっているのですが、プロキシが関係あったような無いような・・とうやむやです。 ですが、何故外部からアクセスできないのかが解決できません。ご教授いただきたいです。 宜しくお願いいたします。