![ポートを安全に開く](https://rvso.com/image/761003/%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E9%96%8B%E3%81%8F.png)
私は、タブレットを所有する少数のユーザーのみがアクセスできる Web アプリを運用しています。このアプリは、ISP ルーターの背後にあるローカル ネットワーク上のサーバーのポート 80 で提供されています。
質問は、他のユーザーがアクセスできないようにして、承認されたユーザーのみがアクセスできるようにするにはどうすればよいかということです。承認されていないユーザーは、ポートが開いていないかのように接続をリセットする必要があります。
ルーターのポートを開き、それをサーバーにリダイレクトして証明書で保護することを考えましたが、それは可能でしょうか?
別の解決策としては VPN をインストールすることが考えられますが、一部のユーザーにとっては管理が難しすぎる可能性があります。
答え1
これにはさまざまな方法がありますが、適切な方法は、他にどのようなセキュリティ メカニズムを導入しているかによって異なります。例:
- クライアント証明書。これは、通常は暗号化されていないポート 80 を使用しない限り、非常に可能です。Web サーバーを再設定するか、その前にプロキシを配置する必要がありますが、これは確かに可能です。Apache でこれを行う方法については、こちらで説明されています。https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#allclients
- ネットワーク レベル (ファイアウォールなど) で IP または MAC アドレスでフィルタリングします。
- あなたがおっしゃったように、VPN を使用してください。これにより、ユーザーにとってかなり透明性が高まります。
- Web サーバー上またはその前のプロキシ上の認証ヘッダーを確認します。
他にも間違いなくあります。追加の認証方法を導入していない限り、それらの一部は適していません。たとえば、MAC アドレスは簡単に偽装できます。多くの認証方法はポートが開かれるまで動作しないため、ネットワーク ポートが閉じているように見えるという要件を緩和すると、他のオプションが利用できるようになります。
答え2
あなたの質問は、ある意味一般的なものです。次の 1 つ以上の操作を実行できます。
- Web アプリにアクセスするには、有効なユーザー名とパスワードが必要です。これは、アプリケーション レベルまたは Web サーバー レベル (例: apache2) で実行できます。
- ファイアウォールを設定して、この IP/ポートへのアクセスを保護します。特定の IP のみが許可されます。その他は拒否されます。これには、ユーザーの IP のリストを取得する必要があります。
- 中間者攻撃などの攻撃から保護するために、ユーザーを http (ポート 80) から https (ポート 443) にリダイレクトします。
- サーバー アクセスをプライベートに保ち、ユーザーのトラフィックをネットワークにトンネルします (認証を必要とする VPN ソリューションの 1 つ)。