質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Linux

    4438questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    2104questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • HTTP

    646questions

    HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

  • ネットワーク

    642questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Webサーバー

    498questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

WEBサーバの外部公開に伴う設定について

解決済

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 3,224

pandanaruna

score 3

■前提・実現したいこと

お世話になっております、ネットワーク初心者、Linux初心者です。
以下のような環境で外部にWEBサーバを公開(WEBサービスを公開)したいと思います。
マニュアルやネットの情報を見ながらいろいろ設定を変えてみたのですが、うまくいかず。。。
お手数をお掛け致しますが、皆様のお力をお貸しください。
(社内のLAN構成なのでできるだけ、構成は変えたくありません。無線LANは使用しておりません。)

Cent OS 7.2 (ローカルIPアドレス:192.168.12.3)
Apache2.2 + Tomcat8 (ポート:80)(WEBサービスは8080)

バッファロー製ルータ:BHR-4GRV2 (ローカルIPアドレス:192.168.12.1)

NTTひかり電話ルータ:PR-400KI (WAN側のIPアドレス:xxx.xxx.xxx.xxx)

■発生している問題・エラーメッセージ

外部からのWEBサーバにデプロイしているサービスが表示さない。

■試したこと

1、PR-400KIのIPv4パケットフィルタ設定で以下の設定を実施。
・フィルタ種別:許可
・プロトコル:TCP
・通信方向:両方向
・送信元IPアドレス/マスク長:any
・宛先IPアドレス/マスク長:192.168.12.3/32
・送信元ポート:any
・宛先ポート:80(www)

2、PR-400KIの静的NAT設定で以下の設定を実施。
・宛先IPアドレス:192.168.12.3
・変換対象IPアドレス:xxx.xxx.xxx.xxx(WAN側のIPアドレス)
・変換対象プロトコル:TCP
・変換対象ポート:80(www)

3、BHR-4GRV2のIPフィルターで以下の設定を実施。
・動作:通過
・方向:LAN->Internet
・送信元IP:192.168.12.3
・宛先:xxx.xxx.xxx.xxx(WAN側のIPアドレス)
・プロトコル:HTTP(TCPポート:80)
・任意のTCP/UDPポート:80

・動作:通過
・方向:Internet->LAN
・送信元IP:xxx.xxx.xxx.xxx(WAN側のIPアドレス)
・宛先:192.168.12.3
・プロトコル:HTTP(TCPポート:80)
・任意のTCP/UDPポート:80

4、BHR-4GRV2のポート変換で以下の設定を実施。
・Internet側IPアドレス:xxx.xxx.xxx.xxx(WAN側のIPアドレス)
・LAN側IPアドレス:192.168.12.3
・プロトコル:HTTP(TCPポート:80)
・LAN側ポート:192.168.12.3 HTTP(TCPポート:80)


上記の設定を施し、グローバルIPアドレス、ドメインからのアクセスを行うと、
外部からのアクセスの際に、504 Gateway Timeoutエラーが発生します。
ローカルエリア内のPCからアクセスすると、ブラウザに画面が表示されます。

http://ドメイン名/デプロイしたサービス名/
http://グローバルIPアドレス/デプロイしたサービス名/

ローカルエリア内でのアクセスはできる(画面が表示される)
外部からのアクセスはできない(例えばスマートフォンなど)

PR-400KIのセキュリティログに以下が出力されています。
※BHR-4GRV2のログには何も出力されておりませんでした。

2017/3/19 16:33:00 SRC=49.98.166.42/3128 DST=192.168.12.3/80 TCP table=filter

フィルタ種別は許可としているのですがフィルタが効いている?
ので設定が誤っているのでしょうか?

■補足情報(言語/FW/ツール等のバージョンなど)

上記の組み合わせで、色々試してみたのですがうまくいきませんでした。
お手数をおかけいたしますが、どうぞよろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+4

そもそも論

そもそも論としては、セキュリティ対策が十分に行えない状態で社内LAN環境にあるサーバにインターネットからアクセス出来るようにするのはやめた方がいいです。

なぜその必要があるかというところを明確にして、方法自体を変える方向を強くお勧めします。
要件次第ですが、VPNを使ったり、外部にサーバを立てたり等、最適な方法があると思います。

社内のLAN構成なのでできるだけ、構成は変えたくありません。

ということなので、安全な場所に隔離することも出来ないとした場合、
何らかの理由でそのサーバが乗っ取られた場合、社内ネットワークに深刻な影響が出る可能性が高いです。
乗っ取られるまでいかなくても、考えらえる悪影響はいくらでもあります。

社内ではなく、自宅のネットワークなら好きにしても問題ないと思いますが、社内ネットワークではお勧めできることではありません。

よほど切実な理由がない限り、
500円/月くらいのVPSでも何でも使って、独立した場所に置くことをお勧めします。

技術的な部分

技術的な部分としては、

3、BHR-4GRV2のIPフィルターで以下の設定を実施。 
・動作:通過 
・方向:LAN->Internet 
・送信元IP:192.168.12.3 
・宛先:xxx.xxx.xxx.xxx(WAN側のIPアドレス) 
・プロトコル:HTTP(TCPポート:80) 
・任意のTCP/UDPポート:80 

について、LANからInternetへの通信(ここではHTTP/HTTPSのレスポンス)のTCPポートを任意(もしくはLAN→インターネット方向へのフィルタリングはしない)に指定してみてください。
HTTPではクライアント→サーバ側のポートは80番で通信されますが、サーバ→クライアントはクライアント側で空いている適当なポートを適宜使用するので80番だけ空いていてもパケットが戻れません(そのため、504 エラーが帰ってきてると思います)

ただ、それよりは
PR-400KI直下にサーバを配置して、
設定メニューの静的NAT設定にある、webサーバ公開 の設定を使った方が確実かと思います。
二重にルータがある状態は問題発生時の原因の切り分けを難しくしてしまいます。

動作確認について

動作確認は携帯電話のネットワークなど、LANの外から確認するのがお勧めです。
(出来れば、そのタイミングでのIPを確認して限定的に穴を開ける)

社内から自分のグローバルIP宛にアクセスする場合より、問題の原因解決が楽なことが多いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/19 22:57

    tanat様、
    ご回答ありがとうございます。

    >セキュリティ対策が十分に行えない状態で社内LAN環境にあるサーバにインターネットからアクセス出来るようにするのはやめた方がいいです。

    こちらは検討してみます。

    >LANからInternetへの通信(ここではHTTP/HTTPSのレスポンス)のTCPポートを任意(もしくはLAN→インターネット方向へのフィルタリングはしない)に指定してみてください。

    こちらを試してみましたが、現象は変わりませんでした。
    (PR-400KI、BHR-4GRV2、両方とも試してました。)

    また、他フィルタも一旦すべて無効にし、80ポートの設定のみ残してみたり、
    すべて許可にしてみたり、としたのですが、現象は変わりませんでした。

    >PR-400KI直下にサーバを配置して、
    >設定メニューの静的NAT設定にある、webサーバ公開 の設定を使った方が確実かと思います。

    こちらにつきましては、
    本日試せませんでしたので、後日試してみることと致します。

    取り急ぎ、試してみたことのご報告まで。

    ご回答、ありがとうございます。

    キャンセル

  • 2017/03/19 23:48

    試行結果のご報告ありがとうございます。

    環境が変えられないのであれば、一つづつ順にトラブルシューティングするしかないのですが、
    簡単な環境(光電話ルータ直下やvps,レンタルサーバーの利用)を選べるのであれば、
    お試し頂いてからの方が質問も回答もシンプルになるかと思います。

    追記しましたので別回線からの確認も、そういった意味で環境がシンプルになってわかりやすくなります。

    キャンセル

checkベストアンサー

+1

以下の構成の場合、「PR-400KI」「BHR-4GRV2」の両方で
NATの設定がされている気がします。

Cent OS 7.2 (ローカルIPアドレス:192.168.12.3) 
Apache2.2 + Tomcat8 (ポート:80)(WEBサービスは8080) 
| 
バッファロー製ルータ:BHR-4GRV2 (ローカルIPアドレス:192.168.12.1) 
| 
NTTひかり電話ルータ:PR-400KI (WAN側のIPアドレス:xxx.xxx.xxx.xxx)

以下の設定内容を確認してみて頂けますでしょうか。

  • PR-400KIのLAN側のIPアドレス(ネットワークアドレス)
  • BHR-4GRV2のWAN側のIPアドレス

【多段だとすると・・・】
「PR-400KI」~「BHR-4GRV2」の間に、別のネットワークが存在しているのではないでしょうか。

Cent OS 7.2 (ローカルIPアドレス:192.168.12.3) 
Apache2.2 + Tomcat8 (ポート:80)(WEBサービスは8080) 
         ↑
         |
 (LAN側IPアドレス:192.168.12.1)
【バッファロー製ルータ:BHR-4GRV2 】
<BHR-4GRV2側のWAN: 192.168.1.AAA>
        [Port 80]
           ↑
           |
           |
(LAN側のIPアドレス:192.168.1.1)
【NTTひかり電話ルータ:PR-400KI 】
(WAN側のIPアドレス:xxx.xxx.xxx.xxx)
           ↑
        [Port 80]

「PR-400KI」では、"192.168.1.AAA" に変換する必要があると思います。

<<2017-03-23 修正・追記>>


【アドレス変換(NAT)】
●PR-400KI
xxx.xxx.xxx.xxx (ポート80)
→ 192.168.1.AAA (ポート80):BHR-4GRV2のWAN側

●BHR-4GRV2
192.168.1.AAA (ポート80):BHR-4GRV2のWAN側
→ 192.168.12.3 (ポート80 )

※ フィルタの設定は略。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/22 23:50

    gorogoroIT様、
    お世話になっております。
    お返事が大変遅くなり申し訳ありません。
    ご回答ありがとうございます。

    ご回答頂いた件を試してみましたが、
    現象は変わりませんでした(504 Gateway timeout)。

    PR-400KIのローカルIPアドレスは192.168.1.1でした。
    こちらを静的NATの設定で変換してみたのですが、現象は変わらず。
    同様にBHR-4GRV2のポート変換機能で同様の設定を試してみましたがこちらでもダメでした。

    ご提示頂いた内容と今の設定を組み合わせて見て、もう少し試してみたいと思います。
    取り急ぎ、ご報告まで。

    ご回答ありがとうございます。
    引き続き検証してみます。

    キャンセル

  • 2017/03/26 22:39

    gorogoroIT様、
    お世話になっております。
    お返事が大変遅くなり申し訳ありません。
    (週末か平日の深夜しかネットワーク環境を触れる状態になく、返信が遅れました。
    大変申し訳ありません。)
    追記のご回答ありがとうございます。

    ご回答頂いた内容で、試してみた結果、
    IPアドレスでのサービスへのアクセスはできるようになりました。
    ありがとうございます!

    但し、ドメインでのアクセスができておらず、現在調査中です。

    ・質問の設定状態(初期の状態)では、ドメイン経由ではPR-400KIのフィルタで阻まれていた。
    ・現在の設定では、DNSで名前解決できず表示されない。
     (ルータのログに阻まれている形跡のログは出力されていない)

    調査中ではございますが、途中経過をご報告させて頂きます。
    追記のご回答ありがとうございます。
    厚くお礼申し上げます。

    キャンセル

  • 2017/03/28 19:38

    ちなみに、「 http://ドメイン名/デプロイしたサービス名/ 」で
    指定している【ドメイン名】は、外部から名前解決はできるのでしょうか。

    ドメイン名 → xxx.xxx.xxx.xxx(WAN側のIPアドレス) は、
    外部のDNSサーバに登録されているのでしょうか。

    キャンセル

  • 2017/04/15 20:59

    gorogoroIT様、
    お世話になっております。
    お返事が大変遅くなり申し訳ありません。

    プライマリDNSを自身のCentOSサーバ
    セカンダリDNSをお名前ドットコムのサーバに指定し、
    名前解決もできるようになりました。

    追記のご返信ありがとうございます。
    お陰様で本件を何とか解決することができました。
    厚くお礼申し上げます。
    ありがとうございました。

    キャンセル

0

PR-400KIのlan側を
HR-4GRV2のwan側に
繋いでサーバを
HR-4GRV2のdnzに置けば良いと思います。

p.s.

PR-400KIのローカルIPアドレスは192.168.1.1でした。

PR-400KI LAN側 -> BHR-4GRV2 WAN側
とすれば、

DST=192.168.12.3/80 TCP table=filter

の設定は不要です。
というか、HR-4GRV2のlan側:192.168.12.x へPR-400KIで filterしたせいで、
パケットの行き場が無くなってます。

HR-4GRV2のdnz にサーバを置けば、
wan側からのパケットは全て、dnz のサーバへ向かいます。

lan側からは http://192.168.12.3/ 等で、dnz内のサーバにアクセス出来ます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Linux

    4438questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    2104questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • HTTP

    646questions

    HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

  • ネットワーク

    642questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Webサーバー

    498questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。