web-dev-qa-db-ja.com

iptablesベースのリダイレクト、キャプティブポータルスタイル

任意のWebサイト(任意のIPまたはホスト名のポート80)にアクセスしようとするアクセスポイントに接続されているホストを、ネットワーク上の別のデバイス(実際には別のデバイス)にリダイレクトするように強制するiptablesルールセットとは何ですか?

たとえば、2番目のサーバー(Webサーバーをホストしている)はイーサネット経由で接続されており、IPは192.168.1.99/24(eth0)です。

プライマリサーバーは(アダプターwlan0apからの)ワイヤレスホットスポットをホストし、192.168.12.1/24のIPを持っています。 192.168.12.1:80または192.168.12.4:80またはgoogle.com:80にアクセスしようとするホットスポット(192.168.12.0/24ネットワーク内)のWifiユーザーが強制的に192.168にリダイレクトされるようにします.1.99:80。

現在、sysctlでnet.ipv4.ip_forward=1設定を有効にすることと組み合わせて、これらのルールを試しました

Sudo iptables -A POSTROUTING -t nat -o wlan0ap -j MASQUERADE
Sudo iptables -t mangle -N internet
Sudo iptables -t mangle -A PREROUTING -i wlan0ap -p tcp -m tcp --dport 80 -j internet
Sudo iptables -t mangle -A PREROUTING -i wlan0ap -p tcp -m tcp --dport 443 -j internet
Sudo iptables -t mangle -A internet -j MARK --set-mark 99
Sudo iptables -t nat -A PREROUTING -i eth1 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.1.98
4
ppsdevelops

次のルールが機能するはずです(テストされていません)。

iptables -t nat -A PREROUTING -i wlan0ap -p tcp --dport 80 -j DNAT  --to-destination  192.168.1.99:80
iptables -t nat -A PREROUTING -i wlan0ap -p tcp --dport 430 -j DNAT --to-destination  192.168.1.99:80
iptables -t nat -A POSTROUTING -j MASQUERADE
1
jofel

オプションのマルチポートを使用できます。ポート80443のすべてのトラフィックを阻止するには、以下を使用できます。

iptables -t nat -A PREROUTING -i wlan0ap -p tcp -m multiport 80,443 -j DNAT --to-destination 192.168.1.99:80

ログインにポータルを使用しているユーザーがいる場合、

iptables -t nat -A PREROUTING -i wlan0ap -s ip_user -p tcp -ACCEPT

置換-s Ip -mac --source mac MAC

0
Nginamau