- サーバー 192.168.0.3 (SERVER) があります。Ubuntu Server + DHCP サーバー + Apache を実行しています。
- ルーター 192.168.0.1 (ROUTER) (アクセスできません)
- ネットワーク内のユーザーを登録するために、特定の構成(DHCP サーバー内)を適用するための Web アプリケーションがサーバー上に存在します。
- ユーザーはサブネット 192.168.0.0/16 内にいます。
DHCPサーバーを設定して、未登録のマシンに私のサーバーをデフォルトゲートウェイとして割り当てる
ことができます。リダイレクト登録されていないマシンから私のマシンへのすべての受信HTTPリクエストローカルウェブアプリ192.168.0.3 ?
答え1
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT –to-destination 1.2.3.4:80 iptables -t nat -A POSTROUTING -j MASQUERADE
答え2
すべての DNS クエリにサーバーの IP で応答する特別な DNS サーバーを設定し、任意のホスト (つまり *:80 + *:443) の要求を受け入れるように Apache の仮想サーバーを設定する必要があります。
問題は、ログイン後、DNS サーバーが偽の DNS 結果ではなく正しい DNS 結果を提供し始める必要があることです。デフォルトのリース時間が長すぎるか、ユーザーが新しい設定を取得するために切断する必要があるため、DHCP で設定を再度変更するだけでは不十分です。
多くの Wi-Fi ログイン システムはこのアーキテクチャを使用しているため、オープン ソース ソリューションが見つかる可能性があります。
答え3
私は別の方法を見つけました。
- 未登録のマシンに SERVER をデフォルト ゲートウェイとして指定します。
- リダイレクトポート80ウェブサーバーにiptables
でも、具体的にどうやってやればいいのか分からないんです :)