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

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

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

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

2回答

3704閲覧

Apache(Xampp使用)を使用してプライベートネットワーク内のPCだけアクセスできる環境設定について

sarsprszzz

総合スコア1

Apache

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2021/06/16 03:28

編集2021/06/22 02:48

前提・実現したいこと

Windos10上でApache(Xampp使用)を使用してサーバーを立てて、電話の応対システムを作成したい。
顧客情報・個人情報等を取り扱いをするため、外部(グローバルネットワーク)からの不正アクセスを防ぎたい。
サーバー(ファイル)へのアクセス可能範囲はプライベートネットワーク内だけに設定したい。

Apacheのhttpd.confにてアクセスを許可したいPCのIPのみを指定する方式を想定した。

この方式で想定される漏洩経路・手段はどのようなものがありますでしょうか?

初めての投稿で、不備・不足等ございましたら遠慮なくご指摘お願いいたします。

お忙しいところ恐縮ですがご教授いただけたら幸いです。

前提条件

作成する「電話の応対システム(PHP+MySQLにて作成する範囲)」には「セキュリティ上の不備はない」こととします

下記については今回の質問内容について考慮しません
・サーバーPCのOSの未知のバグ
・サーバーPCのOSの未知のセキュリティの脆弱性
・Apacheの未知のバグ
・Apacheの未知のセキュリティの脆弱性
・ネットワーク盗聴による漏洩
・悪意を持ってリアル側でサーバー用PCを直接操作して情報を漏洩させること。(スパイウェアの設置、改ざん、データの不正送信、USBなどのデバイスへのコピーして持ち出しによるデータ流出)
・悪意を持ってリアル側で正規のプライベートネットワーク内のPCを使用して故意に情報を漏洩させること。(スパイウェアの設置、改ざん、データの不正送信、USBなどのデバイスへのコピーして持ち出しによるデータ流出)
・サーバー用PCを全部または一部物理的に盗難されることによる漏洩
・作業用データメディアの紛失による流出
・バックアップメディアの紛失による流出
・正規のプライベートネットワーク内のPCにスパイウェアが入っていた場合、そのスパイウェアからの漏洩
・正規のプライベートネットワーク内のPCを使用している善意のユーザーが、偽サイトに入力してしまった場合の漏洩(クリックジャッキング、フィッシングサイト等)
・プライベートネットワーク内の実線LANに物理接続して不正アクセスをすること

該当のソースコード

Apacheのhttpd.confの設定例
(許可したいプライベートネットワークIPのみを登録する)
order allow,deny
Allow From 192.168.101.1
Allow From 192.168.101.2
Allow From 192.168.101.3
...

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

OS:Windows10
Xampp:7.4.20
PHP:8.0.7
MariaDB:10.4.19

電話の応対システムのサーバー役PCはインターネットへ接続が可能な状態
電話の応対システムのサーバー役PCは固定IP
電話の応対システムのサーバー役PCは有線接続
電話の応対システムへアクセスしたいPCはインターネットへ接続が可能な状態
電話の応対システムへアクセスしたいPCは固定IP設定済
電話の応対システムへアクセスしたいPCは全て有線接続

「攻撃による情報の流出」を含むために表現しておりましたが、
・「情報漏洩」以外のいたずら・データ改ざん・業務妨害等の様々な要素が多い
・ご回答いただける方の想定する範囲が広すぎてしまうこと
・今回の質問の意図が、「想定される情報漏洩経路の特定」からズレてしまっていること
・すでに記載してある「漏洩経路・手段」の内容に「攻撃による情報の流出」が含まれること
により「攻撃手段」を削除し、「漏洩経路・手段」一本化した。(2021/06/22)

前提条件を追加しました。(2021/06/22)
質問内容に「想定される攻撃手段」を記載しておりましたが、主たる目的が「漏洩経路・手段」の特定であるため「攻撃手段」を削除しました。(2021/06/22)
「また、ほかの良い方法などありませんでしょうか?」を削除しました。(2021/06/22)
DBの種類とバージョンを追加しました。(2021/06/22)

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

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

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

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

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

m.ts10806

2021/06/16 04:29

内部犯行は絶対に起きない前提ですか?
sarsprszzz

2021/06/22 02:48

情報の追加・修正の依頼、ありがとうございます。 今回の質問については、「内部犯行は絶対に起きない」を前提とします。 また、作成する「電話の応対システム(PHP+MySQLにて作成する範囲)」には「セキュリティ上の不備はない」ものとします。 ※質問の範囲が広すぎたため、範囲を狭めた内容に修正しました。
m.ts10806

2021/06/23 02:10

でしたら言えることはないです。 この手の問題のほとんどはヒューマンエラー。 絶対起きない前提なら問題も起きないと考えていいです。 先の回答にある安全な以下略も「ユーザー入力は信用しない」ことが前提の設計なので、信用するということなら、もはや攻撃はされないわけですから。
guest

回答2

0

webシステムやアプリケーションだけじゃなく、
サーバー構築やネットワーク構築など、
セキュリティ対策や脆弱性対策は多岐に亘ります。

そのために、このような場で聞いた話だけ鵜呑みにして
付け焼き刃の知識をつけて対応されると、
情報を危険にさらしてしまうリスクが伴います。

質問者さんが自らリスクを想定して対策をうちそれで良しと判断できるレベルにならないとダメです。
「リスクってどういうのがあるのですか」っていうところから他人に求めているようではダメです。

構築する前だけの検討だけでなく、構築後、運用中にも常に点検するような、
壮大なお話になります。

まずは、無料でも入手できる文献で体系的に学習なさってはいかがでしょうか。

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構

先を急ぐようであれば、悪いことは言いません、
然るべき業者を選定してアウトソースしてください。

投稿2021/06/16 03:55

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sarsprszzz

2021/06/22 02:49 編集

m6u 様 セキュリティ対策や脆弱性対策から構築後の運用までご確認いただきありがとうございます。 また、わかりやすいWebサイトをご紹介いただきましてありがとうございます。 質問の範囲が広く、お手数をおかけしてしまい申し訳ございません。 質問の範囲を狭めた内容に修正しました。 よろしければ、再度ご確認いただけると幸いです。
guest

0

ベストアンサー

基本的にはm6uさんの回答と同じで、きちんと設計出来る人に依頼するか、体系的に学習されることをお勧めします。


以下は追記された前提と

顧客情報・個人情報等を取り扱いをするため、外部(グローバルネットワーク)からの不正アクセスを防ぎたい。
サーバー(ファイル)へのアクセス可能範囲はプライベートネットワーク内だけに設定したい。

から想像すると、
LAN内に設置されたwebサーバに外部ネットワークからの接続が原理的に行われない状態にするのにApacheによるIP制限だけで足りるか?
という質問と推測しての回答です。

回答

それだけでは足りない場合があります。

例えば、ルータの設定が悪い&ApacheによるIP制限の設定ミスがあった場合は外部からアクセス出来るケースが発生します。

ルータ設定(NATやポートマッピング)によってApacheの載ってるサーバが外部に公開され、外部からアクセスがあった場合、Apacheの載っているサーバからはルータのプライベートIPからのアクセスであるとしか認識できません。
そApacheの接続許可IPにルータのプライベートIPを誤って記載してしまった場合は外部からの接続が可能になります。
結果、「プライベートIPでしかアクセス出来ない様に設定しているから大丈夫」とは言えません。

その他だと、MySQLへの接続制限とユーザー設計にミスがあった場合、Apacheを経由せずに直接DBから情報を取得される可能性があります。(この場合はApacheによるIP制限は全く無力です)

また、これは前提で防がれていますが認識不足があるように思うので言及しますが、「LAN内の固定IP」を確実に実現するのは結構大変(というか家庭用ルータではまず無理)なので、IPのみによる完全な接続制限は無理があります。


ぱっと思いつく範囲だとこれくらいですが、現実にはこの質問で前提としているところも考慮に入れないといけないことになるので(質問を明確にするために前提として排除していることは理解していますが)他にも無数の可能性が考えられることでしょう。

安全を期するのであれば少なくとも、

  • ルータ・ネットワークレベルでの接続制御の設計
  • OSでの接続制御の設計(OSのファイアウォール等)
  • サービス/デーモンレベルでの接続制御の設計
  • アプリケーションでの認証の設計

についてリスク判断と要件設定し、実装を設計する必要があります。
それぞれのレイヤーについて、ピンとこない状態で安全を確保するのは非常に困難ですし、それぞれのレイヤーについて適切に判断出来ればコストとリスク、使い勝手を勘案した妥当な落としどころを設定することが出来ます。


私なら、

  • ルータをもう一つ挟んで独立したネットワークを作ってアクセス制限しやすくする

とか

  • AWS上にインターネットに接続されないネットワークを作り、AWS Client VPNのみでアクセス出来るところにサーバを置く

とかそうい感じで環境を用意して、考慮しないといけない範囲を限定するところからスタートすると思います。

投稿2021/06/23 03:02

編集2021/06/23 03:16
tanat

総合スコア18716

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

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

sarsprszzz

2021/07/01 23:37

ご回答ありがとうございます。 具体的な事例をご紹介いただきありがとうございます。 また、代替案もいただきありがとうございます。 大変勉強になりました、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問