0

ネットワークサーバーのトラフィックを計算するためにbashスクリプトを書いています:

WAN:eth1 -> GNU/Linux サーバー:eth0 -> ユーザー GNU/Linux サーバーは、squid、bind、QoS、mysql、lighttpd を使用します。

IP が確立されたクォータを超えると、新しい QoS ルールがその IP (ユーザー) に適用され、IP カウンターがいつゼロに戻されるかを決定するための 1 つの「フラグ」が存在します。

一部の IP とサブネットはクォータなしで動作し、IP/サブネットの他のグループはクォータを超えた後に新しい QoS で動作し、クォータを超えた後にリダイレクトを使用して 3 番目のグループで動作したいと考えています。

IP が確立されたクォータを超えると、すべての http トラフィックをホスト (GNU/Linux で実行されている lighttpd ) にリダイレクトし、その IP に対して生成された他のすべてのトラフィックをドロップする必要があります。ウェブサーバーには、「あなたは毎日のトラフィックの見積もりを超えています。「x」時間待つか、プロバイダーに電話して追加のナビゲーションパッケージを購入してください」などのウェブページがあります。

チェーンを使用することは可能ですか、それともどうすればよいですか?. 私がインターネットで見つけたほとんどのトピックは、すべてをブロックし、新しいチェーンを作成してインターネットに公開することに関連しています (私にはうまくいきません)。その他のリダイレクトはIPごとにのみIPをリダイレクトしますが、「チェーン」を作成してIPを接続し、リダイレクトする必要があるものを作成して、そのIPを簡単に復元できるようにするにはどうすればよいですか?

助けてくれてありがとう、そして私の下手な英語でごめんなさい:S.

4

2 に答える 2

0

このようなものをお探しですか?

iptables -t nat -A PREROUTING -s 192.168.100.66 -p tcp --dport 80 -j REDIRECT --to-ports 80
iptables -I INPUT 1 -i lo -s 192.168.100.66 -j ACCEPT
iptables -I INPUT 2 -i eth1 -d 192.168.100.66 -j DROP

これにより、ポート 80 の 192.168.100.66 からループバック インターフェイスのローカル Web サーバーにパケットがリダイレクトされ、その会話が許可され、WAN インターフェイスの 192.168.100.66 にルーティングされている他のすべてのパケットが拒否されます。

接続を通常に戻すには、これらのファイアウォール エントリを削除します。

iptables -t nat -D PREROUTING -s 192.168.100.66 -p tcp --dport 80 -j REDIRECT --to-ports 80
iptables -D INPUT -i lo -s 192.168.100.66 -j ACCEPT
iptables -D INPUT -i eth1 -d 192.168.100.66 -j DROP
于 2012-01-31T14:38:38.007 に答える
0

iptables 自体 (まあ、 quota2 を提供する xtables-addons 拡張セット)は既にクォータ マッチング マジックを実行でき、 @resmon6 が言うように REDIRECT と組み合わせて procfs を介して値を (再) 設定できることに注意してください。

-t nat -s user1addr -m quota2 --name user1 ! --quota 0 -j REDIRECT...
-t nat -s user2addr -m quota2 --name user2 ! --quota 0 -j REDIRECT...

構文は間違いなく今のところ少し奇妙です (0 は初期値のみであり、否定を含むランタイム クォータテスト!とは無関係です。今これに気付いたので、将来この紛らわしい構文をアンロールするパッチが作成される可能性があります)。

于 2012-01-31T15:26:40.167 に答える