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

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

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

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

Apache

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

Linux

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

Webサーバー

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

ネットワーク

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

Q&A

解決済

3回答

11606閲覧

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

pandanaruna

総合スコア11

HTTP

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

Apache

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

Linux

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

Webサーバー

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

ネットワーク

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

0グッド

1クリップ

投稿2017/03/19 07:56

■前提・実現したいこと

お世話になっております、ネットワーク初心者、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/ツール等のバージョンなど)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

#そもそも論

そもそも論としては、セキュリティ対策が十分に行えない状態で社内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 10:14

編集2017/03/19 11:58
tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pandanaruna

2017/03/19 13:57

tanat様、 ご回答ありがとうございます。 >セキュリティ対策が十分に行えない状態で社内LAN環境にあるサーバにインターネットからアクセス出来るようにするのはやめた方がいいです。 こちらは検討してみます。 >LANからInternetへの通信(ここではHTTP/HTTPSのレスポンス)のTCPポートを任意(もしくはLAN→インターネット方向へのフィルタリングはしない)に指定してみてください。 こちらを試してみましたが、現象は変わりませんでした。 (PR-400KI、BHR-4GRV2、両方とも試してました。) また、他フィルタも一旦すべて無効にし、80ポートの設定のみ残してみたり、 すべて許可にしてみたり、としたのですが、現象は変わりませんでした。 >PR-400KI直下にサーバを配置して、 >設定メニューの静的NAT設定にある、webサーバ公開 の設定を使った方が確実かと思います。 こちらにつきましては、 本日試せませんでしたので、後日試してみることと致します。 取り急ぎ、試してみたことのご報告まで。 ご回答、ありがとうございます。
tanat

2017/03/19 14:48

試行結果のご報告ありがとうございます。 環境が変えられないのであれば、一つづつ順にトラブルシューティングするしかないのですが、 簡単な環境(光電話ルータ直下やvps,レンタルサーバーの利用)を選べるのであれば、 お試し頂いてからの方が質問も回答もシンプルになるかと思います。 追記しましたので別回線からの確認も、そういった意味で環境がシンプルになってわかりやすくなります。
guest

0

ベストアンサー

以下の構成の場合、「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/19 14:40

編集2017/03/22 15:05
gorogoroIT

総合スコア447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pandanaruna

2017/03/22 14:50

gorogoroIT様、 お世話になっております。 お返事が大変遅くなり申し訳ありません。 ご回答ありがとうございます。 ご回答頂いた件を試してみましたが、 現象は変わりませんでした(504 Gateway timeout)。 PR-400KIのローカルIPアドレスは192.168.1.1でした。 こちらを静的NATの設定で変換してみたのですが、現象は変わらず。 同様にBHR-4GRV2のポート変換機能で同様の設定を試してみましたがこちらでもダメでした。 ご提示頂いた内容と今の設定を組み合わせて見て、もう少し試してみたいと思います。 取り急ぎ、ご報告まで。 ご回答ありがとうございます。 引き続き検証してみます。
pandanaruna

2017/03/26 13:39

gorogoroIT様、 お世話になっております。 お返事が大変遅くなり申し訳ありません。 (週末か平日の深夜しかネットワーク環境を触れる状態になく、返信が遅れました。 大変申し訳ありません。) 追記のご回答ありがとうございます。 ご回答頂いた内容で、試してみた結果、 IPアドレスでのサービスへのアクセスはできるようになりました。 ありがとうございます! 但し、ドメインでのアクセスができておらず、現在調査中です。 ・質問の設定状態(初期の状態)では、ドメイン経由ではPR-400KIのフィルタで阻まれていた。 ・現在の設定では、DNSで名前解決できず表示されない。  (ルータのログに阻まれている形跡のログは出力されていない) 調査中ではございますが、途中経過をご報告させて頂きます。 追記のご回答ありがとうございます。 厚くお礼申し上げます。
gorogoroIT

2017/03/28 10:38

ちなみに、「 http://ドメイン名/デプロイしたサービス名/ 」で 指定している【ドメイン名】は、外部から名前解決はできるのでしょうか。 ドメイン名 → xxx.xxx.xxx.xxx(WAN側のIPアドレス) は、 外部のDNSサーバに登録されているのでしょうか。
pandanaruna

2017/04/15 11:59

gorogoroIT様、 お世話になっております。 お返事が大変遅くなり申し訳ありません。 プライマリDNSを自身のCentOSサーバ セカンダリDNSをお名前ドットコムのサーバに指定し、 名前解決もできるようになりました。 追記のご返信ありがとうございます。 お陰様で本件を何とか解決することができました。 厚くお礼申し上げます。 ありがとうございました。
guest

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内のサーバにアクセス出来ます。

投稿2017/03/22 21:02

編集2017/03/22 22:28
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問